设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[查询] 单双引号如何应用?

[复制链接]
跳转到指定楼层
1#
发表于 2020-10-13 21:23:58 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
想对表中独生子的关系字段由"长子"批量更新为"子",用更新查询 :UPDATE 族人信息 SET 族人信息.关系 = "子" WHERE (((族人信息.关系)="长子") AND ((DCount("*","族人信息","关系 ALIKE '%子' AND 承上码=" & [承上码]))=1));可以实现.但加上CurrentDb.Execute 如下:
CurrentDb.Execute "UPDATE 族人信息 SET 族人信息.关系 = '子'  WHERE (((族人信息.关系)='长子') AND ((DCount('*','族人信息','关系 ALIKE '%子' AND 承上码=' & [承上码]))=1));" 出错,,看了许多介绍不得其解.只好
请高手帮助
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
5#
 楼主| 发表于 2020-10-14 21:28:01 | 只看该作者
roych的帮助使我理清了头绪,找到了办法,问题得到解决,谢谢roych!!!
   改成这样就达到目的了:   CurrentDb.Execute "UPDATE 族人信息 SET 族人信息.关系 = ""子"" WHERE (((族人信息.关系)=""长子"") AND ((DCount(""*"",""族人信息"",""关系 ALIKE '%子' AND 承上码="" & [承上码] ))=1));"
   
4#
发表于 2020-10-14 16:50:11 | 只看该作者
付谦 发表于 2020-10-14 15:38
我试了提示找不到字段,现将附件附上,进入窗体点击命令按钮.

前面没看特别留意,这个问题涉及了转义字符的情况:
  1. "UPDATE 族人信息 SET 族人信息.关系 = '子' WHERE (((族人信息.关系)='长子') AND ((DCount('*','族人信息','关系 ALIKE ""%子"" AND 承上码=" & [承上码] & "'))=1));"
复制代码
大致应该是这样。值得注意的是这段:
'关系 ALIKE ""%子"" AND 承上码=" & "'))=1));"由于like部分带有引号,因此,如果都是单引号的话,就和“关系”前面的单引号成为一对儿,这时候就出错了。因此需要改为双引号。但双引号又有可能和“update”前面的双引号成为一对儿,因此需要使用一对儿双引号,这样才能完成操作。这应该是相对简单的写法了。复杂一点的写法可以参考下下面:
  1. "UPDATE 族人信息 SET 族人信息.关系 = ""子"" WHERE (((族人信息.关系)=""长子"") AND ((DCount(""*"",""族人信息"",""关系 ALIKE '%子' AND 承上码=" & [承上码] & """))=1));"
复制代码
'%子'部分不变,但其他的就。。。。很容易搞混了。更详细的内容请参考以下帖子:
斗天斗地斗引号---Rar压缩及解压文件示例
附件供参考:

PS:原来的代码里没有控件[承上码],我加了组合框。美化什么的,请自行处理。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
3#
 楼主| 发表于 2020-10-14 15:38:39 | 只看该作者
我试了提示找不到字段,现将附件附上,进入窗体点击命令按钮.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
2#
发表于 2020-10-14 09:06:06 | 只看该作者
大致应该是这样:
CurrentDb.Execute "UPDATE 族人信息 SET 族人信息.关系 = '子'  WHERE (((族人信息.关系)='长子') AND ((DCount('*','族人信息','关系 ALIKE '%子' AND 承上码='" & [承上码]&"))=1));"
变量部分需要单独拎出来。前后加上双引号。请自行对比你的原代码:
CurrentDb.Execute "UPDATE 族人信息 SET 族人信息.关系 = '子'  WHERE (((族人信息.关系)='长子') AND ((DCount('*','族人信息','关系 ALIKE '%子' AND 承上码=' & [承上码]))=1));"
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-12-1 17:55 , Processed in 0.091381 second(s), 30 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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