set Datagrid.datasource=rs Datagrid.refreshlistview can also do the job
Dim cnn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim cmd As New ADODB.Command Dim SQL As StringPrivate Sub Command1_Click() Set cmd.ActiveConnection = cnn cmd.CommandType = adCmdUnknown SQL = "SELECT * FROM 权限信息表" cmd.CommandText = SQL Set rs = cmd.Execute DataGrid1.DataSource = rs DataGrid1.Refresh End SubPrivate Sub Command2_Click() End End SubPrivate Sub Form_Load() cnn.ConnectionString = "Provider=SQLOLEDB;Data Source=wzh;UID=sa;PWD=;Database=db_manpowerinfo_data" cnn.Open End Sub请问一下上面这段程序有问题吗?为何运行后,会产生“未找到方法或者数据成员”的错误?
给你几个函数,绝对能用 '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% '函数功能:连接指定的数据库 '参数说明:cnnP:数据库连接对象; ' :adoP:数据集存储对象; ' :strPath:数据库路径; ' :strPassword:数据库密码; '返回说明:True:连接成功 False:连接失败 '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Public Function funConnectDataBase(cnnP As ADODB.Connection, adoP As ADODB.Recordset, ByVal strPath As _ String, ByVal strPassword As String) As Boolean On Error GoTo errFunction Set cnnP = New ADODB.Connection Set adoP = New ADODB.Recordset cnnP.Provider = "Microsoft.Jet.OLEDB.4.0" cnnP.Open "Data Source = " & strPath & ";jet oledb:database password=" & strPassword funConnectDataBase = True Exit Function errFunction: funConnectDataBase = False End Function '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% '函数功能:关闭数据库连接对象和数据文件的关联 '参数说明:cnnP:数据库连接对象; ' :adoP:数据库存储对象; '返回说明:True:关闭连接成功 False:关闭连接失败 '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Public Function funCloseDataBase(cnnP As ADODB.Connection, adoP As ADODB.Recordset) As Boolean On Error GoTo errFunction Set adoP = Nothing Set cnnP = Nothing funCloseDataBase = True Exit Function errFunction: funCloseDataBase = False End Function '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% '过程功能:对指定的对象执行指定的SQL语句 '参数说明:cnnP:ADO连接对象 ' :adoP:ADO记录集对象 ' :strSql:SQL语句 ' :bolQueryRecord:是否是查询记录集 '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Public Sub subExcuteSQL(cnnP As ADODB.Connection, adoP As ADODB.Recordset, strSql As String, bolQueryRecord _ As Boolean) If bolQueryRecord Then '如果是查询记录集 adoP.Open strSql, cnnP, adOpenStatic, adLockBatchOptimistic Else cnnP.Execute strSql End If End Sub
谢谢你给的函数 能随便告诉一下,Datagrid控件如何显示rs的数据集吗?
Private Sub Command1_Click() Set rs = New ADODB.Recordset rs.ActiveConnection = cnn 'SQL = "SELECT * FROM 权限信息表" 'cmd.CommandText = SQL rs.Source = "SELECT * FROM 权限信息表" rs.Open DataGrid1.DataSource = rs DataGrid1.Refresh End Sub 这样试试
DataGrid1.DataSource = rs 这句有问题!!
set DataGrid1.DataSource = rs 这样试试
set DataGrid1.DataSource = rs
Set cmd.ActiveConnection = cnn SQL = "SELECT * FROM MES_View01 WHERE JZ= '?' AND BLM=' ?' AND RQ= '?'" cmd.CommandType = adCmdUnknown cmd.CommandText = SQL Param(0) = Combo1.Text Param(1) = Txt1.Text Param(2) = Txt2.Text Set rs = cmd.Execute(, Param) Set DataGrid1.DataSource = rs 需要接收3个参数,来执行SQL语句,查询的结果为RS,然后用 Set DataGrid1.DataSource = rs赋值给Datagrid控件,执行之后,会产生,行集合不能作为标签的错误,Set DataGrid1.DataSource = rs这句有问题
Set rs = cmd.Execute(, Param)这个不行。必须是打开的记录集对象。rs.Open SQL, cnn Set DataGrid1.DataSource = rs
如果要输入参数的话,SQL语句根据参数查询 rs.Open SQL, cnn Set DataGrid1.DataSource = rs 该如何写?
SQL = "SELECT * FROM MES_View01 WHERE JZ= 'combo1.text' AND BLM= 'txt1.text' AND RQ= 'txt2.text'"rs.ActiveConnection = cnn rs.CursorLocation = adUseServer rs.Open SQL, cnn, adOpenKeyset, adLockReadOnlySet DataGrid1.DataSource = rs DataGrid1.Refresh 为何根据参数查询出来只有列标题,而没有内容,SQL语句需要输入的参数的地方有问题?
Datagrid.refreshlistview can also do the job
Dim rs As New ADODB.Recordset
Dim cmd As New ADODB.Command
Dim SQL As StringPrivate Sub Command1_Click()
Set cmd.ActiveConnection = cnn
cmd.CommandType = adCmdUnknown
SQL = "SELECT * FROM 权限信息表"
cmd.CommandText = SQL
Set rs = cmd.Execute
DataGrid1.DataSource = rs
DataGrid1.Refresh
End SubPrivate Sub Command2_Click()
End
End SubPrivate Sub Form_Load()
cnn.ConnectionString = "Provider=SQLOLEDB;Data Source=wzh;UID=sa;PWD=;Database=db_manpowerinfo_data"
cnn.Open
End Sub请问一下上面这段程序有问题吗?为何运行后,会产生“未找到方法或者数据成员”的错误?
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
'函数功能:连接指定的数据库
'参数说明:cnnP:数据库连接对象;
' :adoP:数据集存储对象;
' :strPath:数据库路径;
' :strPassword:数据库密码;
'返回说明:True:连接成功 False:连接失败
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Public Function funConnectDataBase(cnnP As ADODB.Connection, adoP As ADODB.Recordset, ByVal strPath As _
String, ByVal strPassword As String) As Boolean
On Error GoTo errFunction
Set cnnP = New ADODB.Connection
Set adoP = New ADODB.Recordset
cnnP.Provider = "Microsoft.Jet.OLEDB.4.0"
cnnP.Open "Data Source = " & strPath & ";jet oledb:database password=" & strPassword
funConnectDataBase = True
Exit Function
errFunction:
funConnectDataBase = False
End Function
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
'函数功能:关闭数据库连接对象和数据文件的关联
'参数说明:cnnP:数据库连接对象;
' :adoP:数据库存储对象;
'返回说明:True:关闭连接成功 False:关闭连接失败
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Public Function funCloseDataBase(cnnP As ADODB.Connection, adoP As ADODB.Recordset) As Boolean
On Error GoTo errFunction
Set adoP = Nothing
Set cnnP = Nothing
funCloseDataBase = True
Exit Function
errFunction:
funCloseDataBase = False
End Function
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
'过程功能:对指定的对象执行指定的SQL语句
'参数说明:cnnP:ADO连接对象
' :adoP:ADO记录集对象
' :strSql:SQL语句
' :bolQueryRecord:是否是查询记录集
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Public Sub subExcuteSQL(cnnP As ADODB.Connection, adoP As ADODB.Recordset, strSql As String, bolQueryRecord _
As Boolean)
If bolQueryRecord Then '如果是查询记录集
adoP.Open strSql, cnnP, adOpenStatic, adLockBatchOptimistic
Else
cnnP.Execute strSql
End If
End Sub
能随便告诉一下,Datagrid控件如何显示rs的数据集吗?
Set rs = New ADODB.Recordset
rs.ActiveConnection = cnn
'SQL = "SELECT * FROM 权限信息表"
'cmd.CommandText = SQL
rs.Source = "SELECT * FROM 权限信息表"
rs.Open
DataGrid1.DataSource = rs
DataGrid1.Refresh
End Sub
这样试试
SQL = "SELECT * FROM MES_View01 WHERE JZ= '?' AND BLM=' ?' AND RQ= '?'"
cmd.CommandType = adCmdUnknown
cmd.CommandText = SQL
Param(0) = Combo1.Text
Param(1) = Txt1.Text
Param(2) = Txt2.Text
Set rs = cmd.Execute(, Param)
Set DataGrid1.DataSource = rs 需要接收3个参数,来执行SQL语句,查询的结果为RS,然后用 Set DataGrid1.DataSource = rs赋值给Datagrid控件,执行之后,会产生,行集合不能作为标签的错误,Set DataGrid1.DataSource = rs这句有问题
Set DataGrid1.DataSource = rs
rs.Open SQL, cnn
Set DataGrid1.DataSource = rs
该如何写?
rs.CursorLocation = adUseServer
rs.Open SQL, cnn, adOpenKeyset, adLockReadOnlySet DataGrid1.DataSource = rs
DataGrid1.Refresh 为何根据参数查询出来只有列标题,而没有内容,SQL语句需要输入的参数的地方有问题?