急:请帮忙解决VB调用数据库出现错误91的问题

MissL_csdn 2016-03-09 09:24:40
我想窗体load时连接ACCESS数据库,代码如下:

Option Explicit
Dim cnn As New ADODB.Connection
Dim cmd As New ADODB.Command
Dim rs As ADODB.Recordset

Private Sub Form_Activate()
Dim sql1 As String
Set cnn = New ADODB.Connection
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\glnhpj.mdb;Persist Security Info=False"
sql1 = "select * from user"
Set cmd.ActiveConnection = cnn
cmd.CommandType = adCmdText
cmd.CommandText = sql1
rs.Open sql1, cnn, adOpenKeyset, adLockOptimistic
Text1.SetFocus
End Sub


运行时系统提示:实时错误‘91’,对象变量或With块变量未设置。调试时指向“ rs.Open sql1, cnn, adOpenKeyset, adLockOptimistic”这条语句。可是,相应的数据库、数据表都没问题的,在ACCESS中运行那句 "select * from user"是一切正常的,能显示内容的。请各位大侠们帮忙找找究竟是哪里出问题了。另外,若在模块中设置了数据库的连接cn,代码如下
Public adocon As New ADODB.Connection
Public adors As New ADODB.Recordset
'Public cmd As New ADODB.Command

Public Function cn() As ADODB.Connection '定义返回一个数据库连接
Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\glnhpj.mdb;Persist Security Info=False"
End Function


那在上述的窗体Form_Activate()中是否可以用的“ Set cnn = cn”代替第2、3行?
...全文
217 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
MissL_csdn 2016-04-15
  • 打赏
  • 举报
回复
谢谢各位大侠的指教!确实是由于urer表名的问题。问题已经解决了,谢谢大家的热心! 我是新手,不知怎么給分各位大侠哦。能告诉我吗?
vansoft 2016-03-22
  • 打赏
  • 举报
回复
Dim rs As New ADODB.Recordset 加new关键字,定义时不加,用之前得New一下。
ZHRXJR 2016-03-18
  • 打赏
  • 举报
回复
Option Explicit
Dim cnn As New ADODB.Connection '数据库连接对象
Dim rs As New ADODB.Recordset '记录集对象
'有这二个对象足矣

Private Sub Form_Activate()
Dim sql1 As String
Call cn(cnn)
sql1 = "select * from user"
rs.Open sql1, cnn, adOpenKeyset, adLockOptimistic
'数据表操作语句



rs.Close '关闭记录集对象
cnn.Close '关闭数据库连接对象
End Sub

Sub cn(cnn)
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\glnhpj.mdb;Persist Security Info=False"
End Sub
MissL_csdn 2016-03-10
  • 打赏
  • 举报
回复
试过把代码放LOAD中,问题仍然。 也试过把sql1改为sql1 = "select * from [user]",问题仍然;把数据表改名了不叫user了代入,问题仍然。 大侠们,问题还是没办法解决啊,还得求救啊!拜托了!
冰不孤独 2016-03-09
  • 打赏
  • 举报
回复
放在LOAD里面
饮水需思源 2016-03-09
  • 打赏
  • 举报
回复
sql1 = "select * from [user]" user是系统关键字,要用方括号括起来

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧