scusa ma perchè queste righe di codice

Dim iModello, iMarca, iStrumento
iModello = txtModello
iMarca = txtMarca
iStrumento = collStrumento(cmbStrumento.Text)
strSQL = "INSERT INTO Staff (Marca,Modello,ID_Strumento) VALUES ('" & iMarca & "','" & iModello & "','" & iStrumento & "')"
dbConn.Open
DoEvents
dbConn.Execute strSQL
MsgBox ("Dati inseriti")
dbConn.Close
Set dbConn = Nothing



le metti nel ciclo While?

prova a scrivere così:

Private Sub cmdSalva_Click()

Dim collStrumento As New Collection
Dim dbConn As New ADODB.Connection
Dim strConnectionString As String
Dim strSQL As String

g_strConnectionString = "maia"
'Apro una connessione con il database
dbConn.ConnectionString = g_strConnectionString

Dim dbRec As New ADODB.Recordset
Dim strumento As String

Dim iModello, iMarca, iStrumento
iModello = txtModello
iMarca = txtMarca
iStrumento = collStrumento(cmbStrumento.Text)
strSQL = "INSERT INTO Staff (Marca,Modello,ID_Strumento) VALUES ('" & iMarca & "','" & iModello & "','" & iStrumento & "')"
dbConn.Open
DoEvents
dbConn.Execute strSQL


While Not dbRec.EOF
strumento = dbRec("NomeStrumento")
cmbStrumento.AddItem strumento
collStrumento.Add Int(dbRec("ID_STRUMENTO")), strumento
dbRec.MoveNext
Wend

MsgBox ("Dati inseriti")
dbConn.Close
Set dbConn = Nothing

End Sub