易魂网:VB里面连access报“对象变量或with块变量没有设置”怎么解决?详细点好么?我菜得可以~~

来源:百度文库 编辑:高校问答 时间:2024/05/10 06:15:41
VB里面连access报“对象变量或with块变量没有设置”怎么解决?详细点好么?我菜得可以~~
这行: cmd.CommandText = " select houseid,posx,posy,posz From place Where boxid = 0 order by houseid,posz,posx,posy"
Set rs = cmd.Execute
If Not (rs.BOF Or rs.EOF) Then
'取最合适的空位
rs.MoveFirst
txtHouseid.Text = rs("houseid")
txtX.Text = rs("posx")
txtY.Text = rs("posy")
txtZ.Text = rs("posz")
模块里面是这样写的:
Option Explicit

Public conn As ADODB.Connection
Public cmd As ADODB.Command
Sub Main()
'建立数据库连接
Set conn = New ADODB.Connection
Set cmd = New ADODB.Command

conn.CursorLocation = adUseClient
cmd.CommandType = adCmdText
If conn.State <> adStateClosed Then
conn.Close
End If
conn.Open "driver={Microsoft Access Driver (*.mdb)};DBQ=" & App.Path & "C:\Documents and Settings\朱忠烈\桌面\DB1.mdb;uid=;PWD=;"

Set cmd.ActiveConnection = conn
Form1.Show
End Sub

能将代码写的完整一点吗?我没多看就已发现你的一个错误:

conn.Open "driver={Microsoft Access Driver (*.mdb)};DBQ=" & App.Path & "C:\Documents and Settings\朱忠烈\桌面\DB1.mdb;uid=;PWD=;"

你是想连接 C:\Documents and Settings\朱忠烈\桌面\DB1.mdb 这个数据库文件吧?那么,你用了绝对路径,前面就不用写App.Path &了,App.Path 表示当前程序的目录。

你的程序的错误应该是上面的问题,因为上面的问题导致了你无法正确连接到数据库,那么conn也就无法打开,conn也就为nothing了,cmd对象更不能执行任何东西了,因此会出现“对象未设置”的错误。