我正在尝试在VB6中执行查询。目前我有这个:
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Private Sub Form_Load()
Set conn = New ADODB.Connection
conn.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = " & App.Path & "\DB1.mdb; Persist Security Info = False"
conn.Open
End Sub
Private Sub Command1_Click()
Dim strSQL As String
strSQL = "SELECT * FROM customers WHERE name = " & Text2.Text
rs.Open strSQL, conn
End Sub
这会产生object variable or with block variable not set
。
我是VB和Access数据库的新手,所以任何答案或指向优秀教程的链接都会受到赞赏。
答案 0 :(得分:4)
rs
永远不会被实例化。尝试
Dim rs As New ADODB.Recordset
答案 1 :(得分:2)
添加
Set rs = New ADODB.Recordset
在运行rs.Open之前。 与连接相同的想法,需要首先实例化对象。 除此之外你还可以。
当你完成它们时关闭rs和连接也是一种好习惯。
答案 2 :(得分:1)
您没有在编码中实例化rs
Dim rs As New ADODB.Recordset
同时检查您的查询 如果名称是文本类型
,则使用name
条件中的where
,如下所示
strSQL = "SELECT * FROM customers WHERE name = '" & Text2.Text & "'