Office中国论坛/Access中国论坛

标题: 求助:碰到一个错误,不知道是怎么回事 [打印本页]

作者: williamwangc    时间: 2011-12-5 21:16
标题: 求助:碰到一个错误,不知道是怎么回事
它显示这样的错误:
错误:你所所输入表达式引用了不存在或关闭的对象
帮助:如果由于 Microsoft Office Access 无法评估事件逻辑位置而导致无法运行事件,则可能发生此错误。例如,如果将窗体的 OnOpen 属性设为“=[Field]” =,就会发生此错误,因为激发该事件时,Access 需要一个宏或事件的名称。
  1. Private Sub cmb_外协单位筛选_AfterUpdate()
  2. Me.sub_外协单位人员历史库.Form.RecordSource = "SELECT * FROM [外协单位人员历史库] WHERE [所属外协单位]= '" & Me.cmb_外协单位筛选.Value & "'"
  3. Me.sub_外协单位人员历史库.Requery
  4. End Sub

  5. Private Sub cmd_选中导出_Click()
  6. Dim q As Integer
  7. q = MsgBox("是否添加在历史库中选中的人员进入外协人员输入表中?", vbQuestion + vbYesNo + vbDefaultButton1, "注意")
  8. If q = vbYes Then
  9. Dim rst1 As ADODB.Recordset
  10. Dim rst2 As ADODB.Recordset
  11. Set rst1 = New ADODB.Recordset
  12. Set rst2 = New ADODB.Recordset
  13. rst1.Open "SELECT * FROM [外协单位人员历史库] WHERE [选中]=-1", CurrentProject.Connection, adOpenDynamic, adLockOptimistic
  14. rst2.Open "外协人员输入", CurrentProject.Connection, adOpenDynamic, adLockOptimistic
  15. Do While Not rst1.EOF
  16. rst2.AddNew
  17. rst2!所属外协单位 = rst1!所属外协单位
  18. rst2!姓名 = rst1!姓名
  19. rst2!身份证号 = rst1!身份证号
  20. rst2!籍贯 = rst1!籍贯
  21. rst2!工种 = rst1!工种
  22. rst2!特种证号 = rst1!特种证号
  23. rst2!特种证名称 = rst1!特种证名称
  24. rst2.Update
  25. Loop
  26. rst1.Close
  27. rst2.Close
  28. CurrentProject.Connection = Nothing
  29. MsgBox "导入成功"
  30. Forms!外协人员输入_子窗体.Requery

  31. Else
  32. MsgBox "导入被取消"
  33. Exit Sub
  34. End If


  35. End Sub
复制代码
我写了两个事件都是这样的错误。尤其是第一个。我觉得莫名其妙。实在找不出错误啊。
作者: williamwangc    时间: 2011-12-5 21:26
而且似乎我这个窗体不管输什么代码好像都错得样子
作者: roych    时间: 2011-12-6 22:51
1、rst1木有MoveNext语句。
2、如果还有问题,改成For i=1 to Rst2.Recordcount试试。
作者: parbe    时间: 2011-12-7 12:55
我也遇到同样的问题, 用2010的似乎有时候我这个窗体不管输什么代码好像都错得样子
作者: williamwangc    时间: 2011-12-11 13:30
该问题已解决。我重新创建了一遍这个窗体,又重新写了一遍以上的代码。 我发现用ADO的时候,如果数据来源写错,会产生很严重的错误,有时候需要删除整句的或是整段代码或整个窗体才能纠正这一个小错误。单单纠正错误的地方是不行的。否则就会出现以上的错误。




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