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

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

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

 

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

Καλημέρα σε όλους τους φίλους του φορόύμ.

Αντιμετωπίζω πρόβλημα με
το ερώτημα προσάρτησης q_ΕΜΗΜΕΡΩΣΗ_ΙΣΤΟΡΙΚΟΥ_ΚΙΝΗΣ ΕΩΝ_ΠΕΛΑΤΗ_ALL.Αφού ήδη εχω προσαρτήσει ενα πελάτη μία φορά στην επόμενη προσάρτηση με το ίδιο ονομα δεν την δέχεται..Δηλαδή εάν ένας πελάτης έλθει μια φορά τον περνάει στον πίνακα t_ΙΣΤΟΡΙΚΟ_ΚΙΝΗΣΕΩΝ_ΠΕΛΑΤΗ.
Το ίδιο όνομα δεν το δέχεται δεύτερη φορά.Μόνο με νέο πελάτη κάνει προσάρτηση.Τι πρέπει να κάνω ώστε να εμφανίζονται όλες οι προσαρτήσεις ;Το πρόβλημα φαίνεται να είναι σε διπλοεγγραφές.
Εάν γνωρίζει κάποιο μέλος ή ο φίλος Δημήτρης Dimagg που είχε ασχοληθεί και εχει το χρόνο να μου πει τι πρέπει να κάνω.
Ευχαριστώ εκ των προτέρων

Φιλικά/Αλέξανδρος
Συνημμένα Αρχεία
Τύπος Αρχείου: zip βδ1_ok3.zip (211,6 KB, 12 εμφανίσεις)
Απάντηση με παράθεση
  #2  
Παλιά 05-09-11, 12:20
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.011
Προεπιλογή

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

Προσπαθείς να προσαρτήσεις δεδομένα στον πίνακα t_ΙΣΤΟΡΙΚΟ_ΚΙΝΗΣΕΩΝ_ΠΕΛΑΤΗ όπου συμπεριλαμβάνεται και το πεδίο ID.

Δεν γίνεται το πεδίο ID να πάρει την ίδια τιμή 2 φορές όσο αυτό έχει την ιδιότητα "Πρωτεύον κλειδί".

Ή λοιπόν αφαιρείς το πρωτεύον κλειδί από το πεδίο ID του πίνακα (δεν το συνιστώ)
ή τροποποιείς το ερώτημα προσάρτησης έτσι που να μην συμπεριλαμβάνεται το πεδίο ID
(
σε προβολή επεξεργασίας του ερωτήματος εισάγεις όλα τα πεδία εκτός το ID στον πίνακα).

Αν επιλέξεις τη δεύτερη περίπτωση, θα πρέπει στον πίνακα
t_ΙΣΤΟΡΙΚΟ_ΚΙΝΗΣΕΩΝ_ΠΕΛΑΤΗ
να μετατρέψεις το πεδίο ID από αριθμό σε αυτόματη αρίθμηση.

Καλή συνέχεια!

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών

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

Καλησπέρα Τάσο

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

Φιλικά/Αλέξανδρος
Απάντηση με παράθεση
  #4  
Παλιά 05-09-11, 16:07
Όνομα: Δημήτρης
Έκδοση λογισμικού Office: Ms-Office 2003
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 21-07-2010
Μηνύματα: 98
Προεπιλογή

Γειά σας
Αλέξανδρε το 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));
δηλαδή να σου εισάγει τα ID του ΚινήσειςΠελάτηQry που παίρνει από τον πίνακα TblRoomsLet και δεν έχουν μπει στον πίνακα t_ΙΣΤΟΡΙΚΟ_ΚΙΝΗΣΕΩΝ_ΠΕΛΑΤΗ

Φιλικά Δημήτρης

Τελευταία επεξεργασία από το χρήστη Tasos : 05-09-11 στις 16:45. Αιτία: Τοποθέτηση κώδικα SQL σε πλαίσιο
Απάντηση με παράθεση
  #5  
Παλιά 05-09-11, 17:27
Όνομα: Δημήτρης
Έκδοση λογισμικού Office: Ms-Office 2003
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 21-07-2010
Μηνύματα: 98
Προεπιλογή

Αλέξανδρε θέλεις και δύο ερωτήματα UPDATE επίσης για τυχόν αλλαγές που γίνονται

Δες συνημμένο

Φιλικά Δημήτρης
Συνημμένα Αρχεία
Τύπος Αρχείου: zip βδ1_ok21.zip (157,1 KB, 30 εμφανίσεις)
Απάντηση με παράθεση
  #6  
Παλιά 05-09-11, 19:50
Όνομα: Αλέξανδρος
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2013
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 22-01-2010
Περιοχή: ΑΡΤΑ
Μηνύματα: 521
Προεπιλογή

Δημήτρη καλησπέρα
Τα έκανα έβαλα τον κώδικα αυτό που μου έδωσες και δουλεύουν όλα σωστά .Αρα δεν το πειράζω το κλειδί απο τον πίνακα tblRoomsLet. που αναφέρεις στο προηγούμενο μηνυμά σου εφόσον δεν ενοχλεί.Να σε ρωτήσω κάτι άλλο. Πως μπορώ να ενημερώσω τον πίνακα t_ΙΣΤΟΡΙΚΟ_ΚΙΝΗΣΕΩΝ_ΠΕΛΑΤΗ με το ποσό Πληρωμών και το ποσό παροχών που παραμένει πάντα κενο τι προτείνεις να κάνω;
Ή μάλλον πώς μπορώ να μεταφέρω τα δεδομένα απο τον πίνακα ΤblRoomsLet στο πίνακα t_ΙΣΤΟΡΙΚΟ_ΚΙΝΗΣΕΩΝ_ΠΕΛΑΤΗ .;
Βασικά τον πίνακα TblRoomsLet τον ενημερώνω με κώδικα απο την φόρμα Ταμείο ημέρας.

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

Φιλικά/Αλέξανδρος
Απάντηση με παράθεση
  #7  
Παλιά 05-09-11, 20:43
Όνομα: Δημήτρης
Έκδοση λογισμικού Office: Ms-Office 2003
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 21-07-2010
Μηνύματα: 98
Προεπιλογή

Αλέξανδρε καλησπέρα
Βασικά η βάση σου θέλει καλύτερο σχεδιασμό θα έλεγα από την αρχή.
Στο διαταυτα τώρα
Στο ερώτημα ΚινήσειςΠελάτηQry αν στο "Εξώφλησε" αντί 0 βάλεις -1 και εκετελέσεις το ερώτημα q_ΕΜΗΜΕΡΩΣΗ_ΙΣΤΟΡΙΚΟΥ_ΚΙΝΗΣ ΕΩΝ_ΠΕΛΑΤΗ_ALL θα κάνει προσάρτηση, όσες εγγραφές υπάρχουν στον πίνακα TblRoomsLet αλλά δεν υπάρχουν στον πίνακα t_ΙΣΤΟΡΙΚΟ_ΚΙΝΗΣΕΩΝ_ΠΕΛΑΤΗ, στον πίνακα t_ΙΣΤΟΡΙΚΟ_ΚΙΝΗΣΕΩΝ_ΠΕΛΑΤΗ

μετά στο ερώτημα ΚινήσειςΠελάτηQry βάζεις στο "Εξώφλησε" αντί -1 το 0 και συνεχίζεις κανονικά
Διαφορετικά κάνεις ένα δευτερο ερώτημα προσάρτησης ή κάνεις το υπάρχον παραμετρικο ή με φίλτρο από τη φόρμα


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

Kαλησπέρα Δημήτρη

Σε ευχαριστώ πάντως για τις πληροφορίες.Όντως η βάση αυτή δεν έχει καλό σχεδιασμό.Διότι καθε λίγο και λιγάκι ανανεώνεται και αλλάζει η δομή.Οκ θα τα κοιτάξω πιστεύω θα τα καταφέρω΄.
Να σαι καλά καλό βράδυ.

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

Δημήτρη καλημέρα

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

Δημήτρη καλημέρα

Επειδή φαίνεται να παρουσιαστηκε κάποιο πρόβλημα με τον κώδικα που έστειλα κατευθείαν σου ξαναστέλνω σε συνημένο τον κώδικα στη φόρμα ΤαμείοΗμέρας.
Τελικά με κώδικα ενημερώνω τον πίνακα T_ΙΣΤΟΡΙΚΟ_ΚΙΝΗΣΕΩΝ_ΠΕΛΑΤΗ με την εξώφληση του πελάτη κανω ταμείο ημέρας και ενημερώνεται ο πίνακας t_ΙΣΤΟΡΙΚΟ_ΚΙΝΗΣΕΩΝ_ΠΕΛΑΤΗ καθώς και ο πίνακας tblRoomsLet με τον παλιό κώδικα όπως ήταν.

Φιλικα/Αλέξανδρος
Συνημμένα Αρχεία
Τύπος Αρχείου: zip 07092011.zip (15,6 KB, 31 εμφανίσεις)
Απάντηση με παράθεση
Απάντηση στο θέμα


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

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


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

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