freestuff.gr αρχική σελίδα
 FAQFAQ    ΑναζήτησηΑναζήτηση   Λίστα ΜελώνΛίστα Μελών   Ομάδες ΜελώνΟμάδες Μελών   <b>Εγγραφή Μέλους</b>Εγγραφή Μέλους 
 ΠροφίλΠροφίλ   Επιλογές μέλους Επιλογές   Τα bookmarks μου Τα bookmarks μου   Προσωπικά μηνύματαΠροσωπικά μηνύματα 
  διαφήμιση  

Καλώς ήρθατε στο forum μας! Για να συμμετάσχετε στις συζητήσεις θα πρέπει να είσαστε μέλος. Γίνετε μέλος τώρα!.

Προσπέλαση αριθμού συγκεκριμένης εγγραφής.


 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » SQL και SQL Servers (RDBMS) » MS Access
Moderators:  Super-Moderators, WebDev Moderators
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [2 Μηνύματα]       Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
ΑποστολέαςΜήνυμα
sakis297


Μέλος από: 09 Μαη 2007
Μηνύματα: 20

View users profile Send email to user
ΜήνυμαΣτις: 18 Φεβ 2009 18:27    Θέμα: Προσπέλαση αριθμού συγκεκριμένης εγγραφής. Απάντηση με παράθεση  Mark this post and the followings unread

Γεια σας παιδιά!!!
Δουλεύω σε μια φόρμα και χρησιμοποιώ τη συνάρτηση dlookup για να βρω για παράδειγμα αν υπάρχει άλλη εγγραφή του πίνακα που να έχει τον ίδιο συνδυασμό τιμών, στα πεδία Όνομα και Ημερομηνία. Για παράδειγμα έχω Όνομα = Σάκης Ημερομηνία = 18/02/2009.
Αν δεν υπάρχει άλλη εγγραφή με αυτές τις τιμές, η dlookup μου δίνει αρνητικό αποτέλεσμα.
Αν όμως εγώ εκτελώ την dlookup μέσω μακροεντολής μετά την αλλαγή στα πεδία Όνομα και Ημερομηνία, σε περίπτωση που αλλάξω το Σάκης και γράψω και πάλι Σάκης, το αποτέλεσμα της dlookup θα είναι θετικό.
Θα ήθελα λοιπόν η dlookup να μην ελέγχει την τρέχουσα εγγραφή.
Σκέφτηκα λοιπόν ότι αν μπορούσα να προσπελάσω τον αριθμό της τρέχουσας εγγραφής και τον αριθμό της εγγραφής που βρίσκει η dlookup και βάλω ως κριτήριο οι αριθμοί αυτοί να είναι διάφοροι, τότε θα λύσω το πρόβλημά μου.
Έχει κανεις να μου προτείνει κάτι;
kon73
Script Master

Μέλος από: 13 Απρ 2008
Βοηθήματα: 3
Μηνύματα: 224


View users profile Visit posters website
ΜήνυμαΣτις: 18 Φεβ 2009 23:59    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Αγαπητέ φίλε sakis297,

Αν δεν είναι δεσμευτική η χρήση της Dlookup τότε θα μπορούσες να χρησιμοποιήσεις ως πρωτεύων κλειδί τα δύο πεδία (Στο παράδειγμα Όνομα, Ημερομηνία Γέννησης) και να περιμένεις σε περίπτωση που ο χρήστης εισάγει τα ίδια δεδομένα στα δύο πεδία να σου γυρίσει η Access μήνυμα Λάθους.

Το μήνυμα λάθους είναι 3022 και σου παραθέτω τον κώδικα δείγμα στο συμβάν On Error της Φόρμας που περιέχει τα 2 πεδία κλειδιά.

κώδικας:

Private Sub Form_Error(DataErr As Integer, Response As Integer)
    If DataErr = 3022 Then MsgBox "Διπλή Εγγραφή"
End Sub


Αν τώρα πρέπει για δικούς σου λόγους να χρησιμοποιήσεις την Dlookup τότε ας υποθέσουμε ότι έχουμε τα 2 ID και τα εισάγουμε στο BeforeUpdate της Φόρμας.
Επίσης 2 ID δεν είναι πρωτεύοντα κλειδιά και ο πίνακας είναι ο test

κώδικας:

Private Sub Form_BeforeUpdate(Cancel As Integer)
    If Not IsNull(DLookup("ID1", "Test", "ID1=" & Me.id1)) And Not IsNull(DLookup("ID2", "Test", "ID2=" & Me.id2)) Then
        MsgBox "Διπλή Εγγραφή"
        Cancel = True
    End If
End Sub


Πιστεύω να βοήθησα αν φυσικά κατάλαβα καλά το ερώτημά σου.

Φιλικά

Kon73

_________________
My New Site http://www.MsAccess.gr
Free Access (VBA Code,Tutorials, Mdbs, Eclass, Eshop)
Εμφάνιση Μηνυμάτων:   
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [2 Μηνύματα] Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » SQL και SQL Servers (RDBMS) » MS Access
Τώρα είναι 11 Δεκ 2016 11:53 | All times are UTC + 2


Email This Page to Someone! add to Favorites

     Powered by p h p B B © 2001,2005 p h p B B Group
Για άμεση επικοινωνία με τον διαχειριστή του freestuff.gr στο email: freestuff.gr(παπάκι)gmail.com


Copyright © 1999-2013 Freestuff.gr All Rights Reserved  
Version Aegean, designed by N. Tsaganos