Forum

Forum (https://www.ms-office.gr/forum/)
-   Access - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/)
-   -   [ Πίνακες ] Αντιγραφή εγγραφών από πίνακα σε πίνακα (https://www.ms-office.gr/forum/access-erotiseis-apantiseis/2663-antigrafi-eggrafon-apo-pinaka-se-pinaka.html)

apostolos 30-08-13 10:35

Αντιγραφή εγγραφών από πίνακα σε πίνακα
 
1 Συνημμένο(α)
Γεια σας και καλο χειμωνα!
Στο συνημμένο αρχείο προσπαθώ να αντιγραψω τα δεδομένα των πινάκων [ΕΝΤΟΛΗ ΕΡΓΑΣΙΩΝ ΠΕΛΑΤΗΣ] και [ΕΝΤΟΛΗ ΕΡΓΑΣΙΩΝ ΑΝΤΑΛ] στους πίνακες ΑΡΧΕΙΟΕΝΤΟΛΗΣΠΕΛ και ΑΡΧΕΙΟΕΝΤΟΛΗΣΑΝΤΑΛ μέσω της φόρμας [ΕΝΤΟΛΗ ΕΡΓΑΣΙΩΝ ΠΕΛΑΤΗΣ] με τη χρήση του κουμπιού ΑΝΤΙΓΡΑΦΗ αλλά κάτι δεν κάνω καλά και δεν μεταφέρονται οι εγγραφές του [ΕΝΤΟΛΗ ΕΡΓΑΣΙΩΝ ΑΝΤΑΛ] στον ΑΡΧΕΙΟΕΝΤΟΛΗΣΑΝΤΑΛ . Παρακαλώ την βοήθεια σας

Tasos 30-08-13 12:08

Καλησπέρα!

Απόστολε, δοκίμασε τον παρακάτω κώδικα (χωρίς ρουτίνα αποσφαλμάτωσης):

Κώδικας:

Option Compare Database
Option Explicit

Private Sub Εντολή14_Click()
    Dim dbs As DAO.Database
    Dim rs1 As DAO.Recordset
    Dim rs2 As DAO.Recordset
    Dim strSQL As String
    Dim ID As Long
    Set dbs = CurrentDb

    strSQL = "INSERT INTO ΑΡΧΕΙΟΕΝΤΟΛΗΣΠΕΛ ( ΚΩΔΙΚΟΣΕΝΤΟΛΗΣ, ΚΩΔΙΚΟΣΠΕΛΑΤΗ, " & _
            "ΕΠΩΝΥΜΟ, ΟΜΟΜΑ, ΑΦΜ, ΗΜΕΡΟΜΗΝΙΑ ) VALUES( " & _
            Nz(Me.ΚΩΔΙΚΟΣΕΝΤΟΛΗΣ, 0) & ", " & _
            Nz(Me.ΚΩΔΙΚΟΣΠΕΛΑΤΗ, 0) & ", '" & _
            Nz(Me.ΕΠΩΝΥΜΟ, "") & "', '" & _
            Nz(Me.ΟΜΟΜΑ, "") & "', '" & _
            Nz(Me.ΑΦΜ, "") & "', #" & _
            Format(Nz(Me.ΗΜΕΡΟΜΗΝΙΑ, 0), "m\/d\/yyyy") & "#)"

    dbs.Execute strSQL, dbFailOnError
    ID = DMax("ΑΑΑΕ", "ΑΡΧΕΙΟΕΝΤΟΛΗΣΠΕΛ")

    strSQL = "SELECT * FROM [ΕΝΤΟΛΗ ΕΡΓΑΣΙΩΝ ΑΝΤΑΛ] WHERE ΚΩΔΙΚΟΣΕΝΤΟΛΗΣ=" & Me.ΚΩΔΙΚΟΣΕΝΤΟΛΗΣ
    Set rs1 = dbs.OpenRecordset(strSQL, dbOpenSnapshot)
    If rs1.RecordCount Then
        Set rs2 = dbs.OpenRecordset("ΑΡΧΕΙΟΕΝΤΟΛΗΣΑΝΤΑΛ", dbOpenDynaset)
        While Not rs1.EOF
            rs2.AddNew
            rs2![Κωδικός προιόντος] = rs1![Κωδικός προιόντος]
            rs2![ΟΝΟΜΑΣΙΑ] = rs1![ΟΝΟΜΑΣΙΑ]
            rs2![ΕΙΔΟΣ] = rs1![ΕΙΔΟΣ]
            rs2![Μονάδα μέτρησης] = rs1![Μονάδα μέτρησης]
            rs2![ΠΟΣΟΤΗΤΑ] = rs1![ΠΟΣΟΤΗΤΑ]
            rs2![ΑΑΑΕ] = ID
'          rs2![ΑΙΤΙΟΛΟΓΙΑ] = rs1![ΑΙΤΙΟΛΟΓΙΑ]
            rs2.Update
            rs1.MoveNext
        Wend
        rs2.Close
        Set rs2 = Nothing
    End If
    rs1.Close
    Set rs1 = Nothing
    Set dbs = Nothing
End Sub

Με εκτίμηση

Τάσος

sarafis 30-08-13 13:15

1 Συνημμένο(α)
Πρέπει να προσθέσεις και στον πίνακα ΑΡΧΕΙΟΕΝΤΟΛΗΣΑΝΤΑΛ το πεδίο ΚΩΔΙΚΟΣΕΝΤΟΛΗΣ που συνδέει τους δύο πίνακες του αρχείου και να διαμορφώσεις ξανά τις σχέσεις μεταξύ των πινάκων.
Επίσης θα πρέπει ορίσεις κλειδιά ώστε να μην επιτρέπεται να φορτωθούν διπλότυπες εγγραφές σε περίπτωση που πατήσεις ξανά το κουμπί αντιγραφή.
Αυτά ως προς το συγκεκριμένο πρόβλημα, βέβαια θα πρέπει να αλλάξεις την σχεδίαση καθώς ένας πελάτης θα δώσει πολλές εντολές οπότε το πεδίο ΚΩΔΙΚΟΣΕΝΤΟΛΗΣ και λοιπές πληροφορίες σχετικά με την παραγγελία (ημερομηνία κλπ) θα πρέπει να πάνε σε ξεχωριστό πίνακα.

apostolos 30-08-13 15:36

Σε ευχαριστω, δουλευει τελεια!!!


Η ώρα είναι 18:51.

Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2