VB数据库ADO的一个问题?

xu 2000-03-07 01:25:00
在VB数据库ADO编程中,在一个表单模块中常用到
Dim WithEvents adoPrimaryRS As Recordset。如果要使adoprimaryrs是全局变量,却在Module中不能用Public WithEvents adoPrimaryRS As Recordset,怎么办??
...全文
174 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
playyuer 2000-03-17
  • 打赏
  • 举报
回复
有一个现象不知你是否注意:
DataGrid 可以使用过程级的 ADODB.Recordset 作为DataSource 如:
Private Sub Form_Load()
Dim adoRecordset As New ADODB.Recordset
Dim adoConnection As New ADODB.Connection
adoConnection.Open "..."
adoRecordset.Open "SQL",adoConnection
Set DataGrid1.DataSource = adoRecordset
End Sub
========
由上启发:
在Module中:
Public adoPrimaryRS As Recordset

在 Form 中:
Dim WithEvents adoWithEventsRecordset As Recordset
Private Sub Form_Load()
'注意不必使用 New 实例化 adoWithEventsRecordset
'因为 adoPrimaryRS 已经打开了
set adoWithEventsRecordset= adoPrimaryRS

End Sub




weidong70 2000-03-17
  • 打赏
  • 举报
回复

1、在编程前,先在工程菜单中的引用项中加入ADO 2.0
2、如果您用 Form 作为启动对象的话,就会发生一些问题。
3、可在工程对象管理器中,将工程属性中的启动对象改为 Sum Main,
4、然后在一个模块对象中添加下面的代码:

Public adoSelRs As ADODB.Recordset
Public connSource As ADODB.Connection

Sub Main()
Set adoSelRs = New ADODB.Recordset
Set connSource = New ADODB.Connection
connSource.CursorLocation = adUseClient

connSource.Open " "
//(冒号中添加数据对象)
//例:"PROVIDER=Microsoft.Jet.OLEDB.3.51;Data Source=C:\Program
// Files\Microsoft Visual Studio\VB98\Biblio.mdb;"

adoSelRs.Open "select Au_ID,Author from Authors", connSource,
adOpenStatic, adLockOptimistic

在这里添加要加载的窗口对象
例:
load form1
form1.show

End Sub

5、在使用数据对象的窗口中可添加如下的代码:

Private Sub Form_Load()
Set DataGrid1.DataSource = adoSelRs
End Sub

这时即可显示数据。

如有其他问题,可写信给信箱 yuanyang980612@sina.com.cn

Un1 2000-03-07
  • 打赏
  • 举报
回复
在Module中声明:
Public gadoPrimaryRS As Recordset

在Form中申明:
Private WithEvents adoPrimaryRS As Recordset

然后在适当地方加入语句:
Set gadoPrimaryRS = adoPrimaryRS

另外,可以在Form中声明:
Public WithEvents adoPrimaryRS As Recordset
在全局用 Form1.adoPrimaryRS 访问,不过速度较慢。

1,216

社区成员

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

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