Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια! |
| Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
#1
| |||
| |||
Πρόβλημα ενημέρωσης πινάκων και διαγραφή ανενεργών εγγραφών πίνακος
Καλημέρα και πάλι στην παρέα του φορούμ με το. πρόβλημα που αντιμετωπίζω. Ξαναστέλνω το μηνυμά μου και δείγμα της βάσης μου γιατί είδα ότι το θέμα είναι κλειστό και δεν δεχεται απαντήσεις.Μήπως εχω κάνει κάποιο λάθος στο ανέβασμα η δεν είναι αποδεκτό. Εχω προχωρήσει την βάση μου απο την προηγούμενη φορά που είχα ζητήσει την βοήθεια του φορούμ. Πρόσθεσα τις εξής φόρμες, kinisisPerati ,ΗμερομηνιαΤαμείου,ΤαμείοΗ μέρας. Λίγα λόγια για την διαδικασία: Αφού καταχωρίσω τον πελάτη πάω μετα στην φόρμα κίνησης να τακτοποιήσω το οικονομικό.Εκεί εχω προσθέσει και μιά δευτερεύουσα φόρμα που εχει 2 επιλογές.ΕΝΑΝΤΙ & ΕΞΩΦΛΗΣΗ. ΕΝΑΝΤΙ πληκτρολογώ για προκαταβολές και ΕΞΩΦΛΗΣΗ πληκτρολογώ το ποσό την στιγμή που με πληρώνει ο πελάτης και βάζω το ποσό να είναι ίδιο με το τελικό ποσό.Τότε μηδενίζεται το ποσό σημαίνει ότι ό πελάτης δεν χρωστάει.Επόμενη κίνηση τσεκάρω το checkBox(Εώφληση) για να μήν εμφανίζεται ξανά η εγγραφή στη φόρμα μέχρι εδώ τα πάω καλά καλά. Τώρα το πρόβλημα είναι. Πάτώντας την φόρμα ημερομηνίαΤαμείου πληκτρολογώ την ημερομηνία που θέλω να κάνω ταμείο και μετά το enter ,με πάει στη φόρμα ΤαμείοΗμέρας, απο εκεί πατώντας εκτύπωση θέλω να κάνει εκτύπωση την έκθεση αλλά και να ενημερώνει τους πίνακες ΠελάτεςΜεταβCars το πεδίο ΠοσόΠληρωμών kαι τον πίνακα ΠληρωμέςΠελατών το πεδίο ΠοσόΠληρωμής. Επίσης αφού γίνει η ενημέρωση σβήσιμο τω ανενργών εγγραφών απο τον Πίνακα ΠληρωμέςΠελατών. Εχω γράψει τον κώδικα αλλά δεν ξέρω κάπου μου χτυπάει. Στέλνω την βάση.Μήπως γνωρίζει κάποιος φίλος να με βοηθήσει Ευχαριστώ Αλέξανδρος |
#2
| |||
| |||
Γεια σου alex. Τι εννοείς με κάπου σου χτυπάει; |
#3
| |||
| |||
καλησπε Ανδρέα Οταν πατάω το κουμπί εντολής για να κάνω εκτύπωση της φόρμας ΤαμείοΗμέρας μου βγάζει σφάλμα .Αυτό θέλω να πώ. Αλεχ |
#4
| |||
| |||
Γεια σου alex, Για να απαντήσω στο πρόβλημά σου , δημιούργησα αντίγραφο του DB3.mdb και το ονόμασα DB3_Edit.mdb για τυχόν αλλαγές που θα έκανα στο debugging. Το αρχείο DB3_Edit.mdb το άνοιξα με το MS Office 2007 EN. Η φόρμα που δημιουργούσε σε μένα το πρόβλημα ήταν «ΤαμείοΗμέρας» όταν πάτησα τα κουμπιά «Εκτύπωση» και «Κλείσιμο». Στον κώδικα που δραστηριοποιείται όταν πατάω «Εκτύπωση» (event handler), άλλαξα τη σειρά από Dim db As Database, tbl1 As Recordset, tbl2 As Recordset σε Dim db As Database, tbl1 As DAO.Recordset, tbl2 As DAO.Recordset. Φαίνεται πως με “recordset” το MS Access καταλαβαίνει ADODB.Recordset και εκεί δεν υπάρχει το recordset.Edit. Η διαφορά μεταξύ Data Access Objects (DAO) και Active Data Objects είναι ότι το DAO χρησιμοποιεί το Object Database Connectivity (ODBC), πιο παλιό, ειδικό για βάσεις δεδομένων και πιο σταθερό, ενώ το ADO χρησιμοποιεί το OLEDB το οποίο έχει σχέση με το Component Object Model (COM), και είναι πιο σύγχρονο , δηλαδή όχι μόνο για βάσεις δεδομένων. Στη συνέχεια μετέθεσα τον κώδικα του Form_Unload στο CmdClose_Click, ακριβώς πριν από το DoCmd.Close. To Private Sub Form_Unload το έσβησα. Ο λόγος που το έσβησα είναι ότι μάλλον δε έχει νόημα να χρησιμποιείς recordsets όταν η φόρμα έχει κλείσει. Μπορεί να τη βλέπεις στο γραφικό περιβάλλον (UI), αλλά αυτή έχει κλείσει. Αυτό δεν ισχύει όταν προσπαθήσεις το ίδιο με το που πατάς το κουμπί «Κλείσιμο», διότι η φόρμα είναι ανοιχτή και σε ενεργό κατάσταση. Για το χρήστη το αποτέλεσμα είναι το ίδιο, διότι δεν αλλάζει η συμπεριφορά στη φόρμα. Το δοκίμασα και η φόρμα δουλεύει όπως θα έπρεπε. Αν συνεχίσουν να υπάρχουν προβλήματα, μη διστάσεις να ρωτήσεις! |
#5
| |||
| |||
Καλησπέρα Ανδρέα Καταρχήν ευχαριστώ για τον χρόνο που διέθεσες για το πρόβλημά μου.Το βράδυ θα το κοιτάξω με λεπτομέρεια και βλέποντας ξαναρωτάω. αν δεν δουλέψει.Και πάλι σευχαριστώ. Αλέξανδρος |
#6
| |||
| |||
Kαλημέρα Ανδρέα Εκανα την διόρθωση εκτυπώνει την έκθεση και βγάζει το εξής μήνυμα Run-time error '3265' Tο στοιχείο δεν βρέθηκε στην συλλογή Πατώντας Debug μου κιτρινίζει την εξήςγραμμή του κώδικα If tbl2![Εξώφληση] = -1 And tbl1![ΠελάτηςID] = tbl2![ΠελάτηςID] And tbl1![ΗμερΠληρωμής] >= tbl2![ΗμερΕναρξης] And tbl1![ΗμερΕναρξης] <= tbl2![ΗμερΛήξης] Then αλλά δεν ενημερώνει τον πίνακα ΠελάτεςΜεταβCars στο πεδίο ΠοσόΠληρωμών Αλλά ούτε στον πίνακα ΠληρωμέςΠελατών διαγράφονται οι εγγραφές πατώντας την εντολή εκτύπωση. Στο δικό σου pc τους ενημερώνει και μετα διαγράφει τις εγγραφές στο πίνακα ΠληρωμέςΠελατών; Σου βγάζει αυτό το μήνυμα; Λογικά θα έπρεπε να ενημερώνονται και οι πίνακες και να διαγράφονται οι εγγραφές αφού ο κώδικας αυτό λέει. Πάντως κάνοντας την αποσφαλμάτωση της βάσης δεν δείχνει ότι εχει σφάλμα.Αλλά δεν αφήνει να ολοκληρωθει η διαδικασία.Εκτυπώνει αλλά βγάζει μύνημα. Αλεχ |
#7
| |||
| |||
Καλημέρα Αλέξανδρε, ας το προσπαθήσουμε λιγάκι και είμαι σίγουρος πως θα τα καταφέρουμε. Πιο πάνω ορίζεις: Set tbl1 = db.OpenRecordset("ΠληρωμέςΠελατών") Set tbl2 = db.OpenRecordset("ΠελάτεςΜεταβCars") Τώρα δες προσεκτικά If tbl2![Εξώφληση] = -1 And tbl1![ΠελάτηςID] = tbl2![ΠελάτηςID] And tbl1![ΗμερΠληρωμής] >= tbl2![ΗμερΕναρξης] And tbl1![ΗμερΕναρξης] <= tbl2![ΗμερΛήξης] Then και πες μου που βρίσκεται η στήλη [ΗμερΕναρξης] στον πίνακα [ΠληρωμέςΠελατών], διότι΄το αντίγραφο που έχω εγώ δεν την έχει. Αν δε διορθωθεί αυτό, δεν έχει νόημα να ψάχνουμε παρακάτω. Φιλικά Ανδρέας |
#8
| |||
| |||
Ανδρέα Το είδα γιατί αφήνοντας το ποντίκι πάνω στην ΗμερΕναρξης δείχνει που είναι το πρόβλημα Τελικά δεν υπάρχει στο πίνακα ΠληρωμέςΠελατών. Μπορώ να προτείνω κάτι άλλο.Η ΗμερΕναρξης πρέπει να υπάρχει.Η ημερΛήξης δεν νομίζω ότι πρέπει να υπάρχει διότι υποτίθετε ότι προπληρώνεσε για μια ασφάλεια και δεν περιμένεις να λήξη μήπως πρέπει να το κάνω κάπως με διαφορετικό τρόπο η να προσθέσω στο ΠίνακαΠληρωμών το πεδίο ΗμερΕναρξης;Πες μου τι κίνηση να κάνω. Φιλικά αλεχ |
#9
| |||
| |||
Ανδρέα Το βρήκα δεν είναι ΗμερΕναρξης είναι ΗμερΠληρωμής Λάθοςςςςςςςςςςςςςς Αλεχ |
#10
| |||
| |||
Φίλε Ανδρέα Ενα μεγάλο ευχαριστώ γιατί μου εδωσες τα φώτα για την επίλυση του πρόβλήματος.Τελικά όταν παλεύεις να διορθώσεις κάτι κουράζεσε και δεν εχεις ξεκάθαρο μυαλό.Και εμπειρία βέβαια.Σε ευχαριστώ Φιλικά Αλέξανδρος |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
Παρόμοια Θέματα | ||||
Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
[ Πίνακες ] Διαγραφή εγγραφών πίνακα υπό όρους | dimitrisp | Access - Ερωτήσεις / Απαντήσεις | 5 | 12-11-16 14:58 |
Αυτόματη διαγραφή εγγραφών Πίνακα | dimitrisp | Access - Ερωτήσεις / Απαντήσεις | 3 | 10-04-15 00:50 |
[ Πίνακες ] Σχέσεις Πινάκων - Πρόβλημα | cybervit | Access - Ερωτήσεις / Απαντήσεις | 2 | 02-03-13 18:54 |
Πρόβλημα ενημέρωσης πίνακων και διαγραφή ανενεργών εγγράφων πίνακος | alex | Access - Ερωτήσεις / Απαντήσεις | 0 | 06-12-10 11:49 |
Η ώρα είναι 07:42.