在vb环境下访问access,怎么在join语句中使用like进行模糊匹配
论坛各位大神,我在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兼容语法下的两个选项也打上勾了,见下图。
请教各位大神,究竟是哪个地方出问题了。
[此贴子已经被作者于2020-11-7 11:57编辑过]