David McAfee
DMcAfee at haascnc.com
Mon May 10 13:09:45 CDT 2004
If you are using a multi-select listbox, you can always loop through the list box as such: 'Inserting records from a listbox (Looping through the listbox) Dim varIndex As Variant Dim lRecordsAffected As Long Dim Cnn As ADODB.Connection Dim Cmd As ADODB.Command Set Cnn = New ADODB.Connection Set Cnn = CurrentProject.Connection For Each varIndex In Me.MyListBox.ItemsSelected 'For every item selected in list box Set Cmd = New ADODB.Command With Cmd Set .ActiveConnection = Cnn .CommandType = adCmdStoredProc .CommandText = "stp_YourSprocHere" .Parameters.Append .CreateParameter("@addrID", adGUID, adParamInput, , Me.lstAddrLocOrContact.Column(3, varIndex)) Set .ActiveConnection = Cnn .Execute lRecordsAffected, , adExecuteNoRecords ' Do not return a recordset End With Set Cmd = Nothing Next 'Loop to the next selected item Cnn.Close Set Cnn = Nothing Another thing that I just recently did on a different form was to create a global temp table on the form open (ADP). I am using this form as a "maintenance" screen to clear out duplicate / erroneous entries. I Move certain records from one listbox to the next listbox by flagging a field in the temp table with a code. Both listboxes have the same stored procedure as the its rowsource (only sending back a different parameter, for the filter). When I am ready to do my multi table updates with the values listed in the listbox, I do it all through T-SQL by joining against the temp table. Upon closing the form, the global temp table deletes itself. Pretty neat. D Martin wrote: I need to pass the values from a list box in Access to a stored procedure which does a multi table insert.Unless of course theres a better way to do this? Martin