Forum

Forum (https://www.ms-office.gr/forum/)
-   Access - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/)
-   -   [ Φόρμες ] Εκτέλεση ερωτήματος Update με το πάτημα ενός κουμπιού (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/5588-ektelesi-erotimatos-update-me-patima-enos-koympioi.html)

sakis297 08-07-20 12:54

Εκτέλεση ερωτήματος Update με το πάτημα ενός κουμπιού
 
1 Συνημμένο(α)
Γεια σας!
Στο αρχείο που επισυνάπτω υπάρχει η φόρμα "ΕΝΔΙΑΜΕΣΟ" η οποία κατά το άνοιγμα ζητάει κωδικό πελάτη (υπάρχει περασμένος ο πελάτης 76) κι έπειτα ανοίγει η φόρμα "ΕΛΕΓΧΟΣ_ΔΙΑΘΕΣΙΜΟΤΗΤΑΣ" στην οποία εμφανίζονται τα πεδία ΑΥΞΩΝ (τύπου αριθμού), ΠΕΛΑΤΗΣ (τύπου αριθμού) και ΣΥΜΦΩΝΙΑ (τύπου αριθμού), καθώς και άλλα πεδία.

Στη φόρμα υπάρχει ένα κουμπί "ΕΙΣΟΔΟΣ ΠΕΛΑΤΗ" με το πάτημα του οποίου θα ήθελα να εισάγεται μια εγγραφή στον πίνακα "ΠΡΟΠΟΝΗΣΕΙΣ" ο οποίος περιλαμβάνει τα πεδία "ΑΥΞΩΝ", "ΠΕΛΑΤΗΣ', "ΣΥΜΦΩΝΙΑ" και "ΗΜΕΡΟΜΗΝΙΑ". Τα πρώτα τρία πεδία θα ήθελα να συμπληρώνονται από την τιμή των αντίστοιχων πεδίων της φόρμας, ενώ το πεδίο "ΗΜΕΡΟΝΗΝΙΑ" να παίρνει την τιμή της συνάρτησης Date().

Δυστυχώς δεν μπορώ να γράψω σωστά το ερώτημα Update σε vba.

Μπορείτε να με βοηθήσετε;

sakis297 08-07-20 15:45

Έχω κάνει λάθος στον τίτλο του θέματός μου. Δε θέλω ερώτημα Update, αλλά ερώτημα προσάρτησης.

Το πεδίο ΑΥΞΩΝ δε χρειάζεται να προσθέσω στο ερώτημα καθώς είναι τύπου αυτόματης αρίθμησης.

Έτσι έφτιαξα το παρακάτω ερώτημα

INSERT INTO ΠΡΟΠΟΝΗΣΕΙΣ ( ΠΕΛΑΤΗΣ, ΣΥΜΦΩΝΙΑ, ΗΜΕΡΟΜΗΝΙΑ )
SELECT [Forms].[ΕΛΕΓΧΟΣ_ΔΙΑΘΕΣΙΜΟΤΗΤΑΣ].[ΠΕΛΑΤΗΣ] AS Eκφρ1, [Forms].[ΕΛΕΓΧΟΣ_ΔΙΑΘΕΣΙΜΟΤΗΤΑΣ].[ΣΥΜΦΩΝΙΑ] AS Eκφρ2, Date() AS Eκφρ3;

και το πρόσθεσα σε Μακροεντολή τύπου "άνοιγμα ερωτήματος". Το ίδιο έκανα με Μακροεντολή τύπου "Εκτέλεση κώδικα Sql". Δοκίμασα τις μακροεντολές στο κλικ του κουμπιού, αλλά δε συμβαίνει κάτι.

Η επόμενη σκέψη μου είναι ο κώδικας σε VBA, αλλά οι γνώσεις μου είναι περιορισμένες.

vraxnakisg 08-07-20 16:42

1 Συνημμένο(α)
Καλησπέρα Σάκη,

Δες μια πρόταση,

Ευχαριστώ.

sakis297 08-07-20 17:09

Γιώργο, κατ' αρχάς σ' ευχαριστώ πολύ για την ανταπόκριση.
Το πεδίο ΗΜΕΡΟΜΗΝΙΑ στον πίνακα ΠΡΟΠΟΝΗΣΕΙΣ απατείται.
Οπότε δοκίμασα τον παρακάτω κώδικα, αλλά δε συμβαίνει κάτι.

DoCmd.SetWarnings False
DoCmd.RunSQL "INSERT INTO [ΠΡΟΠΟΝΗΣΕΙΣ] ([ΠΕΛΑΤΗΣ],[ΣΥΜΦΩΝΙΑ], [ΗΜΕΡΟΜΗΝΙΑ]) VALUES ('" & Me.ΚΩΔ_ΠΕΛ & "','" & Me.ΣΥΜΦΩΝΙΑ& "', Date())"
DoCmd.SetWarnings True

Επίσης, εγώ είχα δοκιμάσει και τον παρακάτω κι επίσης δε συμβαίνει κάτι.
Dim StrSQL As String
StrSQL = "INSERT INTO ΠΡΟΠΟΝΗΣΕΙΣ ( ΠΕΛΑΤΗΣ, ΣΥΜΦΩΝΙΑ, ΗΜΕΡΟΜΗΝΙΑ)" & _
"SELECT [Forms].[ΕΛΕΓΧΟΣ_ΔΙΑΘΕΣΙΜΟΤΗΤΑΣ].[ΚΩΔ_ΠΕΛ] AS Eκφρ1, [Forms].[ΕΛΕΓΧΟΣ_ΔΙΑΘΕΣΙΜΟΤΗΤΑΣ].[ΣΥΜΦΩΝΙΑ] AS Eκφρ2, Date() AS Eκφρ3;"
DoCmd.RunSQL StrSQL

PanagiotisNikoletos 08-07-20 19:45

δοκιμασε αυτη την βάση

PanagiotisNikoletos 08-07-20 19:47

1 Συνημμένο(α)
δοκιμασε αυτη την βαση
μπορω να σου την κανω και καλυτερη αν θες ...πιστευω σε καλυπτει... εχω βαλει και αυτοματη μορφοποιηση οταν οι προπονησεις που απομένου ειναι 1 και άλλη οταν ειναι 0... απλα ισως χρειαστεις office 10-13

vraxnakisg 08-07-20 19:49

Καλησπέρα Σάκη,

Στον ΠΡΟΠΟΝΗΣΕΙΣ τα πεδία που πρέπει να εισάγεις τιμές είναι το πεδίο [ΠΕΛΑΤΗΣ] και το πεδίο [ΣΥΜΦΩΝΙΑ]. Το πεδίο [ΑΥΞΩΝ] είναι ορισμένο στην βάση με τύπο δεδομένων «Αυτόματη Αρίθμηση» και το πεδίο [ΗΜΕΡΟΜΗΝΙΑ] είναι ορισμένο να παίρνει αυτόματα την ημερομηνία που δημιουργείτε η εκάστοτε εγγραφή.

Αν πρόσθεσες στο δικό σου αρχείο τον κώδικα που πρόσθεσα εγώ, παρατήρησε ότι δεν εκτελείται η ρουτίνα «Private Sub ΕΙΣΟΔΟΣ ΠΕΛΑΤΗ _Click».
Για το λόγο αυτό πρέπει να διαγράψεις το κουμπί ΕΙΣΟΔΟΣ ΠΕΛΑΤΗ από την φόρμα σου και να προσθέσεις ένα νέο κουμπί και στο συμβάν «Με το κλικ» να προσθέσεις τον κώδικα:

DoCmd.SetWarnings False
DoCmd.RunSQL "INSERT INTO [ΠΡΟΠΟΝΗΣΕΙΣ] ([ΠΕΛΑΤΗΣ],[ΣΥΜΦΩΝΙΑ]) VALUES ('" & Me.ΚΩΔ_ΠΕΛ & "','" & Me.ΣΥΜΦΩΝΙΑ & "')"
DoCmd.SetWarnings True

Ακόμα στο «Form_Load» της φόρμας «ΕΛΕΓΧΟΣ_ΔΙΑΘΕΣΙΜΟΤΗΤΑΣ» πρόσεξε γιατί έχεις μια εντολή «Me.ΕΙΣΟΔΟΣ_ΠΕΛΑΤΗ.Visible = True» θα πρέπει να την αλλάξει με το όνομα του νέου κουμπιού.

Καλό θα ήταν τα ονόματα των πεδίων των πινάκων και τα ονόματα των αντικειμένων (φόρμες, πεδία στις φόρμες, ερωτήματα κ.λ.π) να είναι με λατινικούς χαρακτήρες.

Ευχαριστώ.

sakis297 09-07-20 08:30

Παιδιά, σας ευχαριστώ πάρα πάρα πολύ και τους δύο!!!
Τα πράγματα άρχισαν να δουλεύουν, όταν έβαλα στη φόρμα ένα κουμπί από την Access 2003. Αρχικά είχα ένα κουμπί εναλλαγής από νεότερη έκδοση της Access.


Η ώρα είναι 11:42.

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


Search Engine Optimization by vBSEO 3.3.2