| Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια! |
![]() |
| | Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
| |
|
#1
| |||
| |||
|
Γεια σας παιδιά!!! Έχω φτιάξει το παρακάτω ερώτημα. UPDATE Paraggelies INNER JOIN Periexomena_Paraggelias ON Paraggelies.code = Periexomena_Paraggelias.code SET Periexomena_Paraggelias.need_call = True WHERE (((Paraggelies.code)=[Forms].[Add_Paraggelies_final].[code]) AND ((Paraggelies.need_call)=True)); Επιπλέον έχω φτιάξει μία μακροεντολή που εκτελεί το ερώτημα αυτό και η μακροεντολή εκτελείται στο after_update ενός πεδίου. Λειτουργεί μια χαρά. Θα ήθελα λοιπόν, αντί της μακροεντολής, να γράψω κώδικα στο after_update του πεδίου. Μπορεί λοιπόν κάποιος να με βοηθήσει στο να γράψω τον παραπάνω κώδικα SQL σε VBA; |
|
#2
| ||||
| ||||
|
Σάκη υποθέτω ότι το πεδίο [Forms].[Add_Paraggelies_final].[code] βρίσκεται στη φόρμα που υπάρχει και το πεδίο που θέλεις να χρησιμοποιήσεις κώδικα VBA στο συμβάν "μετά την ενημέρωση". Έστω ότι το πεδίο εχει το όνομα myTextBox. Μπορείς να χρησιμοποιήσεις το παρακάτω παράδειγμα: Κώδικας: Private Sub myTextBox_AfterUpdate()
Dim strSQL As String
strSQL = "UPDATE Paraggelies INNER JOIN Periexomena_Paraggelias ON Paraggelies.code =" & _
" Periexomena_Paraggelias.code SET Periexomena_Paraggelias.need_call = True"
strSQL = strSQL & " WHERE Paraggelies.code =" & Me.code & " AND Paraggelies.need_call = True"
CurrentDb.Execute strSQL
End Sub
Το αν λειτουργήσει ή όχι εξαρτάται και από τη σχεδίαση της βάσης. Φιλικά Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών |
|
#3
| |||
| |||
|
Τάσο κατ'αρχάς σε ευχαριστώ για τη βοήθειά σου. Δυστυχώς δε δούλεψε. Στη φόρμα Add_Paraggelies_final έχω βάλει ένα κουμπί Update το οποίο εκτελεί το σχετικό ερώτημα. Το κουμπί λειτουργεί κανονικά, όμως παρατήρησα ότι τα αποτελέσματα του ερωτήματος δε φαίνονται αμέσως στη δευτερεύουσα φόρμα. Τι εννοώ...Το ερώτημα κάνει update στο πεδίο need_call, το οποίο βρίσκεται στη δευτερεύουσα φόρμα. Τα αποτελέσματα φαίνονται, αν φύγω από την εγγραφή και ξαναγυρίσω σε αυτήν. Το γεγονός αυτό, μαζί με το γεγονός ότι ο κώδικας που μου έδωσες δε δούλεψε, με οδήγησε στο να βάλω στο after_update του need_call (της κανονικής φόρμας και όχι της δευτερεύουσας φόρμας) τον εξής κώδικα Private Sub need_call_AfterUpdate() Forms.Add_Periexomena_Paraggelias_deyt.need_call = IIf(Me.need_call = True, True, False) End Sub Απ' ό,τι καταλαβαίνω το Forms.Add_Periexomena_Paraggelias_deyt.need_call δεν είναι ο σωστός τρόπος για να προσπελάσω το need_call της δευτερεύουσας φόρμας. Πιθανολογώ λοιπόν, ότι αν γράψω σωστά τον παραπάνω κώδικα, θα λυθεί το πρόβλημά μου. Εδώ είναι το παράδειγμα http://dl.dropbox.com/u/58056089/example.mdb |
|
#4
| |||
| |||
|
Βασικά σε περίπτωση που το need_call == false,τότε δε θέλω να γίνεται τίποτα. Άρα θα έπρεπε να γράψω τον κώδικα κάπως έτσι. Forms.Add_Periexomena_Paraggelias_deyt.need_call = IIf(Me.need_call = True, True) |
|
#5
| ||||
| ||||
|
Σάκη, ο κώδικας που σου έδωσα είναι μια μετάφραση του SQL του μηνύματος σου σε VBA. Όπως προανέφερα, το αν λειτουργήσει ή όχι εξαρτάται και από τη σχεδίαση της βάσης. Τώρα όμως που βλέπω τη βάση σου, δεν μπορώ να καταλάβω γιατί δεν πατάς το checkbox κατευθείαν στην υποφόρμα; Πες μας τι ακριβώς θέλεις να επιτύχεις. Φιλικά Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών |
|
#6
| |||
| |||
|
Λογική η απορία σου. Αυτό που θέλω είναι το εξής: Αν για παράδειγμα στην υποφόρμα έχω 20 εγγραφές και θέλω και στις 20 το need_call να είναι true, δε θέλω να κουράζομαι και να το τσεκάρω και στις 20 εγγραφές, αλλά πατώντας ένα κουμπί ή τσεκάρωντας το need_call της κανονικής φόρμας να γίνονται αυτόματα όλα τα need_call της υποφόρμας true. |
|
#7
| ||||
| ||||
|
Στο AfterUpdate του στοιχείου 'need_call' πέρασε το παρακάτω: Private Sub need_call_AfterUpdate() Dim strSQL As String strSQL = "UPDATE Periexomena_Paraggelias SET Periexomena_Paraggelias.need_call = " & _ Nz(Me.need_call) & " WHERE [code] =" & Nz(Me.code) CurrentDb.Execute strSQL Me.Add_Periexomena_Paraggelias_deyt.Form.Refresh End Sub Μπορείς ακόμα να μεταφέρεις το παραπάνω στοιχείο στην υποφόρμα στη θέση της ετικέτας 'Θέλει Υπενθύμιση' (στην κεφαλίδα της υποφόρμας) και να του αντιστοιχίσεις το παρακάτω: Private Sub need_call_AfterUpdate() Dim strSQL As String strSQL = "UPDATE Periexomena_Paraggelias SET Periexomena_Paraggelias.need_call = " & _ Nz(Me.need_call) & " WHERE [code] =" & Nz(Me.code) CurrentDb.Execute strSQL Me.Refresh End Sub Καλή συνέχεια! Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών |
|
#8
| |||
| |||
|
Τάσο δουλεύει άψογα!!! Έμαθα πολλά από τον κώδικα που μου έστειλες!!! Σ' ευχαριστώ πολύ!!! |
|
#9
| |||
| |||
|
Τάσο, συγγνώμη που επανέρχομαι και πάλι, αλλά εντόπισα ένα λάθος. Το ερώτημα Update ήθελα να εκτελείται εφόσον το need_call = true. Αν είναι false δηλαδή, δε θα ήθελα να επηρεάζει τα need_calls της υποφόρμας. Γι'αυτό λοιπόν έβαλα τον εξής κώδικα Dim strSQL As String strSQL = "UPDATE Periexomena_Paraggelias SET Periexomena_Paraggelias.need_call = " & _ Nz(Me.need_call) & " WHERE [code] =" & Nz(Me.code) If Me.need_call = True Then CurrentDb.Execute strSQL End If Me.Refresh Ο λόγος που χρησιμοποίησα την If είναι γιατί δεν μπορούσα στο Where να βάλω δεύτερο κριτήριο. Έγραφα λοιπόν το εξής. Dim strSQL As String strSQL = "UPDATE Periexomena_Paraggelias SET Periexomena_Paraggelias.need_call = " & _ Nz(Me.need_call) & " WHERE [code] =" & Nz(Me.code) and Me.need_call = true CurrentDb.Execute strSQL Me.Refresh End Sub Αυτό που ήθελα να κάνω το πέτυχα με If, αλλά θα ήθελα να ξέρω πως γράφω σωστά τον παραπάνω κώδικα. |
|
#10
| ||||
| ||||
|
Καλησπέρα Δοκίμασε το: ...Nz(Me.need_call) & " WHERE [code] =" & Nz(Me.code) & " and Me.need_call = true" Καλή συνέχεια... Με εκτίμηση Νίκος Δ. |
![]() |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
| ||||
| Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
| [ Φόρμες ] After Update | gmax | Access - Ερωτήσεις / Απαντήσεις | 2 | 07-08-15 06:00 |
| Update τιμών σε εγγραφή.. | pctechdr | Access - Ερωτήσεις / Απαντήσεις | 2 | 22-06-15 21:55 |
| [ Ασφάλεια] Update εφαρμογής ACCESS μέσω Internet | vraxnakisg | Access - Ερωτήσεις / Απαντήσεις | 7 | 18-06-15 02:29 |
| Προβλημα με update | jimrenoir | Access - Ερωτήσεις / Απαντήσεις | 0 | 14-06-11 11:54 |
| Update σε πεδίο πίνακα | Meteora | Access - Ερωτήσεις / Απαντήσεις | 5 | 24-06-09 22:01 |
Η ώρα είναι 08:11.


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

