Εμφάνιση ενός μόνο μηνύματος
  #2  
Παλιά 18-06-11, 23:15
kapetang Ο χρήστης kapetang δεν είναι συνδεδεμένος
Όνομα: Γιώργος
Έκδοση λογισμικού Office: Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-06-2010
Μηνύματα: 3.674
Προεπιλογή

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

Δημήτρη, στη ΒΔ που επισυνάπτω, προσπάθησα να υλοποιήσω το ζητούμενο.
Η ΒΔ αποτελείται από:
1) Τον πίνακα «tblEmployees», που περιέχει τα ονόματα των υπαλλήλων μιας εταιρείας.
2) Τον πίνακα «tblProjects» που περιέχει τα στοιχεία των έργων της εταιρείας. Επειδή ένα έργο μπορεί να ανατεθεί σε πολλούς υπαλλήλους, το πεδίο «Assignment» που έχει τα στοιχεία των υπαλλήλων στους οποίους έχει ανατεθεί το έργο, είναι πολλαπλών τιμών.
3) Τη φόρμα «frmProjects», που βασίζεται στον πίνακα «tblProjects».
Αν πατήσουμε το κουμπί «Προσθήκη» προστίθεται μια νέα εγγραφή στον πίνακα όμοια με την τελευταία της φόρμας.
Η λειτουργικότητα του κουμπιού οφείλεται στον παρακάτω κώδικα.
Κώδικας:
Private Sub cmdAdd_Click()
    Dim strSQL As String
    Dim x, i As Integer, y As String, cnt As Long
    Me.Recordset.MoveLast
    y = Me.Project
    x = Me.Assignment
    
    'Προσθήκη νέας εγγραφής
    DoCmd.SetWarnings False
    strSQL = "Insert into tblProjects (Project) " & _
        "Values('" & y & "')"
    DoCmd.RunSQL strSQL
    DoCmd.SetWarnings False

    Me.Requery
    Me.Recordset.MoveLast
    cnt = Me.ProjectID

    'Προσθήκη τιμών στο πεδίο πολλαπλών τιμών
    DoCmd.SetWarnings False
    For i = 0 To UBound(x)
        strSQL = "Insert into tblProjects (Assignment.Value) " & _
            "Values(" & x(i) & ") WHERE ProjectID=" & cnt
        DoCmd.RunSQL strSQL
    Next
    DoCmd.SetWarnings False
    Me.Requery

End Sub
Επειδή τα πεδία πολλαπλών τιμών, δεν τα ξέρω και δεν τα συμπαθώ (παραβιάζουν βασικές αρχές των σχεσιακών βάσεων δεδομένων) ελπίζω κάποιο άλλο μέλος να σου προτείνει κάποια καλύτερη λύση.

Φιλικά/Γιώργος
Συνημμένα Αρχεία
Τύπος Αρχείου: accdb MultiValuesFields.accdb (416,0 KB, 44 εμφανίσεις)
Απάντηση με παράθεση