设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 3497|回复: 2
打印 上一主题 下一主题

[与其它组件] [求助]DoCmd.RunSQL "",里面又有双引号怎么办?

[复制链接]
跳转到指定楼层
1#
发表于 2007-5-5 23:37:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
DoCmd.RunSQL ""

在上面的双引号里面写了一条SQL如下:

INSERT INTO KSAP ( Nproff, Dspec, Kch, MinZkzh, MaxZkzk, Rs )
SELECT BM.Nproff, BM.Dspec, BM.Kch, DLookUp("[Zkzh]","BM","[Nproff]='" & [Nproff] & "' and [Dspec]='" & [Dspec] & "' and [Kch]=" & [Kch] & " and right([Zkzh],3)=" & Min(Right([Zkzh],3))) AS MinZkzh, DLookUp("[Zkzh]","BM","[Nproff]='" & [Nproff] & "' and [Dspec]='" & [Dspec] & "' and [Kch]=" & [Kch] & " and right([Zkzh],3)=" & Max(Right([Zkzh],3))) AS MaxZkzh, Count(BM.Zkzh) AS Zkzh之计数
FROM BM
GROUP BY BM.Nproff, BM.Dspec, BM.Kch;


这个SQL中有双引号,目前的问题就是,DoCmd.RunSQL "",双引号里面又有双引号,电脑就晕菜了,应该怎办写?

谢谢![em06]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2007-5-6 00:56:00 | 只看该作者
字符串中的引号

参阅特性

如果必须构建要连接的字符串,可能需要在一个字符串中嵌入另一个字符串,或在字符串中嵌入一个字符串变量。下列情况需要在字符串中嵌套另一个字符串:


  • 为域聚合函数指定条件时。
  • 为Find方法指定条件时。
  • 为窗体的Filter或ServerFilter属性指定条件时。
  • 创建 SQL 字符串时。


在所有这些实例中,Microsoft Access 必须将字符串传递给Microsoft Jet 数据引擎。例如,为域聚合函数指定 criteria 参数时,Microsoft Access 必须计算所有的变量,将它们连接为一个字符串,然后将整个字符串传递给 Jet 数据库引擎。

如果嵌入了一个数值变量,Microsoft Access 将计算该变量并简单地将值连接到字符串。然而,如果变量是文本字符串,生成的条件字符串将在字符串中包含另一个字符串。字符串中的另一个字符串必须由字符串分隔符来标识,否则,Jet 数据库引擎将不能确定应该使用该字符串的哪一部分。

字符串分隔符实际上不是变量自身的某一部分,但是它们必须包含在 criteria 参数的字符串中。有三种不同的方法可以建立 criteria 参数的字符串。每一种方法所产生的 criteria 参数应该如下列示例之一:
  1. "[LastName] = 'Smith'"
复制代码

               

– 或者–
  1. "[LastName] = ""Smith"""
复制代码

               

包含单引号

应该在 criteria 参数中包含单引号,这样在将变量值连接到字符串中时,它就会包含在单引号中。例如,假设您的 criteria 参数必须包含一个叫做
  1. strName
复制代码
的字符串变量。可以如下所示构建 criteria 参数:
  1. "[LastName] = '" & strName & "'"
复制代码

               

在计算变量
  1. strName
复制代码
的值并将它连接到 criteria 字符串后,criteria 变量变为:
  1. "[LastName] = 'Smith'"
复制代码

               

注释  这种语法不允许在变量自身的值中使用单引号 (')。如果字符串变量的值包含单引号,Microsoft Access 将会产生一个运行时错误。如果变量可能代表包含单引号的值,请考虑使用在下节中讨论的其他语法形式。

包含双引号

应该在 criteria 参数中包含双引号,这样在计算变量值时,其结果就会包含在双引号中。在字符串中,必须使用两组双引号来代表一组双引号。可以如下所示构建 criteria 参数:
  1. "[LastName] = """ & strName & """"
复制代码

               

当计算变量
  1. strName
复制代码
的值并将它连接到 criteria 参数后,每组双引号被一个单引号替换。criteria 参数变为:
  1. "[LastName] = 'Smith'"
复制代码

               

这种语法可能看似比单引号语法复杂,但是它允许在 criteria 参数中嵌入含有一个单引号的字符串,它也允许在嵌入的字符串中嵌套一个或多个字符串。

包含代表双引号的变量

可以创建一个代表双引号的字符串变量,并将该变量与变量值一起连接到 criteria 参数中。双引号的 ANSI 表示法是 Chr$(34);可以将该值赋给字符串变量
  1. strQuote
复制代码
。然后可以如下所示构建 criteria 参数:
  1. "[LastName] = " & strQuote & strName & strQuote
复制代码

               

当计算出变量值并将其连接到 criteria 参数后,criteria 参数变为:
  1. [LastName] = "Smith"
复制代码

               
3#
 楼主| 发表于 2007-5-8 17:31:00 | 只看该作者
这么多~[em01]还得仔细研究研究,谢谢了!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-5 18:12 , Processed in 0.091373 second(s), 26 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表