Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια! |
| Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
#1
| |||
| |||
Προβλημα με ερώτημα προσάρτησης
Καλημέρα σε όλους τους φίλους του φορόύμ. Αντιμετωπίζω πρόβλημα με το ερώτημα προσάρτησης q_ΕΜΗΜΕΡΩΣΗ_ΙΣΤΟΡΙΚΟΥ_ΚΙΝΗΣ ΕΩΝ_ΠΕΛΑΤΗ_ALL.Αφού ήδη εχω προσαρτήσει ενα πελάτη μία φορά στην επόμενη προσάρτηση με το ίδιο ονομα δεν την δέχεται..Δηλαδή εάν ένας πελάτης έλθει μια φορά τον περνάει στον πίνακα t_ΙΣΤΟΡΙΚΟ_ΚΙΝΗΣΕΩΝ_ΠΕΛΑΤΗ. Το ίδιο όνομα δεν το δέχεται δεύτερη φορά.Μόνο με νέο πελάτη κάνει προσάρτηση.Τι πρέπει να κάνω ώστε να εμφανίζονται όλες οι προσαρτήσεις ;Το πρόβλημα φαίνεται να είναι σε διπλοεγγραφές. Εάν γνωρίζει κάποιο μέλος ή ο φίλος Δημήτρης Dimagg που είχε ασχοληθεί και εχει το χρόνο να μου πει τι πρέπει να κάνω. Ευχαριστώ εκ των προτέρων Φιλικά/Αλέξανδρος |
#2
| ||||
| ||||
Καλημέρα Αλέξανδρε! Προσπαθείς να προσαρτήσεις δεδομένα στον πίνακα t_ΙΣΤΟΡΙΚΟ_ΚΙΝΗΣΕΩΝ_ΠΕΛΑΤΗ όπου συμπεριλαμβάνεται και το πεδίο ID. Δεν γίνεται το πεδίο ID να πάρει την ίδια τιμή 2 φορές όσο αυτό έχει την ιδιότητα "Πρωτεύον κλειδί". Ή λοιπόν αφαιρείς το πρωτεύον κλειδί από το πεδίο ID του πίνακα (δεν το συνιστώ) ή τροποποιείς το ερώτημα προσάρτησης έτσι που να μην συμπεριλαμβάνεται το πεδίο ID (σε προβολή επεξεργασίας του ερωτήματος εισάγεις όλα τα πεδία εκτός το ID στον πίνακα). Αν επιλέξεις τη δεύτερη περίπτωση, θα πρέπει στον πίνακα t_ΙΣΤΟΡΙΚΟ_ΚΙΝΗΣΕΩΝ_ΠΕΛΑΤΗ να μετατρέψεις το πεδίο ID από αριθμό σε αυτόματη αρίθμηση. Καλή συνέχεια! Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών Τελευταία επεξεργασία από το χρήστη Tasos : 05-09-11 στις 13:09. |
#3
| |||
| |||
Καλησπέρα Τάσο Ευχαριστώ για την βοήθεια θα το κάνω τώρα έτσι όπως μου έγραψες και θα ενημερώσω.Ετσι και αλλιώς ο πίνακας αυτός είναι να αντλώ δεδομένα και πιστεύω ότι δεν επιρεάζει την βάση σε κάτι άλλο. Φιλικά/Αλέξανδρος |
#4
| |||
| |||
Γειά σας Αλέξανδρε το ID του πίνακα t_ΙΣΤΟΡΙΚΟ_ΚΙΝΗΣΕΩΝ_ΠΕΛΑΤΗ είναι το ID του πίνακα TblRoomsLet (στον οποίο δεν έχεις καλά το λειδί γιατί δυο τα κλειδιά και το ένα αυτόματη αρίθμηση θέλει τσεκάρισμα ο σχεδιασμός) και έχεις στο ερώτημα ΚινήσειςΠελάτηQry Αφού ο πίνακας t_ΙΣΤΟΡΙΚΟ_ΚΙΝΗΣΕΩΝ_ΠΕΛΑΤΗ είναι απλά αντίγραφο του ερωτήματος ΚινήσειςΠελάτηQry Στο διαταυτα τώρα στο ερώτημα q_ΕΜΗΜΕΡΩΣΗ_ΙΣΤΟΡΙΚΟΥ_ΚΙΝΗΣ ΕΩΝ_ΠΕΛΑΤΗ_ALL διορθωσέ το σε Κώδικας: INSERT INTO t_ΙΣΤΟΡΙΚΟ_ΚΙΝΗΣΕΩΝ_ΠΕΛΑΤΗ SELECT ΚινήσειςΠελάτηQry.* FROM t_ΙΣΤΟΡΙΚΟ_ΚΙΝΗΣΕΩΝ_ΠΕΛΑΤΗ RIGHT JOIN ΚινήσειςΠελάτηQry ON t_ΙΣΤΟΡΙΚΟ_ΚΙΝΗΣΕΩΝ_ΠΕΛΑΤΗ.ID = ΚινήσειςΠελάτηQry.ID WHERE (((t_ΙΣΤΟΡΙΚΟ_ΚΙΝΗΣΕΩΝ_ΠΕΛΑΤΗ.ID) Is Null)); Φιλικά Δημήτρης Τελευταία επεξεργασία από το χρήστη Tasos : 05-09-11 στις 16:45. Αιτία: Τοποθέτηση κώδικα SQL σε πλαίσιο |
#5
| |||
| |||
Αλέξανδρε θέλεις και δύο ερωτήματα UPDATE επίσης για τυχόν αλλαγές που γίνονται Δες συνημμένο Φιλικά Δημήτρης |
#6
| |||
| |||
Δημήτρη καλησπέρα Τα έκανα έβαλα τον κώδικα αυτό που μου έδωσες και δουλεύουν όλα σωστά .Αρα δεν το πειράζω το κλειδί απο τον πίνακα tblRoomsLet. που αναφέρεις στο προηγούμενο μηνυμά σου εφόσον δεν ενοχλεί.Να σε ρωτήσω κάτι άλλο. Πως μπορώ να ενημερώσω τον πίνακα t_ΙΣΤΟΡΙΚΟ_ΚΙΝΗΣΕΩΝ_ΠΕΛΑΤΗ με το ποσό Πληρωμών και το ποσό παροχών που παραμένει πάντα κενο τι προτείνεις να κάνω; Ή μάλλον πώς μπορώ να μεταφέρω τα δεδομένα απο τον πίνακα ΤblRoomsLet στο πίνακα t_ΙΣΤΟΡΙΚΟ_ΚΙΝΗΣΕΩΝ_ΠΕΛΑΤΗ .; Βασικά τον πίνακα TblRoomsLet τον ενημερώνω με κώδικα απο την φόρμα Ταμείο ημέρας. Ευχαριστώ πάντως για την μέχρι τώρα βοηθειά σου καθώς και το Τάσο που είναι παντα πρόθυμος να βοηθήσει όλα τα μέλη. Φιλικά/Αλέξανδρος |
#7
| |||
| |||
Αλέξανδρε καλησπέρα Βασικά η βάση σου θέλει καλύτερο σχεδιασμό θα έλεγα από την αρχή. Στο διαταυτα τώρα Στο ερώτημα ΚινήσειςΠελάτηQry αν στο "Εξώφλησε" αντί 0 βάλεις -1 και εκετελέσεις το ερώτημα q_ΕΜΗΜΕΡΩΣΗ_ΙΣΤΟΡΙΚΟΥ_ΚΙΝΗΣ ΕΩΝ_ΠΕΛΑΤΗ_ALL θα κάνει προσάρτηση, όσες εγγραφές υπάρχουν στον πίνακα TblRoomsLet αλλά δεν υπάρχουν στον πίνακα t_ΙΣΤΟΡΙΚΟ_ΚΙΝΗΣΕΩΝ_ΠΕΛΑΤΗ, στον πίνακα t_ΙΣΤΟΡΙΚΟ_ΚΙΝΗΣΕΩΝ_ΠΕΛΑΤΗ μετά στο ερώτημα ΚινήσειςΠελάτηQry βάζεις στο "Εξώφλησε" αντί -1 το 0 και συνεχίζεις κανονικά Διαφορετικά κάνεις ένα δευτερο ερώτημα προσάρτησης ή κάνεις το υπάρχον παραμετρικο ή με φίλτρο από τη φόρμα Φιλικά Δημήτρης |
#8
| |||
| |||
Kαλησπέρα Δημήτρη Σε ευχαριστώ πάντως για τις πληροφορίες.Όντως η βάση αυτή δεν έχει καλό σχεδιασμό.Διότι καθε λίγο και λιγάκι ανανεώνεται και αλλάζει η δομή.Οκ θα τα κοιτάξω πιστεύω θα τα καταφέρω΄. Να σαι καλά καλό βράδυ. Φιλικά/Αλέξανδρος |
#9
| |||
| |||
Δημήτρη καλημέρα Τελικά με κώδικα ενημερώνω τον πίνακα T_ΙΣΤΟΡΙΚΟ_ΚΙΝΗΣΕΩΝ_ΠΕΛΑΤΗ με την εξώφληση του πελάτη κανω ταμείο ημέρας και ενημερώνεται ο πίνακας t_ΙΣΤΟΡΙΚΟ_ΚΙΝΗΣΕΩΝ_ΠΕΛΑΤΗ καθώς και ο πίνακας tblRoomsLet με τον παλιό κώδικα όπως ήταν. 'ΕΝΗΜΕΡΩΣΗ ΑΡΧΕΙΟΥ t_ΙΣΤΟΡΙΚΟ_ΚΙΝΗΣΕΩΝ_ΠΕΛΑΤΗ με το ΠοσόΠληρωμών Set tbl1 = db.OpenRecordset("ΠληρωμέςΠελατών") Set tbl2 = db.OpenRecordset("t_ΙΣΤΟΡΙΚΟ_ΚΙΝΗΣΕ Ν_ΠΕΛΑΤΗ") Do Until tbl1.EOF tbl2.MoveFirst Do Until tbl2.EOF tbl2.Edit tbl2![ΠοσόΠληρωμών] = tbl2![ΠοσόΠληρωμών] + tbl1![ΠοσόΠληρωμής] tbl2.Update tbl1.Edit tbl1.Update tbl2.MoveNext Loop tbl1.MoveNext Loop tbl1.Close tbl2.Close 'ΕΝΗΜΕΡΩΣΗ ΑΡΧΕΙΟΥ t_ΙΣΤΟΡΙΚΟ_ΠΑΡΟΧΩΝ με το ΠοσόΠαροχών Set tbl1 = db.OpenRecordset("ΠελάτεςΠαροχές query") Set tbl2 = db.OpenRecordset("t_ΙΣΤΟΡΙΚΟ_ΚΙΝΗΣΕ Ν_ΠΕΛΑΤΗ") Do Until tbl1.EOF tbl2.MoveFirst Do Until tbl2.EOF tbl2.Edit tbl2![ΠοσόΠαροχών] = tbl2![ΠοσόΠαροχών] + tbl1![Σύνολο] tbl2.Update tbl1.Edit tbl1.Update tbl2.MoveNext Loop tbl1.MoveNext Loop tbl1.Close tbl2.Close 'ΕΝΗΜΕΡΩΣΗ ΑΡΧΕΙΟΥ (t_ΙΣΤΟΡΙΚΟ_ΚΙΝΗΣΕΩΣ_ΠΕΛΑΤΗ) ΜΕ ΤΟ ΠΟΣΟ ΔΙΑΜΟΝΗΣ Set tbl1 = db.OpenRecordset("ΠληρωμέςΠελατών") Set tbl2 = db.OpenRecordset("t_ΙΣΤΟΡΙΚΟ_ΚΙΝΗΣΕ Σ_ΠΕΛΑΤΗ") Do Until tbl1.EOF tbl2.MoveFirst Do Until tbl2.EOF tbl2.Edit tbl2![ΠοσόΔιαμονής] = tbl2![ΠοσόΠληρωμών] - tbl2![ΠοσόΠαροχών] tbl2.Update tbl1.Edit tbl1.Update tbl2.MoveNext Loop tbl1.MoveNext Loop tbl1.Close tbl2.Close Φιλικά/Αλέξανδρος |
#10
| |||
| |||
Δημήτρη καλημέρα Επειδή φαίνεται να παρουσιαστηκε κάποιο πρόβλημα με τον κώδικα που έστειλα κατευθείαν σου ξαναστέλνω σε συνημένο τον κώδικα στη φόρμα ΤαμείοΗμέρας. Τελικά με κώδικα ενημερώνω τον πίνακα T_ΙΣΤΟΡΙΚΟ_ΚΙΝΗΣΕΩΝ_ΠΕΛΑΤΗ με την εξώφληση του πελάτη κανω ταμείο ημέρας και ενημερώνεται ο πίνακας t_ΙΣΤΟΡΙΚΟ_ΚΙΝΗΣΕΩΝ_ΠΕΛΑΤΗ καθώς και ο πίνακας tblRoomsLet με τον παλιό κώδικα όπως ήταν. Φιλικα/Αλέξανδρος |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
Παρόμοια Θέματα | ||||
Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
[ Ερωτήματα ] Κριτήρια σε ερώτημα προσάρτησης | dimitrisp | Access - Ερωτήσεις / Απαντήσεις | 1 | 23-12-15 15:54 |
[ Ερωτήματα ] Ερώτημα προσάρτησης | teo1976 | Access - Ερωτήσεις / Απαντήσεις | 3 | 27-01-15 14:47 |
Ερώτημα προσάρτησης ή ενημερωσης | teo1976 | Access - Ερωτήσεις / Απαντήσεις | 2 | 06-12-14 21:14 |
Ερώτημα Προσάρτησης | louk14 | Access - Ερωτήσεις / Απαντήσεις | 2 | 10-01-14 16:03 |
Πρόβλημα σε ερώτημα προσάρτησης | alex | Access - Ερωτήσεις / Απαντήσεις | 7 | 12-10-12 15:48 |
Η ώρα είναι 21:25.