下面是我编写的程序,要将access数据库的内容显示出来,但是系统要么不显示结果,要不就说有一个未定义,可不可以帮我看一下到底那里出错了
Private Sub Command1_Click()
Dim cnn As ADODB.Connection
Dim sql As String
Dim rst As ADODB.Recordset
Set cnn = New ADODB.Connection
cnn.Open "Provider = Microsoft.Jet.OLEDB.4.0;Data Source=f:\贸易系统.mdb"
Set rst = New Recordset
If Check1.Value = vbChecked Then
sql = "select * from 客户表 where CustomerCode =" & Text1.Text & ""
End If
If Check2.Value = vbChecked Then
sql = "select * from 客户表 where Contact =" & Text2.Text & ""
End If
If Check3.Value = vbChecked Then
sql = "select * from 客户表 where CustomerName =" & Text3.Text & ""
End If
rst.Open sql, cnn, adOpenKeyset, adLockPessimistic
DataGrid1.AllowAddNew = False
DataGrid1.AllowDelete = False
DataGrid1.AllowUpdate = False
Set DataGrid1.DataSource = rst
End Sub
Private Sub Command1_Click()
Dim cnn As ADODB.Connection
Dim sql As String
Dim rst As ADODB.Recordset
Set cnn = New ADODB.Connection
cnn.Open "Provider = Microsoft.Jet.OLEDB.4.0;Data Source=f:\贸易系统.mdb"
Set rst = New Recordset
If Check1.Value = vbChecked Then
sql = "select * from 客户表 where CustomerCode =" & Text1.Text & ""
End If
If Check2.Value = vbChecked Then
sql = "select * from 客户表 where Contact =" & Text2.Text & ""
End If
If Check3.Value = vbChecked Then
sql = "select * from 客户表 where CustomerName =" & Text3.Text & ""
End If
rst.Open sql, cnn, adOpenKeyset, adLockPessimistic
DataGrid1.AllowAddNew = False
DataGrid1.AllowDelete = False
DataGrid1.AllowUpdate = False
Set DataGrid1.DataSource = rst
End Sub
Dim cnn As New ADODB.Connection
Dim sql As String
Dim rst As New ADODB.Recordset
cnn.Open "Provider = Microsoft.Jet.OLEDB.4.0;Data Source=f:\贸易系统.mdb"
sql = "select * from 客户表 where 1=1 "
If Check1.Value = vbChecked Then
sql = sql & "and CustomerCode ='" & Text1.Text & "'"
End If
If Check2.Value = vbChecked Then
sql = sql &" and Contact ='" & Text2.Text & "'"
End If
If Check3.Value = vbChecked Then
sql = sql &" and CustomerName ='" & Text3.Text & "'"
End If
rst.Open sql, cnn, adOpenKeyset, adLockPessimistic
DataGrid1.AllowAddNew = False
DataGrid1.AllowDelete = False
DataGrid1.AllowUpdate = False
Set DataGrid1.DataSource = rst
End Sub
Dim cnn As ADODB.Connection
Dim sql As String
Dim rst As ADODB.Recordset
Set cnn = New ADODB.Connection
cnn.CursorLocation = adUseClient '*********
cnn.Open "Provider = Microsoft.Jet.OLEDB.4.0;Data Source=f:\贸易系统.mdb"
Set rst = New Recordset
If Check1.Value = vbChecked Then
sql = "select * from 客户表 where CustomerCode ='" & Text1.Text & "'"
End If
If Check2.Value = vbChecked Then
sql = "select * from 客户表 where Contact ='" & Text2.Text & "'"
End If
If Check3.Value = vbChecked Then
sql = "select * from 客户表 where CustomerName ='" & Text3.Text & "'"
End If
rst.Open sql, cnn, adOpenKeyset, adLockPessimistic
DataGrid1.AllowAddNew = False
DataGrid1.AllowDelete = False
DataGrid1.AllowUpdate = False
Set DataGrid1.DataSource = rst
End Sub
改为:rst.Open sql, cnn, adOpenStatic, adLockPessimistic 试试
Dim sql As String
Dim rst As New ADODB.Recordset
cnn.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source=f:\贸易系统.mdb"
cnn.Open
Set rst = New ADODB.Recordset
If Check1.Value = vbChecked Then
sql = "select * from 客户表 where CustomerCode ='" & Text1.Text & "'"
End If
If Check2.Value = vbChecked Then
sql = "select * from 客户表 where Contact ='" & Text2.Text & "'"
End If
If Check3.Value = vbChecked Then
sql = "select * from 客户表 where CustomerName ='" & Text3.Text & "'"
End If
rst.Open sql, cnn, adOpenStatic, adLockOptimistic
DataGrid1.AllowAddNew = False
DataGrid1.AllowDelete = False
DataGrid1.AllowUpdate = False
Set DataGrid1.DataSource = rst执行不报错,但是没有结果,原因是:
(1).既然要绑定,要用ADODC才能绑定的,ADODB不能绑定的
(2).用ADODB,就用代码,用循环直接向表格中写
DataGrid1.AllowAddNew = False
DataGrid1.AllowDelete = False
DataGrid1.AllowUpdate = False
Dim cnn As ADODB.Connection
Dim sql As String
Dim rst As ADODB.Recordset
Set cnn = New ADODB.Connection
cnn.CursorLocation = adUseClient
cnn.Open "Provider = Microsoft.Jet.OLEDB.4.0;Data Source=f:\贸易系统.mdb"
Set rst = New Recordset
If Check1.Value Then
sql = "select * from 客户表 where CustomerCode ='" & Text1.Text & "'"
End If
If Check2.Value = vbChecked Then
sql = "select * from 客户表 where Contact ='" & Text2.Text & "'"
End If
If Check3.Value = vbChecked Then
sql = "select * from 客户表 where CustomerName ='" & Text3.Text & "'"
End If
rst.Open sql, cnn, 1, 1
Set DataGrid1.DataSource = rst
DataGrid1.Refresh
End Sub
'客户表的CustomerCode 字段不知道是不是数值型字段了
'如果是就用sql = "select * from 客户表 where CustomerCode =" & Text1.Text
'还有那个checkbox很不好,如果全部都选择了你的程序就出错了,在界面上也应该控制好这个'偶也要来分块猪肉啊