| Access - Ερωτήσεις / Απαντήσεις Access + VBA... Εδώ δεν υπάρχουν όρια! |
![]() |
| | Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
|
#11
| |||
| |||
|
Καλημέρα στην παρέα Γιώργο, ο κώδικας που σου πρότεινα, όπως και του Δημήτρη, κάνει τρέχουσα την τελευταία εγγραφή. Όταν η ταξινόμηση των εγγραφών γίνεται με βάση το πεδίο «ΑΝΑΓΝΩΡΙΣΤΙΚΟ» η τελευταία εγγραφή συμπίπτει με αυτή που προσθέσαμε. Σ’ αυτό στηρίζεται η τελική λύση που έδωσε ο Δημήτρης. Τι γίνεται όμως όταν η ταξινόμηση βασίζεται σε άλλο πεδίο πχ «ΟΝΟΜΑΤΕΠΩΝΥΜΟ»; Θα μπορούσαμε να κάνουμε τα εξής: 1) Να βρούμε την τιμή (cnt) που πήρε το πεδίο «ΑΝΑΓΝΩΡΙΣΤΙΚΟ» της νέας εγγραφής. Ο κώδικας αυτός υπάρχει και είναι ο: cnt=DMax("ΑΝΑΓΝΩΡΙΣΤΙΚΟ", "ΠΡΟΣΦΟΡΕΣ") 2) Να κάνουμε τρέχουσα την εγγραφή της οποίας το «ΑΝΑΓΝΩΡΙΣΤΙΚΟ» είναι cnt. Αυτό απαιτεί την προσθήκη του κώδικα: Me.Recordset.FindFirst "[ΑΝΑΓΝΩΡΙΣΤΙΚΟ]=" & cnt Φιλικά/Γιώργος |
|
#12
| |||
| |||
|
Γιώργο καλησπέρα, Μπορείς να μου πεις που ακριβώς πρέπει να μπει η εντολή στον κώδικα; If Me.NewRecord Then MsgBox "Δεν υπάρχουν δεδομένα για αντιγραφή": Exit Sub DoCmd.SetWarnings False DoCmd.RunSQL "INSERT INTO ΠΡΟΣΦΟΡΕΣ (ΟΝΟΜΑΤΕΠΩΝΥΜΟ,ΧΡΗΣΗ,ΜΑΡΚΑ, ΕΔΡΑ,ΤΗΛΕΦΩΝΟ,ΚΙΝΗΤΟ,ΔΙΑΡΚ ΙΑ,ΕΤΑΙΡΙΑ,ΙΠΠΟΙ,ΕΤΟΣΚΑΤΑΣ ΚΕΥΗΣ,ΚΥΒΙΚΑ) VALUES ('" & Me.ΟΝΟΜΑΤΕΠΩΝΥΜΟ & "','" & Me.ΧΡΗΣΗ & "','" & Me.ΜΑΡΚΑ & "','" & Me.ΕΔΡΑ & "','" & Me.ΤΗΛΕΦΩΝΟ & "','" & Me.ΚΙΝΗΤΟ & "','" & Me.ΔΙΑΡΚΕΙΑ & "','" & Me.ΕΤΑΙΡΙΑ & "','" & Me.ΙΠΠΟΙ & "','" & Me.ΕΤΟΣΚΑΤΑΣΚΕΥΗΣ & "','" & Me.ΚΥΒΙΚΑ & "')" DoCmd.SetWarnings True Me.Requery MsgBox "Τα δεδομένα αντιγράφηκαν" DoCmd.GoToRecord , , acLast |
|
#13
| |||
| |||
|
Καλησπέρα Γιώργο, στη βάση που ανέβασες υπάρχει ο κώδικας: Κώδικας: Private Sub Εντολή460_Click()
If Me.NewRecord Then MsgBox "Δεν υπάρχουν δεδομένα για αντιγραφή": Exit Sub
DoCmd.SetWarnings True
DoCmd.RunSQL "INSERT INTO ΠΡΟΣΦΟΡΕΣ (ΟΝΟΜΑΤΕΠΩΝΥΜΟ,ΧΡΗΣΗ,ΜΑΡΚΑ,ΕΔΡΑ,ΤΗΛΕΦΩΝΟ,ΚΙΝΗΤΟ,ΔΙΑΡΚΕΙΑ,ΕΤΑΙΡΙΑ,ΙΠΠΟΙ,
ΕΤΟΣΚΑΤΑΣΚΕΥΗΣ,ΚΥΒΙΚΑ) VALUES ('" & Me.ΟΝΟΜΑΤΕΠΩΝΥΜΟ & "','" & Me.ΧΡΗΣΗ & "','" & Me.ΜΑΡΚΑ & "','" & Me.ΕΔΡΑ & "','" &
Me.ΤΗΛΕΦΩΝΟ & "','" & Me.ΚΙΝΗΤΟ & "','" & Me.ΔΙΑΡΚΕΙΑ & "','" & Me.ΕΤΑΙΡΙΑ & "','" & Me.ΙΠΠΟΙ & "','" &
Me.ΕΤΟΣΚΑΤΑΣΚΕΥΗΣ & "','" & Me.ΚΥΒΙΚΑ & "')"
'Ανάκτηση κλειδιού νέας εγγραφής
cnt = DMax("ΑΝΑΓΝΩΡΙΣΤΙΚΟ", "ΠΡΟΣΦΟΡΕΣ")
MsgBox "Τα δεδομένα αντιγράφηκαν"
Me.Requery
End Sub
Φιλικά/Γιώργος Τελευταία επεξεργασία από το χρήστη Tasos : 22-06-11 στις 04:54. |
|
#14
| |||
| |||
|
Γιώργο η λύση που μου έδωσες είναι τέλεια!!! Σε ευχαριστώ πάρα πολύ. |
|
#15
| |||
| |||
|
Καλησπέρα και πάλι, Έχει προκύψει ένα άλλο πρόβλημα,μπορώ να αντιγράψω μόνο 9 πεδία,μόλις προσθέτω και 10ο πεδίο στον κώδικα μου βγάζει σφάλμα,μήπως έχετε κάποια ιδέα γιατί συμβαίνει αυτό; |
|
#16
| ||||
| ||||
|
Καλησπέρα Γιώργο! Στη φόρμα σου έχεις ρυθμίσει:
τελευταία εγγραφή της φόρμας και όχι στην επιθυμητή εγγραφή που μόλις αντιγράφηκε και που μπορεί να βρίσκεται οπουδήποτε (Κατάταξη κατά: ΟΝΟΜΑΤΕΠΩΝΥΜΟ...)! Δοκίμασε το παρακάτω: Κώδικας: Option Compare Database
Option Explicit
Private Sub cmdCopyRecords_Click()
If Not Me.NewRecord Then
CurrentDb.Execute "INSERT INTO ΠΡΟΣΦΟΡΕΣ (ΟΝΟΜΑΤΕΠΩΝΥΜΟ,ΧΡΗΣΗ,ΜΑΡΚΑ,ΕΔΡΑ,ΤΗΛΕΦΩΝΟ," & _
"ΚΙΝΗΤΟ,ΔΙΑΡΚΕΙΑ,ΕΤΑΙΡΙΑ,ΙΠΠΟΙ,ΕΤΟΣΚΑΤΑΣΚΕΥΗΣ,ΚΥΒΙΚΑ) VALUES ('" & _
Me.ΟΝΟΜΑΤΕΠΩΝΥΜΟ & "','" & Me.ΧΡΗΣΗ & "','" & Me.ΜΑΡΚΑ & "','" & Me.ΕΔΡΑ & _
"','" & Me.ΤΗΛΕΦΩΝΟ & "','" & Me.ΚΙΝΗΤΟ & "','" & Me.ΔΙΑΡΚΕΙΑ & _
"','" & Me.ΕΤΑΙΡΙΑ & "','" & Me.ΙΠΠΟΙ & "','" & Me.ΕΤΟΣΚΑΤΑΣΚΕΥΗΣ & "','" & Me.ΚΥΒΙΚΑ & "')"
Me.Requery
With Me.Recordset.Clone
.FindFirst ("ΑΝΑΓΝΩΡΙΣΤΙΚΟ = " & DMax("ΑΝΑΓΝΩΡΙΣΤΙΚΟ", "ΠΡΟΣΦΟΡΕΣ"))
Me.Bookmark = .Bookmark
.Close
End With
End If
End Sub
Φιλικά Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών |
|
#17
| |||
| |||
|
Τάσο σε ευχαριστώ πολύ, Βέβαια και αυτός ο κώδικας λειτουργεί κατά τον ίδιο τρόπο με αυτόν που μου έδωσε ο Γιώργος. Κάτι παίζει όμως με ορισμένα πεδία και δεν μπορούν να αντιγραφούν,σε κάποια διαπίστωσα πως έφταιγε το ότι τα είχα ως (απαιτείται) και μόλις το άλλαξα λύθηκε το πρόβλημα αλλά σε κάποια άλλα πεδία αν και προσπαθώ εδώ και πολλές ώρες να βρω τι φταίει δεν έχω καταφέρει κάτι. |
|
#18
| ||||
| ||||
|
Καλησπέρα Γιώργο! Ο κώδικας που σου πρότεινα όπως και ο κώδικας του Γιώργου (kapetang) να δοκιμάσεις βασίζεται στον κώδικα του συνημμένου σου και κάνει ακριβώς αυτό που ζητάς δηλαδή επιλέγει την εγγραφή που μόλις αντιγράφηκε. Δεν είναι σαφές το που αλλού αντιμετωπίζεις πρόβλημα. Αν θέλεις,σαν εναλλακτική λύση (και πιο απλή) δοκίμασε το παρακάτω: Κώδικας: Private Sub cmdTest()
Dim Field1, Field2, Field3, Field4, Field5, Field6, _
Field7, Field8, Field9, Field10, Field11
Field1 = Me!ΟΝΟΜΑΤΕΠΩΝΥΜΟ
Field2 = Me!ΧΡΗΣΗ
Field3 = Me!ΜΑΡΚΑ
Field4 = Me!ΕΔΡΑ
Field5 = Me!ΤΗΛΕΦΩΝΟ
Field6 = Me!ΚΙΝΗΤΟ
Field7 = Me!ΔΙΑΡΚΕΙΑ
Field8 = Me!ΕΤΑΙΡΙΑ
Field9 = Me!ΙΠΠΟΙ
Field10 = Me!ΕΤΟΣΚΑΤΑΣΚΕΥΗΣ
Field11 = Me!ΚΥΒΙΚΑ
DoCmd.GoToRecord , , acNewRec
Me!ΟΝΟΜΑΤΕΠΩΝΥΜΟ = Field1
Me!ΧΡΗΣΗ = Field2
Me!ΜΑΡΚΑ = Field3
Me!ΕΔΡΑ = Field4
Me!ΤΗΛΕΦΩΝΟ = Field5
Me!ΚΙΝΗΤΟ = Field6
Me!ΔΙΑΡΚΕΙΑ = Field7
Me!ΕΤΑΙΡΙΑ = Field8
Me!ΙΠΠΟΙ = Field9
Me!ΕΤΟΣΚΑΤΑΣΚΕΥΗΣ = Field10
Me!ΚΥΒΙΚΑ = Field11
End Sub
Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών |
|
#19
| |||
| |||
|
Γιώργο καλησπέρα, Τελικά χρησιμοποίησα τον τελευταίο κώδικα και λειτουργεί άψογα χωρίς κανένα απολύτως πρόβλημα. Ευχαριστώ πολύ για μια ακόμη φορά!!! |
|
#20
| |||
| |||
|
Καλησπέρα στην παρέα Γιώργο (συνονόματε), μάλλον υπάρχει ένα μπέρδεμα. Το τελευταίο μήνυμα με κώδικα είναι του Τάσου, οπότε για τη βοήθεια θα έπρεπε να ευχαριστήσεις τον Τάσο! Φιλικά/Γιώργος |
![]() |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
| ||||
| Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
| Αντιγραφή δεδομένων από μία εγγραφή σε μία άλλη | kapetang | Access samples - Χρήσιμα αρχεία & παραδείγματα | 0 | 03-10-14 19:09 |
| [ Φόρμες ] Αντιγραφή πεδίων | γιώργοςΚ | Access - Ερωτήσεις / Απαντήσεις | 17 | 17-04-13 23:52 |
| [ Φόρμες ] Αντιγραφή μερικών πεδίων από μια ΒΔ σε άλλη ΒΔ | skapet155 | Access - Ερωτήσεις / Απαντήσεις | 18 | 13-02-13 16:31 |
| Αντιγραφή πεδίων | XristosM | Access - Ερωτήσεις / Απαντήσεις | 6 | 13-08-11 12:37 |
| [ Φόρμες ] Αντιγραφή πεδίων στην Access | artchrist73 | Access - Ερωτήσεις / Απαντήσεις | 4 | 24-10-10 20:32 |
Η ώρα είναι 14:25.


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

