Voila mon exemple :
Call connect
Set rs = New ADODB.Recordset
rs.CursorLocation = adUseClient
rs.Open "select * from Table_principale order by [ID OZ]", cns, adOpenStatic, adLockOptimistic
Dim bSQL As String
For i = 0 To 29
bSQL = bSQL & "[" & rs.Fields(i).name & "],"
Next i
bSQL = bSQL & "[" & rs.Fields(30).name & "]"
If Combo1.Text "Tout" And Combo2.Text "Tout" Then
Set rst = New ADODB.Recordset
rst.CursorLocation = adUseClient
rst.Open "SELECT " & bSQL & " FROM Table_principale WHERE (((Table_principale.La_date)>=#" & Format(Calendar1.Value, "mm/dd/yyyy hh:nn:ss") & "# AND (Table_principale.La_date)<=#" & Format(Calendar2.Value, "mm/dd/yyyy hh:nn:ss") & "#));", cns, adOpenStatic, adLockOptimistic
ElseIf Combo1.Text "Tout" And Combo2.Text "Vide" Then
Set rst = New ADODB.Recordset
rst.CursorLocation = adUseClient
rst.Open "SELECT " & bSQL & " FROM Table_principale WHERE (((Table_principale.La_date)>=#" & Format(Calendar1.Value, "mm/dd/yyyy hh:nn:ss") & "# AND (Table_principale.La_date)<=#" & Format(Calendar2.Value, "mm/dd/yyyy hh:nn:ss") & "#) AND (Table_principale.F19) is NULL);", cns, adOpenStatic, adLockOptimistic
ElseIf Combo2.Text = "Vide" Then
Set rst = New ADODB.Recordset
rst.CursorLocation = adUseClient
rst.Open "SELECT " & bSQL & " FROM Table_principale WHERE (((Table_principale.La_date)>=#" & Format(Calendar1.Value, "mm/dd/yyyy hh:nn:ss") & "# AND (Table_principale.La_date)<=#" & Format(Calendar2.Value, "mm/dd/yyyy hh:nn:ss") & "#) AND (Table_principale.F19) is NULL) AND (Table_principale.[CAT PUB])='" & Combo1.Text & "';", cns, adOpenStatic, adLockOptimistic
ElseIf Combo1.Text = "Tout" Then
Set rst = New ADODB.Recordset
rst.CursorLocation = adUseClient
rst.Open "SELECT " & bSQL & " FROM Table_principale WHERE (((Table_principale.La_date)>=#" & Format(Calendar1.Value, "mm/dd/yyyy hh:nn:ss") & "# AND (Table_principale.La_date)<=#" & Format(Calendar2.Value, "mm/dd/yyyy hh:nn:ss") & "#) AND (Table_principale.F19)=" & Combo2.Text & ");", cns, adOpenStatic, adLockOptimistic
ElseIf Combo2.Text = "Tout" Then
Set rst = New ADODB.Recordset
rst.CursorLocation = adUseClient
rst.Open "SELECT " & bSQL & " FROM Table_principale WHERE (((Table_principale.La_date)>=#" & Format(Calendar1.Value, "mm/dd/yyyy hh:nn:ss") & "# AND (Table_principale.La_date)<=#" & Format(Calendar2.Value, "mm/dd/yyyy hh:nn:ss") & "#) AND (Table_principale.[CAT PUB])='" & Combo1.Text & "');", cns, adOpenStatic, adLockOptimistic
Else
Set rst = New ADODB.Recordset
rst.CursorLocation = adUseClient
rst.Open "SELECT " & bSQL & " FROM Table_principale WHERE (((Table_principale.La_date)>=#" & Format(Calendar1.Value, "mm/dd/yyyy hh:nn:ss") & "# AND (Table_principale.La_date)<=#" & Format(Calendar2.Value, "mm/dd/yyyy hh:nn:ss") & "#) AND (Table_principale.[CAT PUB])='" & Combo1.Text & "' AND (Table_principale.F19)=" & Combo2.Text & ");", cns, adOpenStatic, adLockOptimistic
End If