datasource类型引用求解

yandongli 2000-04-05 12:00:00
在有VB6。0编制控件时利用控件向导生成了一个控件,内设一TEXT及一个控件,其中自动生成了一个属性
定义为:
Public Property Get DataSource() As DataSource
Set DataSource = DataGrid1.DataSource
End Property

Public Property Set DataSource(ByVal New_DataSource As DataSource)
Set DataGrid1.DataSource = New_DataSource
PropertyChanged "DataSource"
End Property
但是在应用时提示
Compile error:
user_defined type not defined
从此提示来看应是引用中选择不当或是不全,但经反复试仍不见效请教各位大师应如何引用
...全文
330 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Un1 2000-04-07
  • 打赏
  • 举报
回复
试试:

1。引用 C:\WINDOWS\SYSTEM\msdatsrc.tlb

或者:
Public Property Get DataSource() As Object
Set DataSource = DataGrid1.DataSource
End Property

Public Property Set DataSource(New_DataSource As Object)
Set DataGrid1.DataSource = New_DataSource
PropertyChanged "DataSource"
End Property
major2 2000-04-05
  • 打赏
  • 举报
回复
DataSource属性不能这样继承,因为它不是一种数据类型,虽然控件向导会生成这样的代码,可是不能用,可能这也是控件向导的一个BUG,如果你一定要把数据源继承到你自己的控件里可以这样做,设置两个String型的属性,分别是数据源的连接串和记录集的查询语句,比如叫ConnectionString 和 DataSourceSQL,然后在控件代码里这样写:
Dim m_ConnStr as String
Dim m_SQL as String
Dim m_DataConnect as ADODB.Connection
Dim m_Recordset as ADODB.Recordset
...
在这两个属性的Property Let过程里先根据传进来的字符串自己建立连接m_DataConnect和记录集m_Recordset,如果连接和查询成功,就可以把你的DataGrid的数据源设置成m_Recordset并把这两个属性保存好,否则返回出错信息。在控件被销毁时断开并释放连接和记录集对象。
我自己用一个MSHFlexGrid一个TextBox和一个ComboBox做过一个类似PB里的DataWindow的网格控件,在传递数据源时就是采用了上面的方法,用起来也还可以,效果不错。如果你一定要直接传递数据源的,你应该用VC这种东西去试试看,不过我不懂VC,所以也不是很清楚是不是肯定行。
forgettor 2000-04-05
  • 打赏
  • 举报
回复
很遗憾,datasource并非VB中的一个数据类型

7,759

社区成员

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

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