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

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

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

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 03-03-09, 20:29
Το avatar του χρήστη Meteora
Συντονιστής
Όνομα: Νίκος
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 28-12-2008
Περιοχή: Θεσσαλονίκη
Μηνύματα: 1.033
Προεπιλογή Ενημέρωση πίνακα απο μη συνδεδεμένη φόρμα

Φίλοι καλησπέρα

Φτιάχνω μια εφαρμογή που διαχειρίζεται τη βιβλιοθήκη σχολικών μονάδων (Βιβλία, Δανειζόμενοι, Δανεισμοί, Επιστροφές, αναφορές, εκτυπώσεις, ...).
Σκέφτηκα το εξής κάποια στιγμή.
Ο χρήστης της εφαρμογής αποφασίζει να αλλάξει τον κωδικό σε κάποιο (-α) βιβλίο. Αν το βιβλίο αυτό ειναι σε δανεισμό, πρέπει ο πίνακας δανεισμού βιβλίων -που περιέχει την πληροφορία αυτή -να ενημερωθεί, ετσι ώστε το βιβλίο να μη υπάρχει ταυτόχρονα με δυο κωδικούς.
Έφτιαξα φυσικά κάποιο αλγόριθμο για να λύσω αυτό το πρόβλημα.
Ας το δούμε...

Έστω η φόρμα Α που ‘Πατά’ στον πίνακα Α1 (Τίτλος Βιβλίου, Συγγραφέας, Κατηγορία, Κωδικός , …) . Έστω επίσης δεύτερος πίνακα Β1 που περιέχει τα πεδία (Δανειζόμενος, Ημερομηνία δανεισμού, κωδικός Βιβλίου, …)
Επιθυμώ :
‘Όταν αλλάξω τον κωδικό βιβλίου στη Φόρμα Α να ενημερωθεί όχι μόνο ο πίνακας Α1, αλλά και ο πίνακας Β1.

Βήμα 1 : Στον πίνακα Α1 δημιουργώ ένα πεδίο με τίτλο [ΠρωηνΚωδικος].


Βήμα 2 : Στο συμβάν ‘με την φόρτωση’ της φόρμας Α1 γράφω τον παρακάτω κώδικα αφού θέλω το πεδίο να είναι αόρατο στη φόρμα.

Private Sub Form_Load()
[ΠρωηνΚωδικος].Visible = False
End Sub


Βήμα 3 : Στο πεδίο [Κωδικος] της φόρμας και στο συμβάν ‘με την είσοδο’, γράφω τον παρακάτω κώδικα, ώστε να στείλω αυτή την τιμή του στο πεδίο [ΠρωηνΚωδικός], πριν το πεδίο [Κωδικός] αλλάξει.

Private Sub Κωδικος_Enter()
ΠρωηνΚωδικος = Κωδικος
End Sub


Βήμα 4 : Στο κουμπί ‘Αποθήκευση’ –εκτός των άλλων- υπάρχει το παρακάτω τμήμα του κώδικα που αλλάζει την τιμή του κωδικού στον πίνακα Β1.

If [Κωδικος] <> [ΠρωηνΚωδικος] Then
Dim SQL As String
SQL = "UPDATE ΔΑΝΕΙΟ " & _
"SET ΔΑΝΕΙΟ.ΚωδικοςΒιβλιου = Κωδικος " & _
"WHERE ΔΑΝΕΙΟ.ΚωδικοςΒιβλιου = ΠρωηνΚωδικος"
DoCmd.RunSQL SQL
End If


Ίσως πήγα από Θεσσαλονίκη στην Αθήνα μέσω …Ορεστιάδας! Πάντως πήγα…
Οποιαδήποτε άλλη διαχείριση ειναι το ζητούμενο !

Με εκτίμηση
O meteora
Απάντηση με παράθεση
  #2  
Παλιά 04-03-09, 08:34
Όνομα: Ηλιάδης Κωνσταντίνος
Έκδοση λογισμικού Office: Ms-Office 2010, Ms-Office 2013
Γλώσσα λογισμικού Office: Αγγλική
 
Εγγραφή: 13-12-2008
Περιοχή: Chicago
Μηνύματα: 119
Προεπιλογή Re: Ενημέρωση πίνακα απο μη συνδεδεμένη φόρμα

Αγαπητέ Φίλε Meteora Καλημέρα,

Η ενημέρωση διαδοχικά του κωδικού Βιβλίου σου προτείνω να γίνει με 2 τρόπους.

1. Στις σχέσεις των πινάκων όπου εκεί θα έχεις τον πίνακα βιβλία με τους σχετικούς πίνακες και σαν ιδιότητα της σχέσης θα έχεις Διαδοχική ενημέρωση των σχετικών εγγραφών (Ώστε σε κάθε αλλαγή του κωδικού βιβλίου θα αλλάζει και ο κωδικός βιβλίου στους άλλους πίνακες) και προτείνω να επιλεχθεί και το Διαδοχική διαγραφή των σχετικών εγγραφών (Καθότι με την διαγραφή του βιβλίου θα έχουμε και τις διαγραφές των εγγραφών του στους σχετικούς πίνακες. Κάτι που πρέπει σωστά και να το εφαρμόσουμε καθότι διαφορετικά θα είχαμε εγγραφές με κωδικό βιβλίου που δεν υπάρχει.

2. Εαν θέλεις να διατηρήσεις την τιμή που έχει το πεδίο κωδικός αριθμός βιβλίου δηλαδή την παλιά τιμή του πριν την τροποποίησή του, δοκίμασε να το βάλεις σε μία μεταβλητή με εμβέλεια φόρμας (Ορισμός μεταβλητής ως private, πχ private IntBookID as Integer) και θα αποδίδεις την τιμή στην μεταβλητή στο Event On Dirty (Με αλλοίωση εγγραφής μετά την αποθήκευση) της φόρμας.
πχ. (BookID το όνομα του textbox)
Κώδικας:
Private IntBookID as Integer
Private Sub Form_Dirty(Cancel As Integer)
    IntBookID=me.BookID
End Sub
Από εκεί και πέρα έχεις την παλιά τιμή και φυσικά με το AfterUpdate Event έχεις και την καινούργια τιμή. Οπότε εκτελείς και ανάλογα το SQL ερώτημά σου.

Φιλικά

iliadisk / Kon73
Απάντηση με παράθεση
Απάντηση στο θέμα


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

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


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

Θέμα Δημιουργός Forum Απαντήσεις Τελευταίο Μήνυμα
[ Πίνακες ] Ενημέρωση πίνακα από φόρμα caudillo Access - Ερωτήσεις / Απαντήσεις 4 21-07-15 23:41
[ Φόρμες ] Φόρμα με εικόνα συνδεδεμένη με πλαίσιο κειμένου Λάμπρος Τ Access - Ερωτήσεις / Απαντήσεις 5 15-05-14 10:11
Φόρμα, Έκθεση, Ενημέρωση πίνακα kellis Access - Ερωτήσεις / Απαντήσεις 13 02-06-13 15:41
[ Φόρμες ] Ενημέρωση Πίνακα που δεν σχετίζεται με την φόρμα stelianta Access - Ερωτήσεις / Απαντήσεις 4 20-02-12 12:51
[ Φόρμες ] Ενημέρωση Πίνακα από Φόρμα marpapa Access - Ερωτήσεις / Απαντήσεις 5 12-09-11 22:58


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