Using SQL with VBA in Excel

在利用ADO+SQL查询ACCESS数据库

VB中是这样的
?:任意单个字符 如LIKE ‘?南’ ,LIKE ‘?南?’
*:零个或多个字符 如:LIKE ‘*南’ , LIKE ‘*南*’

而在VBA中则不能这样用,它的用法竟然和SQL查询SQL Server数据库的语法一致:
_ :任意单个字符 如LIKE ‘_南’ ,LIKE ‘_南_’
%:零个或多个字符 如:LIKE ‘%南’ , LIKE ‘%南%’

Ex:

Private Sub BtnSearch_Click()
 
    Dim CNN As New ADODB.Connection
    Dim RST As New ADODB.Recordset
    Dim Stpath, strSQL As String
 
    Stpath = ThisWorkbook.Path & Application.PathSeparator & “student_sample.mdb”
    CNN.Open “provider=Microsoft.jet.OLEDB.4.0;data source=” & _
                         Stpath ‘& “;Jet OLEDB:Database Password=” & “123″
 
    ‘Right way
    strSQL = “Select * from 档案 WHERE 籍贯 LIKE ‘%南%”
    ‘Wrong way 
    ’strSQL = “Select * from 档案 WHERE 籍贯 LIKE ‘*南*’”
 
    RST.Open strSQL,CNN
    Sheet1.Range(“A2:G100″).ClearContents
    Sheet1.Cells(2, 1).1yFromRecordset RST
    RST.Close
    Set RST = Nothing
    Set CNN = Nothing
End Sub

2 comments so far

  1. nephrite November 17, 2006 6:31 pm

    ?:任意单个字符 如LIKE ‘?南’ ,LIKE ‘?南?’
    *:零个或多个字符 如:LIKE ‘*南’ , LIKE ‘*南*’

    DOS 还有现在Windows系统搜索都还是这样子的~~ :em03:

  2. gYtHiAlY November 17, 2006 7:05 pm

    可VBA这样就不可以。
    第一次用VBA写程序的时候,郁闷了好久~
    后经人指点才知道的~ :em14:

Leave a comment

Please be polite and on topic. Your e-mail will never be published.