Foglio di lavoro Query Excel in MS-Access VBA (utilizzando il recordset ADODB)

Vorrei interrogare un foglio di lavoro di Excel in VBA e specificare le condizioni.

La semplice query "SELECT * FROM [PCR$]" funziona perfettamente, ma non so come aggiungere una clausola WHERE.

Ho provato cmd2.CommandText = "SELECT * FROM [PCR$] WHERE ([B1] IS NOT NULL)" ma poi si lamenta dei parametri mancanti.

Questo è il codice completo:

 Dim rs2 As New ADODB.Recordset Dim cnn2 As New ADODB.Connection Dim cmd2 As New ADODB.Command Dim intField As Integer Dim strFile As String strFile = fncOpenFile If strFile = "" Then Exit Sub With cnn2 .Provider = "Microsoft.Jet.OLEDB.4.0" .ConnectionString = "Data Source='" & strFile & "'; " & "Extended Properties='Excel 8.0;HDR=Yes;IMEX=1'" .Open End With Set cmd2.ActiveConnection = cnn2 cmd2.CommandType = adCmdText cmd2.CommandText = "SELECT * FROM [PCR$]" rs2.CursorLocation = adUseClient rs2.CursorType = adOpenDynamic rs2.LockType = adLockOptimistic rs2.Open cmd2 

Nella tua string di connessione dici

  Excel 8.0;HDR=Yes 

Ciò significa che la prima row sarà trattata come intestazione, non import ciò che contiene. Se si desidera utilizzare F1, F2 etc, dire

 Excel 8.0;HDR=No 

Poiché si dispone dell'opzione HDR=Yes , il nome della colonna dovrebbe essere i dati nella prima row.

http://support.microsoft.com/kb/316934