设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 5009|回复: 12
打印 上一主题 下一主题

[查询] 如何用VBA代码来表示更新查询?

[复制链接]
跳转到指定楼层
1#
发表于 2009-2-16 18:52:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如何用VBA代码来表示更新查询呢?语法应该是什么样的?谢谢指教了!!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2009-2-16 19:02:58 | 只看该作者
dim sql as string
sql="UPDATE 表 SET 字段 = 更新值;"
docmd.runsql sql

或者:

docmd.runsql "UPDATE 表 SET 字段 = 更新值;"
3#
 楼主| 发表于 2009-2-16 19:13:12 | 只看该作者
因为我的更新查询特别长,我这样设了后,提示语法错误码:sql="UPDATE 生产日记录表 SET 生产日记录表.粉碎总产量 = Forms!生产日记录表!Text45, 生产日记录表.入库合格品总量 = Forms!生产日记录表!Text43, 生产日记录表.投入原材料总量 = Forms!生产日记录表!Text44, 生产日记录表.配料产生不良品量 = Forms!生产日记录表!Text59, 生产日记录表.生产完后产生粗粉量 = Forms!生产日记录表!Text105, 生产日记录表.投入杂料回用料量合计 = Forms!生产日记录表!Text51, 生产日记录表.投入待加粉量合计 = Forms!生产日记录表!Text107, 生产日记录表.当场消化错料量合计 = Forms!生产日记录表!Text111, 生产日记录表.新箱入库数量 = Forms!生产日记录表!Text128, 生产日记录表.旧箱入库数量 = Forms!生产日记录表!Text126, 生产日记录表.[25KG新箱入库数量] = Forms!生产日记录表!Text165, 生产日记录表.[20KG新箱入库数量] = Forms!生产日记录表!Text167, 生产日记录表.[25KG旧箱入库数量] = Forms!生产日记录表!Text169, 生产日记录表.[20KG旧箱入库数量] = Forms!生产日记录表!Text171
WHERE (((生产日记录表.生产单编号)=[Forms]![生产日记录表]![生产单编号]));"
4#
发表于 2009-2-16 19:21:56 | 只看该作者
本帖最后由 todaynew 于 2009-2-16 19:29 编辑

可采用
sql=“字符串”
sql=sql+“字符串”
多用几次sql=sql+“字符串”,便可逐步将sql语句赋值了

sql="UPDATE 生产日记录表 "
sql=sql+"SET 粉碎总产量 = Forms!生产日记录表!Text45, 入库合格品总量 = Forms!生产日记录表!Text43, 投入原材料总量 = Forms!生产日记录表!Text44, 配料产生不良品量 = Forms!生产日记录表!Text59, 生产完后产生粗粉量 = Forms!生产日记录表!Text105, "
sql=sql="投入杂料回用料量合计 = Forms!生产日记录表!Text51, 投入待加粉量合计 = Forms!生产日记录表!Text107, 当场消化错料量合计 = Forms!生产日记录表!Text111, 新箱入库数量 = Forms!生产日记录表!Text128, 旧箱入库数量 = Forms!生产日记录表!Text126, "
sql=sql+"[25KG新箱入库数量] = Forms!生产日记录表!Text165, [20KG新箱入库数量] = Forms!生产日记录表!Text167, [25KG旧箱入库数量] = Forms!生产日记录表!Text169, [20KG旧箱入库数量] = Forms!生产日记录表!Text171 "
sql=sql+"WHERE (((生产日记录表.生产单编号)=[Forms]![生产日记录表]![生产单编号]));"

还可以写成:
sql="UPDATE 生产日记录表 "
sql=sql+"SET 粉碎总产量 = " & me.Text45 & ", 入库合格品总量 = " & me.Text43 & ", 投入原材料总量 = " & me.Text44..........
5#
发表于 2009-2-16 19:25:47 | 只看该作者
CurrentDb.Execute比docmd.runsql好
6#
 楼主| 发表于 2009-2-16 19:26:45 | 只看该作者
请问,我不是太理解啊,能不能帮我稍稍写一下啊?谢谢
7#
发表于 2009-2-16 19:30:54 | 只看该作者
请问,我不是太理解啊,能不能帮我稍稍写一下啊?谢谢
hzwyj 发表于 2009-2-16 19:26

改了,后面用me的没有写完,你仿写吧,不是很难。
8#
 楼主| 发表于 2009-2-16 19:38:21 | 只看该作者
谢谢todaynew,我分开写后就可以了。我看了henry D.SY所写的“CurrentDb.Execute比docmd.runsql好”,请问,这如何表达呢?好在什么地方呢?请教两位,谢谢!!
9#
发表于 2009-2-16 19:50:27 | 只看该作者
谢谢todaynew,我分开写后就可以了。我看了henry D.SY所写的“CurrentDb.Execute比docmd.runsql好”,请问,这如何表达呢?好在什么地方呢?请教两位,谢谢!!
hzwyj 发表于 2009-2-16 19:38


他也给我推荐了好几次,我没怎么用过。好像是速度快一些吧。详细的需要他解释,呵呵。
10#
 楼主| 发表于 2009-2-16 19:55:39 | 只看该作者
那就再请教一下henry D.SY 吧,谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-15 00:48 , Processed in 0.078598 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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