Εμφάνιση ενός μόνο μηνύματος
  #5  
Παλιά 29-04-11, 10:45
Το avatar του χρήστη Tasos
Tasos Ο χρήστης Tasos δεν είναι συνδεδεμένος
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.035
Προεπιλογή

Καλημέρα!
Αγαπητέ Δήμο, αν θέλεις απλά να εμφανίζεται ότι υπάρχουν διπλότυπες εγγραφές
τότε η χρήση της VBA δεν είναι απαραίτητη.

Υποθέτω ότι το MTYPOS είναι το πεδίο περιέχει τους τύπους προϊόντων.

Σε ένα νέο πεδίο στη φόρμα με το όνομα "IsDuplicate" πέρασε το παρακάτω:

=DCount("*";"[προιοντα]";"[MTYPOS]='" & [MTYPOS] & "'")>1
αν ο τύπος δεδομένων του πεδίου MTYPOS είναι κείμενο

ή

=DCount("*";"[προιοντα]";"[MTYPOS]=" & [MTYPOS] )>1 αν ο τύπος δεδομένων του πεδίου MTYPOS είναι αριθμός.

Κατόπιν, επίλεξε το πεδίο MTYPOS και στη μορφοποίηση υπό όρους χρησιμοποίησε την έκφραση: "IsDuplicate" και όρισε τη μορφοποίηση του πεδίου όπως επιθυμείς.


Αν πάλι θέλεις να αποκλείσεις διπλότυπες εγγραφές θα μπορούσες να χρησιμοποιήσεις το παρακάτω:

Κώδικας:
Private Sub MTYPOS_BeforeUpdate(Cancel As Integer)
     'αν ο τύπος δεδομένων του πεδίου MTYPOS  είναι αριθμός τότε
    '.....DCount("*", "[προιοντα]", "[MTYPOS]=" & CDbl(Me![MTYPOS].Text)) > 1....
    If DCount("*", "[προιοντα]", "[MTYPOS]='" & Me![MTYPOS].Text & "'") > 1 Then
        Cancel = True
        MsgBox "Διπλότυπη εγγραφή!"
        Me![MTYPOS].Undo
    End If
End Sub
Τον παραπάνω κώδικα τον προτείνω με κάθε επιφύλαξη αφού δεν μπορώ να γνωρίζω τι υπάρχει ήδη στη φόρμα σου.

Καλή συνέχεια!

Με εκτίμηση

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση