ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 急!急!急!关于SQL在excel中的问题,在线等

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-11-17 21:07 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
各位大佬,晚上好!现在遇到一个问题,实在无法解决,网上搜索相关问题也束手无策,特来此求助各位版主和路人高手们
程序错误提示:microsoft accesss数据库引擎已停止该进程,因为您和其他用户正在尝试同时更改同一数据

操作步骤时这样的:
1、打开工作簿,单击“主页”上的M6单元格,弹出移库界面,然后单击“开单”按钮,比如在“产品代码”框中输入产品代码40000053,单击查询按钮,将
     库存表中所有该物料显示在列表框中
2、在列表框中,双击选择库位号为“B11-06-04”的这条记录,此时会显示到下列的各列表框中,移入数量和移入库位,我手动分别输入:500,B11-05-03
     ,然后点“确认移库”按钮,此时,多数情况下可以成功:就是B11-06-04这个库位上的数量会自动减,而B11-05-03上存放的原物料如果物料信息与即将      移的物料信息一致则增加,否则就新增一条记录到库存表中
3、当我再次输入这个物料代码40000053来查询,后面步骤与第2步相反:就是在列表框中双击选择库位号为“B11-05-03”的这条记录(上一个步骤该库位是      移入,而现在是移出),移入数量和移入库位,我手动分别输入:500,B11-06-04。再单击“移库“按钮时,就提示该错误:microsoft accesss数据库引      程,因为您和其他用户正在尝试同时更改同一数据。但问题是一直都是一个人再使用
4、我很困惑为什么有时候可以,有时候不行。是不是当本次窗体打开后,到关闭前,如果当前操作的记录,再之前已经操作过了,是不是就不能去操作了。请各位大佬帮忙看看是不是我的代码写的有问题,谢谢各位了。拜托大家!!

Non-GMP进销存.zip

666.26 KB, 下载次数: 21

附件

TA的精华主题

TA的得分主题

发表于 2019-11-18 08:00 来自手机 | 显示全部楼层
microsoft accesss数据库引      程,因为您和其他用户正在尝试同时更改同一数据。但问题是一直都是一个人再使用
感觉是代码锁定了2个进程同时修改同一条数据。

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-11-18 09:57 | 显示全部楼层
zpy2 发表于 2019-11-18 08:00
microsoft accesss数据库引      程,因为您和其他用户正在尝试同时更改同一数据。但问题是一直都是一个人 ...

是我写的有问题吗? 有什么办法可以解决啊

TA的精华主题

TA的得分主题

发表于 2019-11-18 10:19 来自手机 | 显示全部楼层
用心修炼 发表于 2019-11-18 09:57
是我写的有问题吗? 有什么办法可以解决啊

我没有调试,建议你用数据库保存数据,另外,conn链接对象一般不要声明为public,及时打开关闭。
也有可能copyfromrecordset这句,和其他的有冲突造成的。

TA的精华主题

TA的得分主题

发表于 2019-11-18 10:35 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
应该把数据保存在Access数据库中

TA的精华主题

TA的得分主题

发表于 2019-11-18 10:36 | 显示全部楼层
问题的原因非常简单,出在这句上
【Set rsts = cnnobj.Execute(sql_1)】
---Recordset  默认的上锁类型 是【只读】adLockReadOnly ,所以一般不用这种方式,而使用open方法

你的代码中,可以先关闭rsts
    If rsts.State = 1 Then rsts.Close'加上这句就可以了
    cnnobj.Execute sql_1

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2019-11-18 10:41 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
要不就在每个插入和查询操作之前,执行Thisworkbook.save true

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-11-18 10:57 | 显示全部楼层
uceadf 发表于 2019-11-18 10:41
要不就在每个插入和查询操作之前,执行Thisworkbook.save true

谢谢回复,试了一下,还是有点问题

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-11-18 11:03 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 用心修炼 于 2019-11-18 11:04 编辑
lsdongjh 发表于 2019-11-18 10:36
问题的原因非常简单,出在这句上
【Set rsts = cnnobj.Execute(sql_1)】
---Recordset  默认的上锁类型  ...

老师,按照您说的,之前那个问题没出现了,非常感谢。现在又出现一个新问题:用insert into在向库存表中插入数据时,不是出现在数据区域末尾的下一行,比如:库存表中的数据到第100行,下面都是空的,理想状态是放在第101行,但是插入后不在101行,却跑到后面去了,这又是啥原因啊。

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-11-18 11:49 | 显示全部楼层
lsdongjh 发表于 2019-11-18 10:36
问题的原因非常简单,出在这句上
【Set rsts = cnnobj.Execute(sql_1)】
---Recordset  默认的上锁类型  ...

刚才测试过了,发现即使是空白行,只要设置过任何单元格格式,都认为该行是有内容,删除全部格式后,就能正常在数据行末尾的空白行出新增,看来excel作为后台数据的存储,还是有很多鸡肋的地方。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-3-29 04:02 , Processed in 0.039415 second(s), 11 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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