Καλημέρα στην παρέα
Δημήτρη, στη ΒΔ που επισυνάπτω, προσπάθησα να υλοποιήσω το ζητούμενο.
Η ΒΔ αποτελείται από:
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
Επειδή τα πεδία πολλαπλών τιμών, δεν τα ξέρω και δεν τα συμπαθώ (παραβιάζουν βασικές αρχές των σχεσιακών βάσεων δεδομένων) ελπίζω κάποιο άλλο μέλος να σου προτείνει κάποια καλύτερη λύση.
Φιλικά/Γιώργος