| Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια! |
![]() |
| | Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
| |
|
#1
| |||
| |||
|
Καλημερα σε ολους.Ανεβαζω ενα δειγμα της βασης μου.Η πρωτη φορμα που ανοιγει ειναι τα "Προσωπικα Στοιχεία".Αφου καταχωρησουμε καποια απαραιτητα στοιχεια ανοιγουμε την φορμα "Μαιευτική".Στα πεδια της υποφορμας "Περιστατικα Ιδ Ενδιαφερντος Εξωτερικων Μαιευτικης" στο πεδιο "Αριθμος Φακελου" γινεται να αποφευγεται η διπλοτυπη εγγραφη.Πχ οταν παει να γινει την ιδια στιμγη καταχωρηση στην δευτερη γραμμη της υποφορμας να μας εμφανιζει το σχετικο μηνυμα αν υπαρχει διπλοεγγραφη? Στον κωδικα vba εχσω βαλει εναν κωδικα αλλα προφναως δεν δουλευει γιατι μαλλον δεν εχει αποθηκευτει πρωτα η εγγραφη |
|
#2
| ||||
| ||||
|
Καλημέρα σε όλους! Γιάννη, φρόντισε τα ονόματα των πινάκων αλλά και των υπόλοιπων στοιχείων του έργου σου να έχουν μικρό μήκος και να περιέχουν μόνο λατινικούς χαρακτήρες. στη σχεδίαση του πίνακα "Περιστατικα_Ιδ_Ενδιαφέρον ος_Εξωτερικών_Μαιευτικής" επίλεξε το πεδίο "Αριθμός Φακέλου" και άλλαξε την ιδιότητα "Με ευρετήριο" σε "Ναι (Δεν επιτρέπονται διπλότυπα)". Κατόπιν στη φόρμα "Περιστατικά_Ιδ_Ενδιαφέροντ ος_Εξωτερικών_Ιατρ_Μαιευτι ής" αφού αφαιρέσεις το συμβάν "Αριθμός_Φακέλου_BeforeUpdate" , επικόλλησε τον παρακάτω κώδικα και αποθήκευσε: Κώδικας: Private Sub Form_Error(DataErr As Integer, Response As Integer)
If DataErr = 3022 Then
Dim ret As VbMsgBoxResult
MsgBox "Υπάρχει ήδη ο αριθμός φακέλου: '" & Me.Αριθμός_Φακέλου & _
"'" & vbLf & vbLf & "Πατήστε [ESC] για να ακυρώσετε την αποθήκευση", _
vbExclamation, "Διπλότυπη καταχώρηση"
Me.Αριθμός_Φακέλου.Undo
Me.Αριθμός_Φακέλου.SetFocus
Me.Αριθμός_Φακέλου.SelStart = 0
Me.Αριθμός_Φακέλου.SelLength = Len(Me.Αριθμός_Φακέλου.Text)
Response = acDataErrContinue
End If
End Sub
Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών |
|
#3
| |||
| |||
|
Τασο το εκανα αλλα μου βγαζει αυτο οπως βλεπεις στην εικονα
|
|
#4
| ||||
| ||||
|
Ιωάννη μου δεν έκανες δοκιμές στο παράδειγμα που ανέβασες αλλά σε άλλο αρχείο που συνδέεται με MSSQL. Δεν είναι το ίδιο πράγμα. Δοκίμασε τα παρακάτω: Αντικατέστησε τον κώδικα: Κώδικας: Private Sub Form_Error(DataErr As Integer, Response As Integer)
If DataErr = 3022 Then
Dim ret As VbMsgBoxResult
MsgBox "Υπάρχει ήδη ο αριθμός φακέλου: '" & Me.Αριθμός_Φακέλου & _
"'" & vbLf & vbLf & "Πατήστε [ESC] για να ακυρώσετε την αποθήκευση", _
vbExclamation, "Διπλότυπη καταχώρηση"
Me.Αριθμός_Φακέλου.Undo
Me.Αριθμός_Φακέλου.SetFocus
Me.Αριθμός_Φακέλου.SelStart = 0
Me.Αριθμός_Φακέλου.SelLength = Len(Me.Αριθμός_Φακέλου.Text)
Response = acDataErrContinue
End If
End Sub
Κώδικας: Private Sub Form_Error(DataErr As Integer, Response As Integer)
MsgBox Dataerr
End Sub
Κατόπιν επανέφερε τον αρχικό κώδικα και άλλαξε το 3022 με το νούμερο του μηνύματος (MsgBox) και δοκίμασε ξανά.
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών |
|
#5
| |||
| |||
|
ok Τασο θα το διορθωσω και θα σου πω.
|
|
#6
| |||
| |||
|
Kαλημερα.Το error ταν 3146.To αντικατέστησα και τωρα δουλευει.Σε ευχαριστω Τασο.
|
|
#7
| ||||
| ||||
|
Να είσαι καλά! Καλή συνέχεια!
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών |
|
#8
| |||
| |||
|
Τασο θα το κοιταξω και θα σε ενημερωσω.Σε ευχαριστω
|
![]() |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
| ||||
| Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
| [ Φόρμες ] επιλογή σε αναδυόμενο πεδίο και τοποθέτηση σε πεδίο υποφορμας | artchrist73 | Access - Ερωτήσεις / Απαντήσεις | 5 | 25-04-18 11:02 |
| [ Φόρμες ] Εστίαση σε συγκεκριμένο πεδίο υποφόρμας | dimitrisp | Access - Ερωτήσεις / Απαντήσεις | 10 | 25-06-15 12:24 |
| [ Φόρμες ] Πεδίο που συμπληρώνεται αυτόματα αν υπάρχει η τιμή σε προηγούμενη εγγραφή. | dim.konst | Access - Ερωτήσεις / Απαντήσεις | 2 | 29-05-14 12:17 |
| Διπλότυπη Εγγραφή | choulio19 | Access - Ερωτήσεις / Απαντήσεις | 1 | 25-05-14 18:10 |
| [ Πίνακες ] Αυτόματη εγγραφή πεδίου από άλλο πεδίο | Free_Ghost | Access - Ερωτήσεις / Απαντήσεις | 10 | 01-02-10 07:13 |
Η ώρα είναι 10:55.


Υβριδικός τρόπος

