Office中国论坛/Access中国论坛

标题: 请高手老师帮着将这个系统补充完整。 [打印本页]

作者: wangxy689    时间: 2011-4-6 23:46
标题: 请高手老师帮着将这个系统补充完整。
本帖最后由 wangxy689 于 2011-4-14 06:46 编辑

请高手老师帮着将这个系统补充完整。

作者: todaynew    时间: 2011-4-7 10:00
本帖最后由 todaynew 于 2011-4-7 10:01 编辑
wangxy689 发表于 2011-4-6 23:46
上次在roych老师和煮江品茶老师的帮助下,做成了这个程序。现在这个程序需要增加一个窗体,使操作更完整。我 ...


问题1解答:DoCmd.OpenForm "抽检工作台"
问题2和3解答:请在表中增加对应字段,用以保存数据。

作者: styhs    时间: 2011-4-7 10:09
看看是否符合
作者: roych    时间: 2011-4-7 11:03
wangxy689 发表于 2011-4-6 23:46
上次在roych老师和煮江品茶老师的帮助下,做成了这个程序。现在这个程序需要增加一个窗体,使操作更完整。我 ...

嗯,不能太懒了。俺给出一段代码(贴到登录的单击事件里)和一个回帖实例,LZ先看着做做,不懂再发问,如何?

  1. On Err GoTo ErrHdr:
  2. If IsNull(Me.用户名) Then
  3. MsgBox "没有这个用户,请您重新选择", vbCritical, "错误提示"
  4. Me.用户名.SetFocus
  5. ElseIf IsNull(Me.密码) Then
  6. MsgBox "请输入密码", vbCritical, "错误提示"
  7. Me.Txt_Pwd.SetFocus
  8. 'T_User为用户数据表;Pwd和UserName分别为该表中的密码和用户名字段
  9. ElseIf DLookup("pwd", "T_User", "UserName='" & 用户名 & "'") <> Me.密码 Then
  10. MsgBox "密码错,请重新登录", vbCritical, "错误提示"
  11. Else
  12. DoCmd.OpenForm "主窗体"

  13. DoCmd.Close acForm,Me.Name

  14. End If
  15. Err_Exit:
  16. Exit Sub
  17. ErrHdr:
  18. MsgBox "错误代码:" & Err.Number & Chr(13) & Chr(13) & "错误描述:" & Err.Description, vbCritical, "出错提示"
  19. Resume Err_Exit
复制代码
      需要提醒的是,必须设置密码的掩码为“密码”,在数据表中同样也这样设置掩码。
      保存记录可以参考以下帖子,前提是先建立一个审核表,然后再用Docmd.runSQL "Insert Into 审核表 Values("&窗体控件&",“&窗体控件&")"的方式来追加数据。
     需要注意的是:
     1、文本类型,前后必须加上单引号(’)。
     2、日期型,前后必须加上井号(#)。
      http://www.office-cn.net/forum-viewthread-tid-96184-highlight-%CC%ED%BC%D3%2B%B6%E0%B8%F6.html


作者: znrual    时间: 2011-4-7 15:37
学习中
作者: wangxy689    时间: 2011-4-7 21:30
本帖最后由 wangxy689 于 2011-4-13 19:27 编辑

回复 styhs 的帖子

谢谢老师,符合,但是审核结论不能实现更新,会带到下一条记录里,需要手工删除遗留的审核结论,这个怎么做,我不会,请教教我吧


作者: wangxy689    时间: 2011-4-13 19:13
回复 roych 的帖子

这个登陆密码的问题,我当时用宏都已经解决了。我要找的答案是最后保存审验结论的问题。
作者: roych    时间: 2011-4-14 11:04
本帖最后由 roych 于 2011-4-14 11:15 编辑

回复 wangxy689 的帖子

前面也说过了,由于这些数据并非绑定数据,因此是必须逐条追加。换句话说,除非每条的结论都是一样,否则,你应该每条都输入不同的值,这样追加后的数据才是正确的数据。
或者稍稍修改下代码,追加完毕后清空之前输入的值,那么因为之前设置了结论为空时不追加而不会把默认值给追加上去了。
  1. Private Sub 保存记录_Click()
  2. Dim FInfo As VbMsgBoxResult
  3. '--
  4. FInfo = MsgBox("记录将保存到[已审核]表,请再次确认...", vbQuestion + vbYesNo, "程序提示")
  5. If FInfo = vbNo Then Exit Sub
  6. '--
  7. If Me.审核结论 = "" Then
  8. Exit Sub
  9. Else
  10. With CurrentDb
  11. .Execute "DELETE * FROM 已审核 WHERE ID = " & Me.ID
  12. .Execute "INSERT INTO 已审核(ID, 申请序列号, 机构名称, 保单号, 险种代码, 保全受理类型, 变更类型, " _
  13. & "申请资格人姓名, 申请资格人身份证, 县区柜员工号, 审核人员工号, 给付方式, 金额, " _
  14. & "小额现金支付状态, 申请时间, 审核时间, 操作状态) " _
  15. & "SELECT ID, 申请序列号, 机构名称, 保单号, 险种代码, 保全受理类型, 变更类型, " _
  16. & "申请资格人姓名, 申请资格人身份证, 县区柜员工号, 审核人员工号, 给付方式, 金额, " _
  17. & "小额现金支付状态, 申请时间, 审核时间, 操作状态 FROM 临时表 WHERE ID = " & Me.ID
  18. .Execute "UPDATE 已审核 SET 审核结论 = '" & Me.审核结论 & "', 审核意见 = '" & Me.审核意见 & "' " _
  19. & "WHERE ID = " & Me.ID
  20. End With
  21. End If
  22. Me.审核结论 = ""
  23. Me.审核意见 = ""
  24. Me.Requery
  25. End Sub
复制代码


作者: wangxy689    时间: 2011-4-15 07:16
标题: roych老师,我增加了删除临时表的语句,总出错。
本帖最后由 wangxy689 于 2011-4-15 07:22 编辑

[attach]45351[/attach]回复 roych 的帖子
roych老师,你好,谢谢你的指导。我增加了一个删除临时表中被窗体抽取的记录语句,目的是让抽取后的数据不再窗体中出现,但是我发现我增加的语句总是出错,请roych老师,多指教,谢谢。我增加的语句用红色标识出来了,您看看错在哪里了,有没有其他解决办法。
Private Sub 保存记录_Click()

Dim FInfo As VbMsgBoxResult

'--

FInfo = MsgBox("记录将保存到[已审核]表,请再次确认...", vbQuestion + vbYesNo, "程序提示")

If FInfo = vbNo Then Exit Sub[attach]45351[/attach]

'--

If Me.审核结论 = "" Then

Exit Sub

Else

With CurrentDb

.Execute "DELETE * FROM 已审核 WHERE ID = " & Me.ID

.Execute "INSERT INTO 已审核(ID, 申请序列号, 机构名称, 保单号, 险种代码, 保全受理类型, 变更类型, 申请资格人姓名, 申请资格人身份证, 县区柜员工号, 审核人员工号, 给付方式, 金额, 小额现金支付状态, 申请时间, 审核时间, 操作状态) SELECT ID, 申请序列号, 机构名称, 保单号, 险种代码, 保全受理类型, 变更类型, 申请资格人姓名, 申请资格人身份证, 县区柜员工号, 审核人员工号, 给付方式, 金额, 小额现金支付状态, 申请时间, 审核时间, 操作状态 FROM 临时表 WHERE ID = " & Me.ID

.Execute "UPDATE 已审核 SET 审核结论 = '" & Me.审核结论 & "', 审核意见 = '" & Me.审核意见 & "' WHERE ID = " & Me.ID



End With

End If

Me.审核结论 = ""

Me.审核意见 = ""

Me.Requery
DoCmd.RunSQL "Delete * from  临时表 where 申请序列号=" & Me.申请序列号
'我增加该语句的作用是想将抽检到的数据直接从临时表中删除,我这个语句不知道错在哪里了,请roych老师指教一下。
End Sub

作者: roych    时间: 2011-4-15 09:53
本帖最后由 roych 于 2011-4-15 09:56 编辑

“申请序列号”是文本字段类型,因此必须前后加上单引号:
DoCmd.RunSQL "Delete * from  临时表 where 申请序列号='" & Me.申请序列号&"'"
执行完之后再刷新数据:
Me.Requery


作者: zyz218    时间: 2011-4-15 12:45
为了使系统能够在不同的操作系统通用如日语、繁体等。建议数据库设计时以英文命名所有因素。
作者: wangxy689    时间: 2011-4-15 19:03
本帖最后由 wangxy689 于 2011-4-15 19:03 编辑

回复 roych 的帖子

roych 老师,你好,我插入后,总出现“编译错误、语法错误”

Private Sub 保存记录_Click()

Dim FInfo As VbMsgBoxResult

'--

FInfo = MsgBox("记录将保存到[已审核]表,请再次确认...", vbQuestion + vbYesNo, "程序提示")

If FInfo = vbNo Then Exit Sub

'--

If Me.审核结论 = "" Then

Exit Sub

Else

With CurrentDb

.Execute "DELETE * FROM 已审核 WHERE ID = " & Me.ID

.Execute "INSERT INTO 已审核(ID, 申请序列号, 机构名称, 保单号, 险种代码, 保全受理类型, 变更类型, 申请资格人姓名, 申请资格人身份证, 县区柜员工号, 审核人员工号, 给付方式, 金额, 小额现金支付状态, 申请时间, 审核时间, 操作状态) SELECT ID, 申请序列号, 机构名称, 保单号, 险种代码, 保全受理类型, 变更类型, 申请资格人姓名, 申请资格人身份证, 县区柜员工号, 审核人员工号, 给付方式, 金额, 小额现金支付状态, 申请时间, 审核时间, 操作状态 FROM 临时表 WHERE ID = " & Me.ID

.Execute "UPDATE 已审核 SET 审核结论 = '" & Me.审核结论 & "', 审核意见 = '" & Me.审核意见 & "' WHERE ID = " & Me.ID



End With

End If

Me.审核结论 = ""

Me.审核意见 = ""

DoCmd.RunSQL "Delete * from  临时表 where 申请序列号='" & Me.申请序列号&"'"
Me.Requery
End Sub

作者: roych    时间: 2011-4-15 20:40
回复 wangxy689 的帖子

那就不知道啦。。。俺做的好像没问题啊。。
[attach]45356[/attach]


作者: 红尘如烟    时间: 2011-4-16 16:45
本帖最后由 红尘如烟 于 2011-4-19 17:14 编辑

之前就做好了,但是……忘记上传了
[attach]45359[/attach]

作者: 红尘如烟    时间: 2011-4-17 13:19
改了一下,之前是在2010里面做的,我转成了2000的格式,然后在2003里面试了一下没什么问题了,你再试一下,要还有问题,那就是你的Office有问题了,重装一下
作者: lijiexiang    时间: 2011-4-18 23:00
学习下




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3