論壇各位大神,我在Access下直接運行以下的SQL陳述句,能夠順利執行,可以得到預期結果。
select * into TableTemp2 from (select B.RowID,A.BeforeRevise, A.AfterRevise,A.BackUp from TableReviseAuthor1 as A inner join TableTemp AS B on B.Author like '*' & A.BeforeRevise & '*')
但在VB環境下,要對Access執行上述SQL陳述句相同的操作,將其中like后的*必須使用%來替代,執行以下陳述句:
Public PuChaDataBase As ADODB.Connection
Set PuChaDataBase = New ADODB.Connection
PuChaDataBase.ConnectionString = "Provider=Microsoft.Ace.OleDb.12.0;Data Source=" & App.path & "\PuChaDataBase.mdb" & ";Persist Security Info=True"
PuChaDataBase.Open
strSQL = "select * into TableTemp2 from (select B.RowID,A.BeforeRevise, A.AfterRevise,A.BackUp from TableReviseAuthor1 as A inner join TableTemp AS B on B.Author like '%' & A.BeforeRevise & '%')"
PuChaDataBase.Execute strSQL
總是報“無效的模式字串”的錯,如果把strSQL字串中like后兩個%之間欄位A.BeforeRevise改為固定字串(比如:"李白"),就可以運行。
Access中選項頁中的SQL SERVER兼容語法下的兩個選項也打上勾了,見下圖。
請教各位大神,究竟是哪個地方出問題了。
uj5u.com熱心網友回復:
因為你拼錯了,'%' & A.BeforeRevise & '%',& 符號兩邊需要雙引號而非單引號。建議列印出strSQL看看具體拼出來的結果是什么,看到結果你就明白了。uj5u.com熱心網友回復:
您的意思是這樣修改嗎?strSQL = "select * into TableTemp2 from (select B.RowID,A.BeforeRevise,A.AfterRevise,A.BackUp from TableReviseAuthor1 as A inner join TableTemp AS B on B.Author like '%"" & A.BeforeRevise & ""%')"
結果是這樣的,報不支持的JOIN運算式
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/206092.html
標籤:VB基礎類
下一篇:跪求,用MFC寫一個隨機抽查程式
