DataGrid.DataSource出现了Type mismarch

wyarrant 2003-02-20 09:50:45
定义了一个类模块控制DataGrid的显示,可是在
DataGrid.DataSource出现了类型匹配错误是怎么回事呢?
部分源代码如下:
1、调用类模块
Public nd as DataList

Set rst = New ADODB.Recordset
rst.open "select name,code1,code2,num,[date] from tabel1",_
cnn,adOpenDynamic, adLockOptimistic, adCmdText

Set nd = New DataList
nd.SetList rst
DataGrid1.DataMember = "List"
Set DataGrid1.DataSource = nd'这句就出错了

2、类模块定义
Option Explicit
Private WithEvents rst2 As ADODB.Recordset
Public Sub SetList(rst As ADODB.Recordset)
With rst2
.Fields.Append "NAME", adVarChar, 50
.Fields.Append "CODE1", adVarChar, 3
.Fields.Append "CODE2", adVarChar, 7
.Fields.Append "NUM", adInteger
.Fields.Append "DATE", adDate
.CursorType = adOpenStatic
.LockType = adLockOptimistic
.Open
End With
rst.MoveFirst
While Not rst.EOF
rst2.AddNew
rst2!name = rst(0)
rst2!code = rst(1)
rst2!code = rst(2)
rst2!num = rst(3)
rst2!date = rst(4)
rst.MoveNext
rst2.Update
Wend
End Sub

Private Sub Class_GetDataMember(DataMember As String, Data As Object)
Select Case DataMember
Case "List"
Set Data = rst2
Case ...
Case Else
Set Data = Nothing
End Select
End Sub

Private Sub Class_Initialize()
Set rst2 = New ADODB.Recordset
End Sub

...全文
26 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
流星尔 2003-02-22
  • 打赏
  • 举报
回复
对,这里也错了。dim rst = New ADODB.Recordset改成
dim rst as new adodb.recordset
look4u 2003-02-21
  • 打赏
  • 举报
回复
你把recordset对象赋给datagrid1.datasource就没问题了.
如:
set datagrid1.datasource=rst
而nd是一个datalist,所以类型不匹配
我有一次忘了加SET,竟然也报了你这个错误,极烦
饮水需思源 2003-02-21
  • 打赏
  • 举报
回复
dim rst = New ADODB.Recordset改成
dim rst as new adodb.recordset

rst.open ...

set datagrid1.datasource=rst

流星尔 2003-02-21
  • 打赏
  • 举报
回复
dim rst = New ADODB.Recordset
rst.open "select name,code1,code2,num,[date] from tabel1",_
cnn,adOpenDynamic, adLockOptimistic, adCmdText

Set DataGrid1.DataSource = rst'这句就出错了

错误的原因是因为datagrid1.datasource应该是一个结果集,而你赋给它的是一个控件
wyarrant 2003-02-20
  • 打赏
  • 举报
回复
不用ADODC;
而且我想知道我的代码到底错在哪里了
Cooly 2003-02-20
  • 打赏
  • 举报
回复
.datasource=[ADO Recordset]

Example:

Set DateGrid.DataSource = ADODC1
Set DateGrid.DataSource = Data1

1,216

社区成员

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

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