| Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια! |
![]() |
| | Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
|
#1
| |||
| |||
|
Γειά σας Στην παραδειγματική βάση που ανέβασα, υπάρχει η φόρμα [frmNextMonth] η οποία αντλεί δεδομένα από το [qryNextMonth]. Στο [qryNextMonth] υπάρχουν κριτήρια προκειμένου να εμφανίζονται εγγραφές του επόμενου μήνα (από τον τρέχοντα). Κάνοντας κλικ στο πεδίο [ID] της φόρμας [frmNextMonth], η τρέχουσα εγγραφή αντιγράφεται σε νέα γραμμή του πίνακα, με κάποιες διαφοροποιήσεις που ορίζονται στον κώδικα, (ο οποίος δημιουργήθηκε με τη βοήθεια μέλους του Forum, το Γιώργο "kapetang"). Η αρχική εγγραφή παραμένει στον πίνακα με μικροαλλαγές. Πώς μπορούμε να πραγματοποιήσουμε μαζική αντιγραφή όλων των εγγραφών που εμφανίζονται στη φόρμα [frmNextMonth], με τους ίδιους όρους και προυποθέσεις που γίνεται η κάθε αντιγραφή ξεχωριστά ; Με άλλα λόγια, αυτό που κάνουμε ξεχωριστά για κάθε μια εγγραφή να γίνεται για όλες μαζί, με μια κίνηση. Σας ευχαριστώ εκ των προτέρων. |
|
#2
| |||
| |||
|
Καλημέρα Δημήτρη, δες μια πρόταση στο συνημμένο. 1) Το ερώτημα [qryNextMothForADD] εμφανίζει τις εγγραφές, όπως ακριβώς θα προστεθούν. Δηλαδή με τις παρακάτω αλλαγές. [IsxisN]=False, [KatastasiN]=”ΑΚΥΡΟ», [EnarxiN]=[LIXI], [ LixiN]=[LIXI]+ μήνες διάρκειας. 2) Το ερώτημα προσάρτησης [qryNextMonthADD] προσθέτει τις παραπάνω εγγραφές στον πίνακα tblA. 3) Το ερώτημα [qryCheckADD] χρησιμεύει στην αποτροπή πολλαπλής προσάρτησης των ίδιων εγγραφών. 4) Η φόρμα [frmNextMonthADD] εμφανίζει τις εγγραφές που θα προστεθούν. Πατώντας το σχετικό κουμπί της ο κώδικας (που εκτελείται) , αν οι εγγραφές δεν έχουν ήδη προσαρτηθεί, τις προσαρτά. Κάποιες σκέψεις για τη σχεδίαση του πίνακα tblA: 1) Το πεδίο [DIARKIA], που εκφράζει χρονικό διάστημα σε μήνες, είναι πιο βολικό να είναι αριθμητικό. 2) Το πεδίο [LIXI] μπορεί να υπολογιστεί από το [ENARXI] και το [DIARKIA] και θα μπορούσε να είναι υπολογιζόμενο (ή να απουσιάζει). 3) Νομίζω επίσης ότι και τα πεδία [ISXIS] και [KATASTASI] δεν είναι άσχετα ([ISXIS]=True ==>[KATASTASI]="ΕΝΕΡΓΟ" και [ISXIS]=False ==> [KATASTASI]="ΑΚΥΡΟ"), θα μπορούσε συνεπώς το [KATASTASI] να είναι υπολογιζόμενο (ή να απουσιάζει). Φιλικά/Γιώργος |
|
#3
| |||
| |||
|
Γειά σας. Γιώργο σε υπερευχαριστώ για την ανεκτίμητη βοήθεια σου. Έκανα ήδη κάποιες δοκιμές και διαπίστωσα ότι είναι ακριβώς αυτό που ήθελα, με δυο διαφορές ως προς το αρχικό ζητούμενο: 1) Η φόρμα [frmNextMonthADD] που εμφανίζει τις εγγραφές που θα προστεθούν, θα ήθελα να εμφανίζει το πεδίο IsxisN= True (αντί false) και το πεδίο KatastasiN= "ΕΝΕΡΓΟ" (αντί ΑΚΥΡΟ). Έκανα σχετική διόρθωση στο ερώτημα [qryNextMonthForADD] και όλα κανονικά. 2) Θα ήθελα, επίσης, οι αρχικές εγγραφές (παλιές) που αντιγράφοναι να αλλάζουν τα πεδία τους ως ακολούθως: α. Το πεδίο [ISXIS] να γίνεται = false και β. Το πεδίο [KATASTASI] να γίνεται = "ΑΚΥΡΟ" Λοιπά πεδία των αρχικών εγγραφών που αντιγράφηκαν να παραμένουν ως έχουν. Θα ήθελα, αν μπορείς, τη βοήθεια σου και σ`αυτό. |
|
#4
| |||
| |||
|
Καλησπέρα Δημήτρη, δες το συνημμένο. 1) Το ερώτημα [qryNextMothForADD] εμφανίζει τις εγγραφές, όπως ακριβώς θα προστεθούν. 2) Το ερώτημα προσάρτησης [qryNextMonthADD] προσθέτει τις παραπάνω εγγραφές στον πίνακα tblA. Πριν από την προσθήκη, ο κώδικας αποθηκεύει τα [IDA] των εγγραφών, στον βοηθητικό πίνακα [tblHLP]. 3) Το ερώτημα [qryUpdateOLD] ενημερώνει, με τη βοήθεια και του πίνακα[ tblHLP], τις παλιές εγγραφές του πίνακα [tblA]. 4) Η φόρμα [frmNextMonthADD] εμφανίζει τις εγγραφές που θα προστεθούν. Πατώντας το σχετικό κουμπί της, ο κώδικας αποθηκεύει τα [IDA] στον πίνακα [tblHLP], προσαρτά τις εγγραφές στον πίνακα [tblA] και τέλος ενημερώνει τις παλιές εγγραφές του. |
|
#5
| |||
| |||
|
Γεια σας Γιώργο, με υπερκάλυψες με την τελευταία πρότασή σου και σ`ευχαριστώ θερμά γι`αυτό. Και τούτο διότι, εκεί που έκανα την κοπιαστική και χρονοβόρα διαδικασία ένα-ένα κλικ προκειμένου να ανανεώσω τις εγγραφές μου για την επόμενη χρονική περίοδο, τώρα με μια κίνηση αντιγράφω όλες τις περιοδικές εγγραφές. Ή πρότασή σου αυτή, κατά τη γνώμη μου, αποτελεί έναν κομψό,απλό και λειτουργικό τρόπο μαζικής αντιγραφής εγγραφών, εύκολα προσαρμόσιμη ανάλογα με τα επιθυμητά δεδομένα και τις παραμέτρους που ενδεχομένως απαιτούνται για οποιονδήποτε χρήστη. Καλή συνέχεια... |
|
#6
| |||
| |||
|
Καλησπέρα Στην προηγούμενη πρότασή μου χρησιμοποιείται ένας βοηθητικός πίνακας και αρκετά ερωτήματα. Σκέφτηκα αν θα μπορούσαμε να τα αποφύγουμε και να πετύχουμε μια λύση μόνο με κώδικα. Μετά από κάποιες δοκιμές κατέληξα στη συνημμένη λύση. Φιλικά/Γιώργος |
|
#7
| |||
| |||
|
Καλησπέρα Γιώργο, είσαι καταπληκτικός!!! Έκανα κι εγώ διάφορες δοκιμές και διαπίστωσα ότι ο κώδικας λειτουργεί τέλεια. Αν έχεις την καλωσύνη, όποτε μπορέσεις, μια μικρή βοήθεια ακόμη: Πως θα τροποποιήσουμε το μέρος του κώδικα, strSQL = "SELECT tblA.* FROM tblA " & _ "WHERE [ISXIS]=True AND Year([LIXI])=Year(DateAdd(""m"",1,Date()))" & _ " And Month([LIXI])=Month(DateAdd(""m"",1,Date()))" έτσι ώστε να μας προσαρτά, τις εγγραφές του τρέχοντα μήνα; |
|
#8
| |||
| |||
|
Δημήτρη, δοκίμασε: Κώδικας: strSQL = "SELECT tblA.* FROM tblA " & _
"WHERE [ISXIS]=True AND Year([LIXI])=Year(Date())" & _
" And Month([LIXI])=Month(Date())"
|
|
#9
| |||
| |||
|
Γιώργο, όλα καλά... Σε ευχαριστώ και πάλι. Καλή συνέχεια... |
![]() |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
| ||||
| Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
| [ Πίνακες ] Πολλαπλή αντιγραφή μιάς εγγραφής στον ίδιο πίνακα | dimitrisp | Access - Ερωτήσεις / Απαντήσεις | 14 | 05-10-16 22:38 |
| Μερικά άθροισμα στον ίδιο πίνακα και ερωτημα | pansyr | Access - Ερωτήσεις / Απαντήσεις | 11 | 06-10-15 18:34 |
| [ Πίνακες ] Ενωση 2 πεδίων στον ίδιο πίνακα | kantidenos | Access - Ερωτήσεις / Απαντήσεις | 1 | 01-10-13 03:28 |
| [ Πίνακες ] Αντιγραφή εγγραφών από πίνακα σε πίνακα | apostolos | Access - Ερωτήσεις / Απαντήσεις | 3 | 30-08-13 15:36 |
| [Μορφοποίηση] Μαζική αντιγραφή μορφοποίηση υπό όρους | starcctv | Excel - Ερωτήσεις / Απαντήσεις | 5 | 14-03-13 20:12 |
Η ώρα είναι 07:17.


Αλλαγή σε γραμμικό τρόπο

