一个小问题:DATAGRID数据源

tsg 2003-08-21 04:08:16
引用的ado
Dim cnn As New ADODB.Connection
Dim rst As New ADODB.Recordset
当记录集打开以后,如何把结果付给datagrid。
set datagrid1.datasource=?

...全文
34 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangwz 2003-08-22
  • 打赏
  • 举报
回复
For i = 0 To 19
Set TxtCSSJ(i).DataSource = rsmain
txtCssj(i).Datafield=rsMain.fields(i)
Next i
试试
tsg 2003-08-22
  • 打赏
  • 举报
回复
如何是好啊?
beckham1122 2003-08-22
  • 打赏
  • 举报
回复
同意
tsg 2003-08-22
  • 打赏
  • 举报
回复
Option Explicit
Dim cnmain As New ADODB.Connection
Dim rsmain As New ADODB.Recordset

Public Sub QueryJM()
Dim i
Dim A$ '查询的SQL语句

If cnmain.State <> 1 Then
cnmain.CommandTimeout = 30
cnmain.ConnectionString = constr
cnmain.Open
End If
On Error GoTo Error_0
If ChkAllDate.value = 1 Then
A$ = "SELECT * FROM CSSJ where JH LIKE '" & txtJH.Text & "%'"
Else
A$ = "SELECT * FROM CSSJ WHERE ("
A$ = A$ & " CSRQ>='" & Format(DTStart.value, "yyyy-mm-dd") & "' And CSRQ<='" & Format(DTEnd.value, "yyyy-mm-dd") & "')" & "AND " & "JH LIKE '" & txtJH.Text & "%'"
End If
Helps "查询井名"
If rsmain.State = 1 Then rsmain.Close
rsmain.CursorLocation = adUseClient
rsmain.Open A$, cnmain, 3

'刷新显示字段

For i = 0 To 19
Set TxtCSSJ(i).DataSource = rsmain
Next i

Set DataGrid1.DataSource = rsmain

Exit Sub
Error_0:
MsgBox err.Description
Exit Sub
End Sub

Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
On Error GoTo err:
Select Case Button.Key
Case "First"
rsmain.MoveFirst
Case "Prior"
rsmain.MovePrevious
Case "Next"
rsmain.MoveNext
Case "Last"
rsmain.MoveLast
End Select
SetToolButton
err:
Exit Sub
End Sub

QueryJM根据选择的日期、txtJH的值构造查询条件,用rsmain.open
打开,并把结果用dbgrid、各个文本框显示。用Toolbar1_ButtonClick导航,上一条,下一条。现在的问题是第一次都正常,之后的任何查询,在dbgrid里显示的结果也正常,也可以用Toolbar1_ButtonClick导航,可是切换到文本框显示(dbgrid.Visible = False)的时候,只显示第一条记录,用Toolbar1_ButtonClick导航没有变化。如何是好啊?
antheayao 2003-08-21
  • 打赏
  • 举报
回复
Rst.CursorLocation = adUseClient
必须要加!否则不会显示的!
lihonggen0 2003-08-21
  • 打赏
  • 举报
回复
加一句:

Rs.CursorLocation = adUseClient
lihonggen0 2003-08-21
  • 打赏
  • 举报
回复
加一句:

Rs.CursorLocation = adUseClient
tsg 2003-08-21
  • 打赏
  • 举报
回复
Rs.CursorLocation = adUseClient就因为没有这个
lihonggen0 2003-08-21
  • 打赏
  • 举报
回复

加一句
Rs.CursorLocation = adUseClient
lihonggen0 2003-08-21
  • 打赏
  • 举报
回复
工程--->引用--->Microsoft ActiveX Data Object 2.x(版本号)

Dim CN As New ADODB.Connection '定义数据库的连接
Dim Rs As New ADODB.Recordset

CN.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\NWIND.MDB;Persist Security Info=False"
CN.Open

Rs.CursorLocation = adUseClient
Rs.Open "select * from employees", CN, adOpenDynamic, adLockBatchOptimistic

Set DataGrid1.DataSource = Rs
tsg 2003-08-21
  • 打赏
  • 举报
回复
提示:
the rowset is not bookmarkable
strongfisher 2003-08-21
  • 打赏
  • 举报
回复
Set Datagrid1.datasource = rst
Hengli 2003-08-21
  • 打赏
  • 举报
回复
試一下
Set Datagrid1.datasource = rst

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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