Ανανέωση ιστοσελίδας
ms-office.gr > Forum > Microsoft Access > Access - Ερωτήσεις / Απαντήσεις > [ Φόρμες ] Συνάρτηση MsgBox

Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια!

Απάντηση στο θέμα

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 13-04-11, 14:48
Όνομα: ΤΖΙΜΗΣ
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 11-02-2011
Περιοχή: Πύργος Ηλείας
Μηνύματα: 227
Προεπιλογή Συνάρτηση MsgBox

Καλό μεσημέρι σε όλους.Θα ήθελα να ρωτήσω το εξής:
Έχω δημιουργήσει μία φόρμα με διάφορα πεδία(ΕΠΩΝΥΜΟ, ΟΝΟΜΑ.ΤΗΛΕΦΩΝΟ,ΑΦΜ κτλ) τα οποία προέρχονται από κάποιο πίνακα.Στη ίδια φόρμα έχω δημιουργήσει και ένα σύνθετο πλαίσιο ,βάση του οποίου κάνω αναζήτηση πληκτρολώντας το ΕΠΩΝΥΜΟ.
Πίσω από το σύνθετο πλαίσιο είναι ο εξής κώδικας για εύρεση της εγγραφής βάση του στοιχείου
ελέγχου.
Private Sub Σύνθετο_πλάσιο64_AfterUpdate()
Dim rs As Object

Set rs = Me.Recordset.Clone
rs.FindFirst "[ΑΡ_ΜΗΤΡΩΟΥ] = " & Str(Nz(Me! [Σύνθετο_πλάσιο64], 0))
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub

Ρωτώ:Πως γίνεται, και σε ποιο σημείο μπορεί να μπει κώδικας VBA ώστε όταν δεν βρίσκει την εγγραφή να μου εφμανίζεται ένα πλαίσιο διαλόγου (συνάρτηση Msg
Box) ΔΕΝ ΒΡΕΘΗΚΕ ΤΟ ΕΠΩΝΥΜΟ ΑΠΟ ΤΗ ΛΙΣΤΑ
Φιλικά
Απάντηση με παράθεση
  #2  
Παλιά 13-04-11, 17:01
Όνομα: ΔΗΜΗΤΡΗΣ
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 10-11-2010
Περιοχή: Γιαννιτσά
Μηνύματα: 149
Προεπιλογή

νομιζω αν καταλαβα καλα ειναι το else στο if που εχεις
Θα βαλεις else και την VBA που θελεις

Φιλικα Δημητρης
Απάντηση με παράθεση
  #3  
Παλιά 13-04-11, 22:18
Όνομα: ΤΖΙΜΗΣ
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 11-02-2011
Περιοχή: Πύργος Ηλείας
Μηνύματα: 227
Προεπιλογή

Δημήτρη το δοκίμασα αλλά δεν τρέχει.
Απάντηση με παράθεση
  #4  
Παλιά 13-04-11, 23:56
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλησπέρα

Θα πρέπει να διαμορφωθεί ο κώδικας ως εξής:
Κώδικας:
Private Sub Σύνθετο_πλάσιο64_AfterUpdate()
Dim rs As DAO.Recordset

Set rs = Me.RecordsetClone
    rs.FindFirst "[ΑΡ_ΜΗΤΡΩΟΥ] = " & Str(Nz(Me![Σύνθετο_πλάσιο64], 0))
    If Not rs.EOF Then
        Me.Bookmark = rs.Bookmark
    Else
        MsgBox "Δε βρέθηκε το ζητούμενο"
    End If
    rs.Close
End Sub
Αν το πεδίο [ΑΡ_ΜΗΤΡΩΟΥ] δεν είναι αριθμητικό ή γραμμή αναζήτησης θα πρέπει να αντικατασταθεί με την:
Κώδικας:
rs.FindFirst "[ΑΡ_ΜΗΤΡΩΟΥ] ='" & Str(Nz(Me![Σύνθετο_πλάσιο64], 0)) & "'"
Φιλικά/Γιώργος
Απάντηση με παράθεση
  #5  
Παλιά 14-04-11, 14:48
Όνομα: ΤΖΙΜΗΣ
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 11-02-2011
Περιοχή: Πύργος Ηλείας
Μηνύματα: 227
Προεπιλογή

Γιώργο δοκίμασα τον κώδικα, τρέχει κανονικά, αλλά δεν εμφανίζει το μήνυμα "ΔΕ ΒΡΕΘΗΚΕ" ,όταν δε βρίσκει το επώνυμο στη λίστα.
Ευχαριστώ.
Απάντηση με παράθεση
  #6  
Παλιά 14-04-11, 17:17
Το avatar του χρήστη editolis
Super Moderator
Όνομα: Τολης
Έκδοση λογισμικού Office: Ms-Office 2007, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 02-01-2010
Περιοχή: ATHENS-GREECE
Μηνύματα: 180
Προεπιλογή

ΤΖΙΜΗ για δοκιμασε τα εξης:
Κανε δεξι κλικ πανω στην λιστα σου και πηγαινε στις ιδιοτητες.

Στα ΔΕΔΟΜΕΝΑ εκει που λεει "Περιορισμος σε Λιστα" εσυ κανε το ΝΑΙ.

Μετα στο ΣΥΜΒΑΝ εκει που λεει "Οταν δεν υπαρχει στην Λιστα" περασε αυτο
τον κωδικα.

MsgBox "Το επώνυμο δεν Βρέθηκε.", vbExclamation, "TZIMIS DB"
Response = acDataErrContinue


Καλη συνεχεια...
Απάντηση με παράθεση
  #7  
Παλιά 14-04-11, 19:06
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλησπέρα στην παρέα

Τζίμη, έχεις δίκιο. Ο σωστός κώδικας είναι ο παρακάτω.
Κώδικας:
Private Sub Σύνθετο_πλάσιο64_AfterUpdate()
Dim rs As DAO.Recordset

Set rs = Me.RecordsetClone
    rs.FindFirst "[ΑΡ_ΜΗΤΡΩΟΥ] = " & Str(Nz(Me![Σύνθετο_πλάσιο64], 0))
    If rs.NoMatch Then
        MsgBox "Δε βρέθηκε το ζητούμενο"
    Else
        Me.Bookmark = rs.Bookmark
    End If
    rs.Close
End Sub
Δες και το παράδειγμα που επισυνάπτω

Φιλικά/Γιώργος
Συνημμένα Αρχεία
Τύπος Αρχείου: mdb FindRecord.mdb (260,0 KB, 92 εμφανίσεις)
Απάντηση με παράθεση
  #8  
Παλιά 14-04-11, 21:28
Όνομα: ΤΖΙΜΗΣ
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2016
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 11-02-2011
Περιοχή: Πύργος Ηλείας
Μηνύματα: 227
Προεπιλογή

Παιδιά πολλά ευχαριστώ για την ώρα που διαθέσατε, και για τη λύση που μου δώσατε.
Η λύση του Τόλη πράγματι πολύ έξυπνη και γρήγορη.
Η δεύτερη λύση του Γιώργου ήθελε σαφώς περισσότερο κώδικα και πιο δύσκολή στη σύλληψη με την διαφορά όμως Γιώργο ότι ,όταν δεν υπάρχει το επώνυμο μέσα στη λίστα προηγείται το μνμ της Access από το δικό μας διαμορφωμένο μνμ.
Γιώργο και Τόλη πράγματι δώσατε μαθήματα vba.
Απάντηση με παράθεση
Απάντηση στο θέμα


Δικαιώματα - Επιλογές
Δε μπορείτε να δημοσιεύσετε νέα μηνύματα
Δε μπορείτε να δημοσιεύσετε απαντήσεις
Δεν μπορείτε να επισυνάψετε αρχεία
Δεν μπορείτε να επεξεργαστείτε τα μηνύματα σας

Ο κώδικας ΒΒ είναι σε λειτουργία
Τα Smilies είναι σε λειτουργία
Ο κώδικας [IMG] είναι σε λειτουργία
Ο κώδικας HTML είναι εκτός λειτουργίας
Trackbacks are εκτός λειτουργίας
Pingbacks are εκτός λειτουργίας
Refbacks are εκτός λειτουργίας


Παρόμοια Θέματα

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
Msgbox γιώργοςΚ Access - Ερωτήσεις / Απαντήσεις 2 10-01-16 22:22
[VBA] msgBox Μήνυμα gfevran Excel - Ερωτήσεις / Απαντήσεις 13 02-02-14 23:00
msgbox με 3 επιλογές γιώργοςΚ Access - Ερωτήσεις / Απαντήσεις 2 02-01-14 19:26
[VBA] MsgBox επαναλαμβάνεται anestaki Excel - Ερωτήσεις / Απαντήσεις 2 26-03-13 01:22
msgbox από πεδίο από ερώτημα tzvangel Access - Ερωτήσεις / Απαντήσεις 5 11-07-11 21:06


Η ώρα είναι 13:31.