设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[窗体] 更新数据时出现了错误

[复制链接]
跳转到指定楼层
1#
发表于 2012-5-25 13:22:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Dim abc
Dim mydb As ADODB.Connection
Dim Rs As New ADODB.Recordset
Dim Rs1 As New ADODB.Recordset
Dim Rs2 As New ADODB.Recordset
Set mydb = CurrentProject.Connection

a = [Forms]![窗体1]![工号]
b = [Forms]![窗体1]![开始日期]
c = [Forms]![窗体1]![截止日期]
d = [Forms]![窗体1]![时间]
e = [Forms]![窗体1]!text123  '假期类别

Sql = "SELECT 部门,班组,工种,姓名,工号, 日期, 退社日期, 锁定, 白班, 加班, 事假, 病假, 产停, 婚丧假, 公假, 工伤, 年公休, 旷工, 放假, 调休, 公出, 休息 FROM Tb_考勤_员工出勤表" _
& " WHERE 工号='" & a & "' AND 日期 >= #" & b & "# And 日期 <=#" & c & "# AND 退社日期 Is Null AND 锁定=0;"
Rs.Open Sql, mydb, adOpenStatic, adLockReadOnly

Sql1 = "select * from Tb_考勤_不能批量请假_temp"
Rs1.Open Sql1, mydb, 2, 3

Sql2 = "SELECT * FROM Tb_考勤_员工出勤表 WHERE 工号='" & a & "' AND 日期 >= #" & b & "# And 日期 <=#" & c & "# AND 退社日期 Is Null AND 锁定=0;"
Rs2.Open Sql2, mydb, 2, 3

For i = 1 To Rs.RecordCount
If Rs.EOF = True Then
MsgBox "没有符合条件的记录!"
Else
abc = Val(Rs!白班) + Val(Rs!加班) + Val(Rs!事假) + Val(Rs!病假) + Val(Rs!产停) + Val(Rs!婚丧假) + Val(Rs!公假) + Val(Rs!工伤) + Val(Rs!年公休) + Val(Rs!旷工) + Val(Rs!放假) + Val(Rs!调休) + Val(Rs!公出) + Val(Rs!休息)

If IsNull(abc) Or abc = 0 Then
Rs2(e) = d
Rs2.Update     '这里出现了错误【由于您和其他用户试图同时改变同一数据,导致microsoft jet 数据引擎停止进程】
                       '但是实际上并没有其他用户在使用(晚上下班后也有这样的问题),请帮我看看是什么问题,谢谢!
Else
Rs1.AddNew
Rs1("部门") = Rs2("部门")
Rs1("班组") = Rs2("班组")
Rs1("工种") = Rs2("工种")
Rs1("姓名") = Rs2("姓名")
Rs1("工号") = Rs2("工号")
Rs1("日期") = Rs2("日期")
Rs1("当前添加的类别") = e
Rs1("已考勤") = abc
Rs1.Update
End If
    Rs.MoveNext
    Rs2.MoveNext
End If
Next


本帖子中包含更多资源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2012-5-25 14:07:51 | 只看该作者
rs和rs2是一个玩意,直接用rs更新即可。
3#
 楼主| 发表于 2012-5-25 15:06:31 | 只看该作者
todaynew 发表于 2012-5-25 14:07
rs和rs2是一个玩意,直接用rs更新即可。


改了以后,就这样了


本帖子中包含更多资源

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

x
4#
发表于 2012-5-25 16:13:19 | 只看该作者
干嘛打开这么多记录集?
5#
 楼主| 发表于 2012-5-25 16:40:39 | 只看该作者
Henry D. Sy 发表于 2012-5-25 16:13
干嘛打开这么多记录集?

呵呵,是写多了记录集,现在改成二个了
6#
 楼主| 发表于 2012-5-25 16:40:56 | 只看该作者
Sql = "SELECT 部门,班组,工种,姓名,工号, 日期, 退社日期, 锁定, 白班, 加班, 事假, 病假, 产停, 婚丧假, 公假, 工伤, 年公休, 旷工, 放假, 调休, 公出, 休息 FROM Tb_考勤_员工出勤表" _
& " WHERE 工号='" & a & "' AND 日期 >= #" & b & "# And 日期 <=#" & c & "# AND 退社日期 Is Null AND 锁定=0;"

用这句代码建立了查询,在查询界面是可以新增和修改数据的。
7#
发表于 2012-5-25 17:34:44 | 只看该作者
  1. Rs.Open Sql, mydb, adOpenStatic, adLockReadOnly
复制代码
只读的游标是没法更新的,请选择记录集的其它游标类型。
8#
发表于 2012-5-26 20:21:07 | 只看该作者
两个记录集操作一个数据源
肯定出问题
关闭一个再操作另外一个试试
9#
发表于 2012-5-27 13:19:03 | 只看该作者
楼主是vb做的吧?
10#
 楼主| 发表于 2012-5-28 10:27:05 | 只看该作者
roych 发表于 2012-5-25 17:34
只读的游标是没法更新的,请选择记录集的其它游标类型。

谢谢,问题解决了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-22 15:40 , Processed in 0.095722 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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