Ho provato il tuo codice sul mio pc e credo che l'errore possa stare solo in Form12.comboid. Infatti assegnando direttamente un valore a b il codice funziona. Ti allego il codice che ho utilizzato ma nella sostanza è identico al tuo
Combo1.AddItem "pippo"
Combo1.ItemData(Combo1.NewIndex) = 23
Combo1.AddItem "peppe"
Combo1.ItemData(Combo1.NewIndex) = 58
Combo1.AddItem "gino"
Combo1.ItemData(Combo1.NewIndex) = 11
Dim a, b
Dim Stringa As String
Dim QryParam As String
Dim CN As New ADODB.Connection
Dim RS As New ADODB.Recordset
Dim SR As New ADODB.Recordset
b = 58
Stringa = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydat.mdb;Persist Security Info=False"
QryParam = "SELECT * FROM qrydispsaldate WHERE cliente=" & b & ""
Set CN = New ADODB.Connection
Set SR = New ADODB.Recordset
Set RS = New ADODB.Recordset
CN.Open Stringa
RS.CursorLocation = adUseClient
SR.CursorLocation = adUseClient
SR.Open ("SELECT * FROM Qrydispsaldate"), CN, 1
RS.Open QryParam, CN, 3, 3
Set grd.DataSource = RS
grd.Refresh
Set CN = Nothing
Set SR = Nothing
Set RS = Nothing