注册 登录
编程论坛 VB6论坛

数据库方面的问题

光子 发布于 2006-11-10 11:11, 866 次点击

Dim con As New ADODB.Connection
Dim rd As New ADODB.Recordset

Private Sub Form_Load()
con.Open "provider=microsoft.jet.oledb.4.0;data source =" & App.Path & "\db1.mdb"
Set rd.ActiveConnection = con
rd.Open "select * from 123"
Set DataGrid1.DataSource = rd
End Sub


我的找码如上,我的窗体上就一个datagrid控件。没有经过任何改动。我想用代码连接数据库并在datagrid控件中显示。但是我运行后出现在“实时错误7004,行集合不能作为标签。”请各位帮帮忙!!!!!!

[此贴子已经被作者于2006-11-10 11:14:47编辑过]

11 回复
#2
purana2006-11-10 13:36
是不是Recordset没有设置游标类型这些..
#3
光子2006-11-10 15:45

为什么要设置那些啊。是不是datagrid控件的datasource属性有什么限制啊。
等待中!!!

#4
purana2006-11-10 16:01
Option Explicit
'请先添加引用Ado对象
Private Conn As ADODB.Connection '声明Ado成员
Private Rst As ADODB.Recordset

Private Sub Form_Load()
Dim conString As String '连接数据库字符串
conString = "Provider=Microsoft.Jet.OleDb.4.0;Data Source=D:\mdb\NorthWind.mdb"

Set Conn = CreateObject("ADODB.Connection") '创建Connection对象实例
With Conn
.ConnectionString = conString
.Open
End With

Set Rst = CreateObject("ADODB.Recordset") '创建Recordset对象实例
Dim sql As String
sql = "SELECT * FROM Orders"

Rst.CursorLocation = adUseClient '游标位置为客户端
Rst.LockType = adLockPessimistic '设置锁的类型
Rst.CursorType = adOpenKeyset '设置游标类型

Rst.Open sql, Conn, , , adCmdText

Set DataGrid1.DataSource = Rst
End Sub
#5
kkk9992006-11-10 16:03
回复:(purana)Option Explicit'请先添加引用Ado对象...

发个例子你,自己看看

只有本站会员才能查看附件,请 登录

[此贴子已经被作者于2006-11-10 16:04:02编辑过]

#6
光子2006-11-11 10:33
我昨天回去了又想了一下。只要把游标的位置设置成客户端就行了。其它的属性都不用设置,可是为什么游标在服务器端就不行呢。百思不得其解!!!
#7
purana2006-11-11 10:38
呵呵..你找相关的书看看吧..
#8
光子2006-11-11 11:06

我都看了,都说得很简单,说:服务器的游标灵敏,客户的能实现服务器游标没有的功能。

#9
purana2006-11-11 11:08
呵呵...这样..不就行了吗..
#10
破碎虚空2006-12-04 18:00
我也刚刚遇到了这个问题,搞了一下午,吐血~~
看看我的代码也是这样的错误:
Private Sub Command1_Click()
Dim Adocn As ADODB.Connection
Dim adors As ADODB.Recordset
Set Adocn = New ADODB.Connection
Set adors = New ADODB.Recordset
Adocn.Open ("Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=HHM")
adors.Open "PerRegT", Adocn, adOpenKeyset, adLockOptimistic, adCmdTable
If Text1.Text <> "" Then
Dim rs As ADODB.Recordset
Set rs = Adocn.Execute("select * from PerRegT where " & Combo1.Text & " like '" & Text1.Text & "'")
'Adodc1.RecordSource = "SELECT * from PerRegT where" & Combo1.Text & "like'" & Text1.Text & "'"
'Adodc1.Refresh
Set DataGrid1.DataSource = rs //错误在此
DataGrid1.Refresh
Else
MsgBox "没有" & Combo1.Text & "查询的数据", vbInformation + vbCritical, "提示"
End If

End Sub

[此贴子已经被作者于2006-12-4 18:02:07编辑过]

#11
abinny2006-12-05 11:38

运行后在MSFlexGrid没任何数据显示,怎么改?

Public cnTest As New ADODB.Connection

Public Function connectSybase() As Boolean
On Error GoTo ErrHandle
Dim strConnect As String
strConnect = "Provider=MSDASQL.1;DRIVER={Sybase System 11}; " _
& " Persist Security Info=False;DSN=;" _
& " SRVR=user_14;DB=esmart;UID=sa;PWD=888888"
connectSybase = True
Exit Function

ErrHandle:
connectSybase = False
End Function

Private Sub Form1_Load()
Dim rsTest As New ADODB.Recordset
Dim strSQL As String
If connectSybase Then
strSQL = "Select * from User_Info_Table" 'strSQL可以是SQL语句(块),存储过程
rsTest.CursorLocation = adUseClient
rsTest.Open strSQL, cnTest 'cnTest为打开的活动的连接
Else
MsgBox "打开数据库失败"
Exit Sub
End If

Set MSFlexGrid1.DataSource = rsTest
MSFlexGrid1.Refresh
End Sub

#12
e3bnsd2012-12-08 21:48
学习
1