设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[窗体] 请教ADO链接中的“要求对象”问题

[复制链接]
跳转到指定楼层
1#
发表于 2014-11-11 11:41:56 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 ty_1029 于 2014-11-11 17:08 编辑

第一个问题解决了 ,,第二个来了,代码如下,是一个选项卡的变更事件~
问题出在选择第二个选项,即If tabMain1.Value = 1 时,报错,要求对象(424错误),编辑器变黄的代码为:
rs.Open strSQL, cn, adOpenDynamic, adLockPessimistic

If tabMain1.Value = 0 or  2 时,正常。
  1. Private Sub tabMain1_Change()
  2. Dim cn     As New ADODB.Connection
  3.   Dim rs, rs1    As New ADODB.Recordset
  4.   Dim strCn     As String, strSQL, strSQL1 As String
  5. strCn = "Provider=sqloledb;Server=(local);Database=BY_CW;Uid=sa;Pwd=;"
  6. cn.Open strCn
  7.   
  8. If tabMain1.Value = 0 Then
  9. Me.frmHeader!lblFormCaption1.Caption = Me.tabMain1.Pages(0).Caption
  10. Me.frmHeader!lblFormCaption2.Caption = Me.tabMain1.Pages(0).Caption
  11. End If

  12. If tabMain1.Value = 1 Then
  13.   Dim j As Integer
  14. strSQL = "select * from BY_CW.dbo.usysRights where FSn<>0 order by FSn"
  15. rs.Open strSQL, cn, adOpenDynamic, adLockPessimistic
  16. rs.MoveFirst
  17. For j = 1 To 10
  18. Do While Not rs.EOF
  19. Me("Label" & j).Caption = rs!FUserID
  20. Me("T" & j).Value = rs!FRright
  21. Me("Te" & j).Value = rs!FRreadme
  22. j = j + 1
  23. rs.MoveNext
  24. Loop
  25. Next
  26. rs.Close
  27. Set rs = Nothing

  28. Me.frmHeader!lblFormCaption1.Caption = Me.tabMain1.Pages(1).Caption
  29. Me.frmHeader!lblFormCaption2.Caption = Me.tabMain1.Pages(1).Caption
  30. End If

  31. If tabMain1.Value = 2 Then
  32.   Dim i As Integer
  33. strSQL1 = "select * from dbo.usysItems where FItemNumber=0 order by FGrouping"
  34. rs1.Open strSQL1, cn, adOpenDynamic, adLockPessimistic
  35. rs1.MoveFirst
  36. For i = 1 To 8
  37. Do While Not rs1.EOF
  38. Me("La" & i).Caption = rs1!Fid
  39. Me("Tc" & i).Value = rs1!FGrouping
  40. Me("Tc" & i).Visible = True
  41. Me("Tct" & i).Value = rs1!FItemText
  42. Me("Tct" & i).Visible = True
  43. i = i + 1
  44. rs1.MoveNext
  45. Loop
  46. Next
  47. rs1.Close
  48. Set rs1 = Nothing
  49. Me.frmHeader!lblFormCaption1.Caption = Me.tabMain1.Pages(2).Caption
  50. Me.frmHeader!lblFormCaption2.Caption = Me.tabMain1.Pages(2).Caption
  51. End If
  52. End Sub
复制代码




分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
10#
 楼主| 发表于 2014-11-11 17:39:45 | 只看该作者
惭愧,,学习了 ,,谢谢两位~~~~~~~~~~~~
9#
发表于 2014-11-11 17:32:38 | 只看该作者
ty_1029 发表于 2014-11-11 17:29
嗯 ,见鬼了,自己倒腾好了 ,求科普
原来是Dim rs, rs1    As New ADODB.Recordset

当然有区别了。Dim rs, rs1    As New ADODB.Recordset
只定义了第二个是记录集对象,rs并不是,只是默认的变量(Variant)
如果想一句写的话,应该是:
Dim rs As New ADODB.Recordset, rs1    As New ADODB.Recordset
8#
发表于 2014-11-11 17:32:02 | 只看该作者
本帖最后由 todaynew 于 2014-11-11 17:33 编辑
ty_1029 发表于 2014-11-11 17:29
嗯 ,见鬼了,自己倒腾好了 ,求科普
原来是Dim rs, rs1    As New ADODB.Recordset

有呀。Dim rs, rs1    As New ADODB.Recordset中rs并没有确定类型
Dim strCn     As String, strSQL, strSQL1 As String中的第二个变量也没指明是string,只是这个问题不影响后面的操作而已。
7#
 楼主| 发表于 2014-11-11 17:29:57 | 只看该作者
todaynew 发表于 2014-11-11 17:25
表名或字段名错误导致。
BY_CW.dbo.usysRights是表名?

嗯 ,见鬼了,自己倒腾好了 ,求科普
原来是Dim rs, rs1    As New ADODB.Recordset

修改为
  Dim rs    As New ADODB.Recordset
  Dim rs1    As New ADODB.Recordset

就好了,有区别?
6#
发表于 2014-11-11 17:25:04 | 只看该作者
本帖最后由 todaynew 于 2014-11-11 17:28 编辑
ty_1029 发表于 2014-11-11 17:08
新问题来了, ,麻烦大侠看看

表名或字段名错误导致。
BY_CW.dbo.usysRights是表名?
5#
 楼主| 发表于 2014-11-11 17:08:48 | 只看该作者
新问题来了, ,麻烦大侠看看
4#
 楼主| 发表于 2014-11-11 12:02:28 | 只看该作者
GOOD ~~~~~~~~
非常感谢TOD~

点击这里给我发消息

3#
发表于 2014-11-11 11:52:55 | 只看该作者
也可以选项卡的change事件里设置。更简单
2#
发表于 2014-11-11 11:49:33 | 只看该作者
本帖最后由 todaynew 于 2014-11-11 11:51 编辑

IF me.选项卡.VALUE=0  THEN AA=me.选项卡.Pages(0).caption....

以上三句可以简单的写为:
AA=me.选项卡.Pages(me.选项卡.VALUE).caption

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-11 01:34 , Processed in 0.090778 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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