Forum

Forum (https://www.ms-office.gr/forum/)
-   Access - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/)
-   -   [ Φόρμες ] Εύρεση Πρωτοκόλλου και μήνυμα "υπάρχει ήδη" (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/2580-eiresi-protokolloy-kai-minyma-yparxei-idi.html)

Dafnh0106 11-06-13 14:19

Εύρεση Πρωτοκόλλου και μήνυμα "υπάρχει ήδη"
 
Καλησπερα στο forum

Θα ήθελα αν μπορεί να με βοηθήσει κάποιος στο εξής:

Εχω μία οθόνη με διαφορα πεδία με βασικό κλειδί τον αρθμό πρωτοκόλλου
επειδή οι χρήστες δεν κανουν εύρεση πρωτοκόλλου αν υπάρχει πρώτα με το κουμπί που τους εχω φτιαξει θα ήθελα αν γίνεται μόλις πληκτορλογούν τον αριθμό πρωτοκόλλου να τους βγάζει ένα μηνυμα "ΥΠΑΡΧΕΙ ΗΔΗ" ..... αν υπάρχει οντως.....αλλιως να συνεχισουν την εισαγωγή των στοιχείων......

Σας ευχαριστω εκ των προτέρων

Δάφνη Μ.

ασχετος 11-06-13 16:20

καλό μεσημέρι στο forum.

Δάφνη,

στο πεδίο που θέλεις, πήγαινε στο συμβάν BeforeUpdate χρησιμοποίησε την function DLookup(), αν δε τα καταφέρεις ανέβασε μια test database να βοηθήσουμε καλύτερα.

Dafnh0106 12-06-13 09:38

Καλημερα στο forum :)


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

1. Εαν το βρέι να λεει "υπάρχει ήδη" και να φέρνει την καρτέλα με τα στοιχέια που έχουν σχέση με το πρωτόλλο

2. Εαν δεν το βρει να φέρνει την καρτέλα σε κατασταση εισαγωγής νεου ρεκορντ ....

Οπότε πρπει να φτιάξω μια ευρεση στο πεδίο πρωτοκολλο και να μου φερνει το ρεκορντ ενα ειναι ήδη περασμένο αλλιως να μου κανει add record .........

Eάν μπορει να με βοηθήσει καποιος σ αυτο θα ημουν υπόχρεη :)

Ευχαριστω πολυ Κωστα για την βοήθεια σου

Ευχαριστω εκ των προτερων για την βοηθεια σας σ αυτο το προβλημα μου :)

Δαφνη Μ.

Tasos 12-06-13 10:34

1 Συνημμένο(α)
Καλημέρα!

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

Εάν το νούμερο που πληκτρολογείται υπάρχει ήδη, η εγγραφή θα εμφανιστεί στη φόρμα.

Αν δεν υπάρχει, θα δημιουργηθεί νέα εγγραφή με βάση το πληκτρολογημένο νούμερο.

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

Θα χρειαστεί να τροποποιηθεί αν το βασικό κλειδί τον αρθμό πρωτοκόλλου είναι κείμενο.


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

Με εκτίμηση

Τάσος

Dafnh0106 12-06-13 11:09

Καλημερα σας :)

Σ ευχαριστω παρα πολυ Τασο για τη βοήθεια , ειναι αυτο που θελω , θα το δοκιμασω και θα σας πω .......

Ευχαριστω και παλι :)

με εκτιμηση

Δαφνη Μ.

Dafnh0106 12-06-13 13:16

Καλησπερα στο forum :)

Τασο συγγνωμη που σε ζαλιζω αλλα μου χτυπαει στο :
rs.FindFirst "[ΑΡΙΘΜΟΣ ΠΡΩΤΟΚΟΛΛΟΥ] = " & Str(Nz(Me!cboProtokolo, 0))

υποθετω οτι χτυπαει επειδη ο αριθμος πρωτοκολλου ειναι text

Private Sub cboProtokolo_AfterUpdate()
Dim rs As Object
Set rs = Me.Recordset.Clone
rs.FindFirst "[ΑΡΙΘΜΟΣ ΠΡΩΤΟΚΟΛΛΟΥ] = " & StrcboProtokolo
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub
Private Sub cboProtokolo_NotInList(NewData As String, Response As Integer)
Response = acDataErrContinue
Me.cboProtokolo.Undo
DoCmd.GoToRecord acDataForm, Me.Name, acNewRec
Me.ΑΡΙΘΜΟΣ ΠΡΩΤΟΚΟΛΛΟΥ = NewData
Me.ΑΡΙΘΜΟΣ ΠΡΩΤΟΚΟΛΛΟΥ = Null
Me.ΑΡΙΘΜΟΣ ΠΡΩΤΟΚΟΛΛΟΥ.SetFocus
End Sub




Eυχαριστώ

Δαφνη

Free_Ghost 12-06-13 18:53

Γεια σου Δάφνη, επειδή έχω φτιάξει μια παρόμοια εφαρμογή με πολύ βοήθεια από το παρόν site.

Βασικά νομίζω πώς είσαι λάθος στην εισαγωγή του Πρωτοκόλλου, έπρεπε να παίρνει μόνο του τον αριθμό με ημερομηνία και ώρα από αυτόματη αρίθμηση την στιγμή που πατάς ένα πλήκτρο New, και δεν θα βάζεις εσύ νούμερο.

Εγώ έβαλα τον παρακάτω κώδικα στα εισερχόμενα και στο πρωτόκολλο εκδότη επειδή υπάρχει περίπτωση να εισάγω το ίδιο 2 φορές για αυτό με το που εισάγω το νούμερο του εκδότη και πάω σε άλλο πλαίσιο μου βγάζει μήνυμα, και διορθώνω η ακυρώνω.



Private Sub ProtokolloEkdoti_LostFocus()
If DCount("*", "[P_EGGRAFA]", "[ProtokolloEkdoti]='" & Me![ProtokolloEkdoti].Text & "'") > 1 Then
Cancel = True
MsgBox "Εδώ γράφεις το μήνυμα σου"
Me![ProtokolloEkdoti].Undo
End If
End Sub

Dafnh0106 12-06-13 19:11

Καλησπερα σας :)

Χρήστο σ ευχαριστω για την βοηθεια σου , θα το δοκιμασω την υποδειξη σου :) το πρωτοκολλο με την ημερομηνια δεν τα δινω εγω διοτι ειναι ήδη δοσμενα απο αλλη υπηρεσια σε παρελθοντα χρονο ................

Ευχαριστω και παλι για την βοηθεια :)

με εκτιμηση

Δαφνη Μ.

Dafnh0106 13-06-13 12:22

Παράθεση:

Αρχική Δημοσίευση από ασχετος (Μήνυμα 15067)
καλό μεσημέρι στο forum.

Δάφνη,

στο πεδίο που θέλεις, πήγαινε στο συμβάν BeforeUpdate χρησιμοποίησε την function DLookup(), αν δε τα καταφέρεις ανέβασε μια test database να βοηθήσουμε καλύτερα.


Καλημερα στο forum :)

Κώστα στο πεδίο ΠΡΩΤΟΚΟΛΛΟ το οποιο ειναι κειμενο : 100/01/08/12

στο συμβαν before update προσπαθησα να χρησιμοποιήσω την function DLookup()

αλλα μου χτυπαει......

Private Sub ΠΡΩΤΟΚΟΛΛΟ_BeforeUpdate(Cancel As Integer)

=DLookUp("[ΠΡΩΤΟΚΟΛΛΟ]","main_tbl", "[ΠΡΩΤΟΚΟΛΛΟ] = " & forms!MAIN_TBL![ΠΡΩΤΟΚΟΛΛΟ])

End Sub

Αν εχεις καθολου χρονο εχω κανει μια τεστ βαση να δεις τι εχω κανει λαθος......

Ευχαριστω πολυ

με εκτιμηση


Δαφνη

Tasos 13-06-13 13:49

Καλημέρα!

Δάφνη, στο παράδειγμα υπάρχει ένας πίνακας με πρωτεύον κλειδί (ID) και με αυτόματη αρίθμηση.
Το πεδίο αυτό είναι και η πρώτη (κρυφή + δεσμευμένη) στήλη του σύνθετου πλαισίου.
Πάνω σε αυτό το πεδίο βασίζεται η αναζήτηση.
Αν ο πίνακας σου δεν έχει τέτοιο πεδίο αυτόματης αρίθμησης τότε φρόντισε:
η πρώτη στήλη του πλαισίου κειμένου να παίρνει δεδομένα απ΄ το πεδίο ID (ή όπως αυτό ονομάζεται)
και η δεύτερη στήλη να παίρνει δεδομένα από το πεδίο [ΑΡΙΘΜΟΣ ΠΡΩΤΟΚΟΛΛΟΥ].

Στην περίπτωση αυτή δεν θα χρειαστεί τροποποίηση στον κώδικα.

Διαφορετικά περίγραψε μας τη δομή του πίνακα σου για να σε βοηθήσουμε.

Με εκτίμηση

Τάσος


Η ώρα είναι 08:15.

Ms-Office.gr - ©2000 - 2024, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2