2010-01-18 26 views
7

Me gustaría consultar una hoja de cálculo de Excel en VBA y especificar condiciones.hoja de cálculo de Excel de consulta en MS-Access VBA (utilizando conjunto de registros ADODB)

La consulta simple "SELECT * FROM [PCR$]" funciona perfectamente, pero no sé cómo agregar una cláusula WHERE.

Intenté cmd2.CommandText = "SELECT * FROM [PCR$] WHERE ([B1] IS NOT NULL)" pero luego se queja de parámetros faltantes.

Este es el código 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 

Respuesta

5

En la cadena de conexión que usted dice

Excel 8.0;HDR=Yes 

Lo que significa que la primera fila será tratado como el encabezado, no importa lo que contiene. Si desea utilizar F1, F2, etc., por ejemplo

Excel 8.0;HDR=No 
Cuestiones relacionadas