ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 2398|回复: 4

这个VBA语句与ACC有什么问题?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2006-6-20 17:26 | 显示全部楼层 |阅读模式
下面是在用的一个程式中抽出的部分语句,发现其有时出现问题!若更详细的资料请查看,下面地址中7楼的附件! http://club.excelhome.net/dispbbs.asp?BoardID=2&ID=171177&replyID=&skin=0 在上述附件中的加工钻孔流程表模块中的加工流程表过程中出现了以下的语句: Set rs = Nothing strSQL = "Select * from 加流程表 " rs.Open strSQL, CNN, 3, 4, 1 rs.addNew rs("输入日期") = Now: rs("班组") = "加工": rs("页码") = .Cells(2, 20) '流程表页码 rs("机台") = .Cells(19, 8): rs("下工序") = .Cells(20, 8) rs("备注") = .Cells(21, 8): rs("班次") = .Cells(22, 8) rs("生产人员") = .Cells(23, 8): rs("生产日期") = .Cells(24, 8) rs("单号") = B: rs("序号") = C rs("数量") = IIf(Val(Trim(.Cells(i, 8))) = 0, 0, .Cells(i, 8)) '因为可能的转单问题,将空的也作0来处理! rs.UpdateBatch '上面一段的作用是在网络形式下将相关的生产资料记录到一个叫做《加流程表》的数据库表中,因都是第一次记录所以用ADDNEW,现在用批量更新的模式对吗? Set rs = Nothing '总数据记录修改 '之前该表已是在入数时记入! strSQL = "Update 数据记录 Set 加数量 = iif(IsNull(加数量) ," & .Cells(i, 8) & ",加数量+" & .Cells(i, 8) & ") " & _ "where 单号 Like '" & B & "' and 序号 LIKE '" & C & "'" rs.Open strSQL, CNN, 3, 4, 1 '上面的作用是将流程表中的分散的数据集中到一个叫做《数据记录》中,因同一个单号序号的可能要分为多次生产,只在存在时才会修改。 现在的问题是:rs.addNew 到 rs.UpdateBatch一段确实已记录到数据库了! 但下面一段Update 数据记录 Set 加数量。。。。却不能记录,不知原因在那!,更难以明白的是不是所有的时候都这样!有时而已!但又找不出规律! 因为我没用on error 之类的语句!出现类型不配合问题的话一定会出错!但现在没有!要真有类型问题时第一个也不能记录的!,设置的类型是一样的 再有一个怪问题:我现在上网的这台机用同样的程序将数据记录到数据库中时会被告诉其它机独占打开了!本机重启也出现同样的结果 而用网上邻居的方式打开该数据库时,却完全正常!

TA的精华主题

TA的得分主题

发表于 2006-6-21 09:57 | 显示全部楼层

strSQL = "Update 数据记录 Set 加数量 = iif(IsNull(加数量) ," & .Cells(i, 8) & ",加数量+" & .Cells(i, 8) & ") " & _
"where 单号 Like '" & B & "' and 序号 LIKE '" & C & "'"
rs.Open strSQL, CNN, 3, 4, 1
改成一句:

docmd.runsql "Update 数据记录 Set 加数量 = iif(IsNull(加数量) ," & .Cells(i, 8) & ",加数量+" & .Cells(i, 8) & ") " & _
"where 单号 Like '" & B & "' and 序号 LIKE '" & C & "'"
试试

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-6-21 12:32 | 显示全部楼层

先谢过版主

 这个是没有定义哦 docmd,是不是串错?:)

[此贴子已经被作者于2006-6-21 12:54:43编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-6-21 12:43 | 显示全部楼层

因为我现在的语句是部分时间不行(未找到规律),所以版主的语句也要测试一段地时间才能证明是否有作用!

这种修改的语句是如何知道它是否已执行?也就是说,只用一个语句,首先确定,是否存在要修改的记录,再就是存在,如何才知道数据已被修改?

就如现在的情况,这张表本来就有汇总的功能,要没有这张表在后在的查询中将出现大串的语句!

这张表是中介的作用!不会让人查出来,不是偶然的因素,还不知道出了问题,所以要能有上面的及时自我检查功能就好多了!

TA的精华主题

TA的得分主题

发表于 2006-6-23 15:24 | 显示全部楼层
docmd.RunSQL 没有定义?你是在ACCESS中运行的吗?
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-16 01:47 , Processed in 0.029153 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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