JETSQL字符串中单引号的问题

JETSQL字符串中单引号的问题,第1张

JETSQL字符串中单引号的问题,第2张

函数about_inverted_comma()

Dim rs作为新ADODB。记录集

Dim strSQL作为字符串

StrSQL = "select * from table 1其中g= ' ' "

其实很简单。如果要匹配空字符,可以连续使用两个单引号''

如果要匹配G字段中的单引号,可以将要匹配的单引号乘以2。

而两边仍然包含一侧带有单引号的字符,表示这是一个匹配的字符串。

例如,如果我想匹配一个单引号,我将使用下面的代码:

StrSQL = "select * from table 1其中g= ' ' ' ' "

要匹配两个单引号,请使用以下代码:

StrSQL = "select * from table 1其中g= ' ' ' ' "

rs。CursorLocation = adUseClient

rs。打开strSQL,CurrentProject。连接,1,1

调试。打印rs。记录计数

rs。关闭

结束功能

描述:

在JET SQL中,为了表示一个字符串,首先我们需要用两个引号将字符串括起来。例如,“abc”,JET SQL编译器将其解释为字符串abc。而当你需要表示单引号'',如果只用了三个引号'',JET SQL的编译器将无法解析识别中间的引号是正常字符还是特殊字符(如果是特殊字符,编译器会认为左右引号有关系)。

为了解决这种情况,在JET SQL中使用转义字符(这一概念在其他语言中也有)来转义特殊字符。在''''中:第一个和第四个引号中间是一个字符串,第二个引号是转义符,说明它后面的第三个'不是特殊字符,是普通引号!所以' ' ' JET SQL引擎编译的输出就是一个普通的单引号'

此外,在VBA也有关于字符串表达式的相同概念。

在VBA,为了表示一个字符串,首先我们需要用两个引号将字符串括起来。例如,“abc”,VBA编译器将其解释为字符串abc。当需要表示单引号“时,如果只使用了三个引号" ",VBA编译器将无法解析识别中间的引号是正常字符还是特殊字符(如果是特殊字符,编译器会认为左右引号有关系)。

为了解决这种情况,在VBA使用转义字符(这个概念在其他语言中也有)来转义特殊字符。" " " ":第一个和第四个引号中间是一个字符串,第二个引号是一个转义符,说明它后面的第三个"不是特殊字符,而是一个普通的引号!所以" " " " VBA编译器编译的输出就是一个普通的双引号"

在日常操作中,为了避免双引号的问题,我们也可以直接写一个函数来解决问题。

函数CheckSQL(ByVal strSQL As String)As String

如果IsNull(strSQL) = False,则
strSQL = Replace(strSQL,"'","''")

Else
strSQL = " "

如果…就会结束

CheckSQL = strSQL

结束功能

该功能的应用如下:

函数CheckSQL(ByVal strSQL As String)As String

如果IsNull(strSQL) = False,则
strSQL = Replace(strSQL,"'","''")

Else
strSQL = " "

如果…就会结束

CheckSQL = strSQL

结束功能

函数about_inverted_comma()

Dim rs作为新ADODB。记录集

Dim strSQL作为字符串

字符串形式的Dim条件

StrCondition = "条件with "(单引号)"

StrSQL = " select * from table 1 where g = ' " & str condition & " ' "

上面的语句可能会导致JET SQL错误,所以下面的函数用来过滤单引号。

StrSQL = " select * from table 1 where g = ' " & checksql(str condition)& " ' "

rs。CursorLocation = adUseClient

rs。打开strSQL,CurrentProject。连接,1,1

调试。打印rs。记录计数

rs。关闭

结束功能

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » JETSQL字符串中单引号的问题

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情