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

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

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

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #1  
Παλιά 07-12-10, 09:44
Όνομα: Αλέξανδρος
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 22-01-2010
Περιοχή: ΑΡΤΑ
Μηνύματα: 521
Προεπιλογή Πρόβλημα ενημέρωσης πινάκων και διαγραφή ανενεργών εγγραφών πίνακος

Καλημέρα και πάλι στην παρέα του φορούμ με το. πρόβλημα που αντιμετωπίζω.

Ξαναστέλνω το μηνυμά μου και δείγμα της βάσης μου γιατί είδα ότι το θέμα είναι κλειστό και δεν δεχεται απαντήσεις.Μήπως εχω κάνει κάποιο λάθος στο ανέβασμα η δεν είναι αποδεκτό.
Εχω προχωρήσει την βάση μου απο την προηγούμενη φορά που είχα ζητήσει την βοήθεια του φορούμ.
Πρόσθεσα τις εξής φόρμες, kinisisPerati ,ΗμερομηνιαΤαμείου,ΤαμείοΗ μέρας.
Λίγα λόγια για την διαδικασία:
Αφού καταχωρίσω τον πελάτη πάω μετα στην φόρμα κίνησης να τακτοποιήσω το οικονομικό.Εκεί εχω προσθέσει και μιά δευτερεύουσα φόρμα που εχει 2 επιλογές.ΕΝΑΝΤΙ & ΕΞΩΦΛΗΣΗ.
ΕΝΑΝΤΙ πληκτρολογώ για προκαταβολές και ΕΞΩΦΛΗΣΗ πληκτρολογώ το ποσό την στιγμή που με πληρώνει ο πελάτης και βάζω το ποσό να είναι ίδιο με το τελικό ποσό.Τότε μηδενίζεται το ποσό σημαίνει ότι ό πελάτης δεν χρωστάει.Επόμενη κίνηση τσεκάρω το checkBox(Εώφληση) για να μήν εμφανίζεται ξανά η εγγραφή στη φόρμα μέχρι εδώ τα πάω καλά καλά.
Τώρα το πρόβλημα είναι.
Πάτώντας την φόρμα ημερομηνίαΤαμείου πληκτρολογώ την ημερομηνία που θέλω να κάνω ταμείο και μετά το enter ,με πάει στη φόρμα ΤαμείοΗμέρας, απο εκεί πατώντας εκτύπωση θέλω να κάνει εκτύπωση την έκθεση αλλά και να ενημερώνει τους πίνακες ΠελάτεςΜεταβCars το πεδίο ΠοσόΠληρωμών kαι τον πίνακα ΠληρωμέςΠελατών το πεδίο ΠοσόΠληρωμής.
Επίσης αφού γίνει η ενημέρωση σβήσιμο τω ανενργών εγγραφών απο τον Πίνακα ΠληρωμέςΠελατών.
Εχω γράψει τον κώδικα αλλά δεν ξέρω κάπου μου χτυπάει.
Στέλνω την βάση.Μήπως γνωρίζει κάποιος φίλος να με βοηθήσει

Ευχαριστώ
Αλέξανδρος
Συνημμένα Αρχεία
Τύπος Αρχείου: zip DB3.zip (698,7 KB, 26 εμφανίσεις)
Απάντηση με παράθεση
  #2  
Παλιά 07-12-10, 13:00
Όνομα: Ανδρέας
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 06-12-2010
Περιοχή: Θεσσαλονίκη
Μηνύματα: 17
Προεπιλογή

Γεια σου alex.

Τι εννοείς με κάπου σου χτυπάει;
Απάντηση με παράθεση
  #3  
Παλιά 07-12-10, 13:41
Όνομα: Αλέξανδρος
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 22-01-2010
Περιοχή: ΑΡΤΑ
Μηνύματα: 521
Προεπιλογή

καλησπε Ανδρέα

Οταν πατάω το κουμπί εντολής για να κάνω εκτύπωση της φόρμας ΤαμείοΗμέρας μου βγάζει σφάλμα .Αυτό θέλω να πώ.
Αλεχ
Απάντηση με παράθεση
  #4  
Παλιά 07-12-10, 15:41
Όνομα: Ανδρέας
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 06-12-2010
Περιοχή: Θεσσαλονίκη
Μηνύματα: 17
Προεπιλογή

Γεια σου 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  
Παλιά 07-12-10, 21:41
Όνομα: Αλέξανδρος
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 22-01-2010
Περιοχή: ΑΡΤΑ
Μηνύματα: 521
Προεπιλογή

Καλησπέρα Ανδρέα

Καταρχήν ευχαριστώ για τον χρόνο που διέθεσες για το πρόβλημά μου.Το βράδυ θα το κοιτάξω με λεπτομέρεια και βλέποντας ξαναρωτάω. αν δεν δουλέψει.Και πάλι σευχαριστώ.

Αλέξανδρος
Απάντηση με παράθεση
  #6  
Παλιά 08-12-10, 09:25
Όνομα: Αλέξανδρος
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 22-01-2010
Περιοχή: ΑΡΤΑ
Μηνύματα: 521
Προεπιλογή

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  
Παλιά 08-12-10, 11:28
Όνομα: Ανδρέας
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 06-12-2010
Περιοχή: Θεσσαλονίκη
Μηνύματα: 17
Προεπιλογή

Καλημέρα Αλέξανδρε,

ας το προσπαθήσουμε λιγάκι και είμαι σίγουρος πως θα τα καταφέρουμε.
Πιο πάνω ορίζεις:
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  
Παλιά 08-12-10, 11:54
Όνομα: Αλέξανδρος
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 22-01-2010
Περιοχή: ΑΡΤΑ
Μηνύματα: 521
Προεπιλογή

Ανδρέα
Το είδα γιατί αφήνοντας το ποντίκι πάνω στην ΗμερΕναρξης δείχνει που είναι το πρόβλημα Τελικά δεν υπάρχει στο πίνακα ΠληρωμέςΠελατών. Μπορώ να προτείνω κάτι άλλο.Η ΗμερΕναρξης πρέπει να υπάρχει.Η ημερΛήξης δεν νομίζω ότι πρέπει να υπάρχει διότι υποτίθετε ότι προπληρώνεσε για μια ασφάλεια και δεν περιμένεις να λήξη μήπως πρέπει να το κάνω κάπως με διαφορετικό τρόπο η να προσθέσω στο ΠίνακαΠληρωμών το πεδίο ΗμερΕναρξης;Πες μου τι κίνηση να κάνω.

Φιλικά αλεχ
Απάντηση με παράθεση
  #9  
Παλιά 08-12-10, 12:01
Όνομα: Αλέξανδρος
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 22-01-2010
Περιοχή: ΑΡΤΑ
Μηνύματα: 521
Προεπιλογή

Ανδρέα
Το βρήκα δεν είναι ΗμερΕναρξης είναι ΗμερΠληρωμής Λάθοςςςςςςςςςςςςςς
Αλεχ
Απάντηση με παράθεση
  #10  
Παλιά 08-12-10, 12:25
Όνομα: Αλέξανδρος
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 22-01-2010
Περιοχή: ΑΡΤΑ
Μηνύματα: 521
Προεπιλογή

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


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

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


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

Θέμα Δημιουργός 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.