Foxtable(狐表)用户栏目专家坐堂 → 窗口中按钮进行新增多行操作,如何避免命令未执行完毕,而用户关闭了程序,导致数据未新增完整?


  共有3570人关注过本帖树形打印复制链接

主题:窗口中按钮进行新增多行操作,如何避免命令未执行完毕,而用户关闭了程序,导致数据未新增完整?

帅哥,在线噢!
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110788 积分:563872 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/30 20:44:00 [显示全部帖子]

按钮第一行加上代码:
vars("runing") = true
‘按钮原来其它代码for i=1 ... dim dr as row=tables(...).addnew dr(...)=... dr(...)=... dr.save next
vars("runing") = false

项目BeforeCloseProject事件
if vars("runing") = true then
    e.Cancel = True
    msgbox("请等候命令执行完毕!")
end if

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110788 积分:563872 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/30 21:40:00 [显示全部帖子]


 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110788 积分:563872 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/30 22:22:00 [显示全部帖子]

可以,但是循环多,程序一样会卡住

    for i=1 to 100
    cmd.CommandText = "Insert Into 表1 (列名1, 列名2, 列名3....) Values(值1, 值2, 值3...)"
    cmd.
ExecuteNonQuery
    next
    Connections("数据源").Commit '换一下位置
Catch ex As Exception '如果出错 
    Connections("数据源").Rollback() '回滚事务,撤销所有操作

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110788 积分:563872 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/18 15:51:00 [显示全部帖子]

这种导出无法使用进度条。除非这种循环导出的用法:http://www.foxtable.com/webhelp/topics/1148.htm

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110788 积分:563872 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/18 16:14:00 [显示全部帖子]

模式窗口是阻塞式的,和对话框一样,关闭之前,后面的代码都不会执行的

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110788 积分:563872 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/18 17:07:00 [显示全部帖子]

e.Form.Controls("Label2").text=Format(Date.now, "T")
application.doevents

注意如果有其他代码在执行,在执行的时候那么一样会阻塞计时器的处理。


 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110788 积分:563872 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/19 9:13:00 [显示全部帖子]


 回到顶部