如何把recordset记录集赋值给Datagrid控件

harvey1029 2009-06-17 06:33:52

dim rs as new adodb.recordset

请教一下如何将从SQL Server内查询到的记录集rs 赋值给Datagrid控件,让其能够显示查询到的记录集

或者不使用这个控件,用其他的什么方式能够把rs记录集显示出来
...全文
240 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangyonghan460 2009-06-23
  • 打赏
  • 举报
回复
可能是没有加载控件!不加载的话就报错
harvey1029 2009-06-23
  • 打赏
  • 举报
回复
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, adLockReadOnly

Set DataGrid1.DataSource = rs
DataGrid1.Refresh

为何根据参数查询出来只有列标题,而没有内容,SQL语句需要输入的参数的地方有问题?
booksoon 2009-06-18
  • 打赏
  • 举报
回复
set DataGrid1.DataSource = rs
harvey1029 2009-06-18
  • 打赏
  • 举报
回复
如果要输入参数的话,SQL语句根据参数查询
rs.Open SQL, cnn
Set DataGrid1.DataSource = rs
该如何写?
of123 2009-06-18
  • 打赏
  • 举报
回复
Set rs = cmd.Execute(, Param)

这个不行。必须是打开的记录集对象。

rs.Open SQL, cnn
Set DataGrid1.DataSource = rs
harvey1029 2009-06-18
  • 打赏
  • 举报
回复
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这句有问题
古今多少事 2009-06-17
  • 打赏
  • 举报
回复
set DataGrid1.DataSource = rs

这样试试
harvey1029 2009-06-17
  • 打赏
  • 举报
回复
DataGrid1.DataSource = rs

这句有问题!!
古今多少事 2009-06-17
  • 打赏
  • 举报
回复
提示在哪句?
harvey1029 2009-06-17
  • 打赏
  • 举报
回复
还是不行,会出现同样的错误提示!!
古今多少事 2009-06-17
  • 打赏
  • 举报
回复
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


这样试试
harvey1029 2009-06-17
  • 打赏
  • 举报
回复
谢谢你给的函数
能随便告诉一下,Datagrid控件如何显示rs的数据集吗?
贝隆 2009-06-17
  • 打赏
  • 举报
回复
给你几个函数,绝对能用
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
'函数功能:连接指定的数据库
'参数说明: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
harvey1029 2009-06-17
  • 打赏
  • 举报
回复
Dim cnn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim cmd As New ADODB.Command
Dim SQL As String

Private 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 Sub

Private Sub Command2_Click()
End
End Sub

Private Sub Form_Load()
cnn.ConnectionString = "Provider=SQLOLEDB;Data Source=wzh;UID=sa;PWD=;Database=db_manpowerinfo_data"
cnn.Open
End Sub

请问一下上面这段程序有问题吗?为何运行后,会产生“未找到方法或者数据成员”的错误?
clear_zero 2009-06-17
  • 打赏
  • 举报
回复
set Datagrid.datasource=rs
Datagrid.refresh

listview can also do the job

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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