W
wee
erewrt435dffdg546
I have the junction table already and it is named Artist SubDiscipline.
Does it matter that there is a space in the table name and that it doesn't
start with tbl?
What I need to do is fill in the junction table to show what disciplines the
artist has.
John Vinson said:I have the junction table already and it is named Artist SubDiscipline.
Does it matter that there is a space in the table name and that it doesn't
start with tbl?
Access doesn't care WHAT the name is. You could call it George or
[xE32YY78] if you wished. The only drawbacks to having spaces in the
name are that you must always use [Square brackets] around the name in
Queries and in code, and it will make it harder to upgrade to
SQL/Server if you should decide to do so.
What I need to do is fill in the junction table to show what disciplines the
artist has.
The *simplest* way to do this is to not use a Listbox, but instead to
use a continuous Subform based on [Artist SubDiscipline] with a combo
box displaying the discipline and storing the foreign key to the
Discipline table.
If you really want to use the Listbox, I've got some VBA code to do
so: you'll need to adapt the table and fieldnames to your own
application.
Private Sub cmdProcess_Click()
' Comments : Update the AnimalCondition table based on the
' selections in the unbound multiselect listbox lstHealthIssues.
' Newly selected rows will be added to the table,
' newly cleared rows will be deleted.
' Parameters: None
' Modified : 01/29/02 by JWV
'
' --------------------------------------------------
' Populate the AnimalCondition table with the selected issues
On Error GoTo PROC_ERR
Dim iItem As Integer
Dim lngCondition As Long
Dim db As DAO.Database
Dim rs As DAO.Recordset
' save the current record if it's not saved
If Me.Dirty = True Then
Me.Dirty = False
End If
Set db = CurrentDb
' Open a Recordset based on the table
Set rs = db.OpenRecordset("AnimalCondition", dbOpenDynaset)
With Me!lstHealthIssues
' Loop through all rows in the Listbox
For iItem = 0 To .ListCount - 1
lngCondition = .Column(0, iItem)
' Determine whether this AnimalID-HealthID combination is
currently
' in the table
rs.FindFirst "[AnimalID] = " & Me.AnimalID & " AND " _
& "[HealthIssueID] = " & lngCondition
If rs.NoMatch Then ' this item has not been added
If .Selected(iItem) Then
' add it
rs.AddNew
rs!AnimalID = Me.AnimalID
rs!HealthIssueID = lngCondition
rs.Update
End If ' if it wasn't selected, ignore it
Else
If Not .Selected(iItem) Then
' delete this record if it's been deselected
rs.Delete
End If ' if it was selected, leave it alone
End If
Next iItem
End With
rs.Close
Set rs = Nothing
Set db = Nothing
Me.subAnimalCondition.Requery
PROC_EXIT:
Exit Sub
PROC_ERR:
MsgBox "Error " & Err.Number & " in cmdProcess_Click:" _
& vbCrLf & Err.Description
Resume PROC_EXIT
End Sub
John W. Vinson[MVP]
Join the online Access Chats
Tuesday 11am EDT - Thursday 3:30pm EDT
http://community.compuserve.com/msdevapps
I tried removing the DAO but that had no effect. What must I do so that
DAO.Database is defined?
I hate exposing my ignorance so much.