2010-01-18 23 views
7

Ich möchte ein Excel-Arbeitsblatt in VBA und Bedingungen angeben.Abfrage Excel-Arbeitsblatt in MS-Access VBA (mit ADODB-Recordset)

Die einfache Abfrage "SELECT * FROM [PCR$]" funktioniert perfekt, aber ich weiß nicht, wie Sie eine WHERE-Klausel hinzufügen.

Ich versuchte cmd2.CommandText = "SELECT * FROM [PCR$] WHERE ([B1] IS NOT NULL)" aber dann klagt es über fehlende Parameter.

Dies ist der vollständige Code:


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 

Antwort

5

In der Verbindungszeichenfolge sagen Sie

Excel 8.0;HDR=Yes 

Was bedeutet, dass die erste Zeile wird als Überschrift behandelt werden, egal, was es enthält. Wenn Sie F1 verwenden möchten, F2 usw., sagen

Excel 8.0;HDR=No 
Verwandte Themen