Need to know how to do a mulitple selection update

G

Guest

Not exactly sure what you call it, but what I am trying to do is make it
easier to update my database. I have a db that tracks the education of our
firefighters, and I want to be able to bring up the list of our members and
click a check box for each of them that attended a specific class. Once I
have selected all that attended, It should then update the table that they
took that class. I know this is possible because I have seen it in other
db's. Can someone help me or at least point me in the right direction to get
help? Thanks
 
J

John W. Vinson

Not exactly sure what you call it, but what I am trying to do is make it
easier to update my database. I have a db that tracks the education of our
firefighters, and I want to be able to bring up the list of our members and
click a check box for each of them that attended a specific class. Once I
have selected all that attended, It should then update the table that they
took that class. I know this is possible because I have seen it in other
db's. Can someone help me or at least point me in the right direction to get
help? Thanks

Here's some code that lets you do something similar, just using a
Listbox rather than checkboxes.

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]
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top