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

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

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

 

Εργαλεία Θεμάτων Τρόποι εμφάνισης
  #11  
Παλιά 20-06-11, 09:22
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλημέρα στην παρέα

Γιώργο, ο κώδικας που σου πρότεινα, όπως και του Δημήτρη, κάνει τρέχουσα την τελευταία εγγραφή.
Όταν η ταξινόμηση των εγγραφών γίνεται με βάση το πεδίο «ΑΝΑΓΝΩΡΙΣΤΙΚΟ» η τελευταία εγγραφή συμπίπτει με αυτή που προσθέσαμε. Σ’ αυτό στηρίζεται η τελική λύση που έδωσε ο Δημήτρης.
Τι γίνεται όμως όταν η ταξινόμηση βασίζεται σε άλλο πεδίο πχ «ΟΝΟΜΑΤΕΠΩΝΥΜΟ»;
Θα μπορούσαμε να κάνουμε τα εξής:
1) Να βρούμε την τιμή (cnt) που πήρε το πεδίο «ΑΝΑΓΝΩΡΙΣΤΙΚΟ» της νέας εγγραφής. Ο κώδικας αυτός υπάρχει και είναι ο: cnt=DMax("ΑΝΑΓΝΩΡΙΣΤΙΚΟ", "ΠΡΟΣΦΟΡΕΣ")
2) Να κάνουμε τρέχουσα την εγγραφή της οποίας το «ΑΝΑΓΝΩΡΙΣΤΙΚΟ» είναι cnt.
Αυτό απαιτεί την προσθήκη του κώδικα: Me.Recordset.FindFirst "[ΑΝΑΓΝΩΡΙΣΤΙΚΟ]=" & cnt

Φιλικά/Γιώργος
Απάντηση με παράθεση
  #12  
Παλιά 21-06-11, 20:56
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 07-05-2011
Μηνύματα: 137
Προεπιλογή

Γιώργο καλησπέρα,

Μπορείς να μου πεις που ακριβώς πρέπει να μπει η εντολή στον κώδικα;

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  
Παλιά 21-06-11, 22:00
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλησπέρα

Γιώργο, στη βάση που ανέβασες υπάρχει ο κώδικας:
Κώδικας:
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
Την εντολή που προτείνω θα την προσθέσεις μετά την εντολή me.requery.

Φιλικά/Γιώργος

Τελευταία επεξεργασία από το χρήστη Tasos : 22-06-11 στις 04:54.
Απάντηση με παράθεση
  #14  
Παλιά 22-06-11, 16:08
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 07-05-2011
Μηνύματα: 137
Προεπιλογή

Γιώργο η λύση που μου έδωσες είναι τέλεια!!!

Σε ευχαριστώ πάρα πολύ.
Απάντηση με παράθεση
  #15  
Παλιά 22-06-11, 19:46
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 07-05-2011
Μηνύματα: 137
Προεπιλογή

Καλησπέρα και πάλι,

Έχει προκύψει ένα άλλο πρόβλημα,μπορώ να αντιγράψω μόνο 9 πεδία,μόλις προσθέτω και 10ο πεδίο στον κώδικα μου βγάζει σφάλμα,μήπως έχετε κάποια ιδέα γιατί συμβαίνει αυτό;
Απάντηση με παράθεση
  #16  
Παλιά 22-06-11, 21:20
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.035
Προεπιλογή

Καλησπέρα Γιώργο!

Στη φόρμα σου έχεις ρυθμίσει:
  • Κατάταξη κατά: ΟΝΟΜΑΤΕΠΩΝΥΜΟ
  • "Κατάταξη κατά με τη φόρτωση": Ναι
Χρησιμοποιώντας τη γραμμή: DoCmd.GoToRecord , , acLast, φυσικά θα σε πάει στην
τελευταία εγγραφή της φόρμας και όχι στην επιθυμητή εγγραφή που μόλις αντιγράφηκε και
που μπορεί να βρίσκεται οπουδήποτε (Κατάταξη κατά: ΟΝΟΜΑΤΕΠΩΝΥΜΟ...)!

Δοκίμασε το παρακάτω:

Κώδικας:
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  
Παλιά 22-06-11, 22:35
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 07-05-2011
Μηνύματα: 137
Προεπιλογή

Τάσο σε ευχαριστώ πολύ,
Βέβαια και αυτός ο κώδικας λειτουργεί κατά τον ίδιο τρόπο με αυτόν που μου έδωσε ο Γιώργος.

Κάτι παίζει όμως με ορισμένα πεδία και δεν μπορούν να αντιγραφούν,σε κάποια διαπίστωσα πως έφταιγε το ότι τα είχα ως (απαιτείται) και μόλις το άλλαξα λύθηκε το πρόβλημα αλλά σε κάποια άλλα πεδία αν και προσπαθώ εδώ και πολλές ώρες να βρω τι φταίει δεν έχω καταφέρει κάτι.
Απάντηση με παράθεση
  #18  
Παλιά 22-06-11, 23:26
Το avatar του χρήστη Tasos
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.035
Προεπιλογή

Καλησπέρα Γιώργο!
Ο κώδικας που σου πρότεινα όπως και ο κώδικας του Γιώργου (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  
Παλιά 23-06-11, 15:35
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2007
Γλώσσα λογισμικού Office: Ελληνική
 
Εγγραφή: 07-05-2011
Μηνύματα: 137
Προεπιλογή

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

Ευχαριστώ πολύ για μια ακόμη φορά!!!
Απάντηση με παράθεση
  #20  
Παλιά 23-06-11, 17:03
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

Καλησπέρα στην παρέα

Γιώργο (συνονόματε), μάλλον υπάρχει ένα μπέρδεμα.
Το τελευταίο μήνυμα με κώδικα είναι του Τάσου, οπότε για τη βοήθεια θα έπρεπε να ευχαριστήσεις τον Τάσο!

Φιλικά/Γιώργος
Απάντηση με παράθεση
Απάντηση στο θέμα


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

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


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

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