简单的函数封装会了,但含有VB控件如MSFlexGrid\combox\作为传递参数如何封装引用,我用了报错.

yiyaozjk 2012-01-04 09:18:51
含有 MSFlexGrid等作为传递参数的过程,在编译.

引用时,先定义了后
再直接 类名.gongdandata(MSFlexGrid2) 却报错??

DLL类时报报错:提示private 对象模块不能作为参数/公共过程的返回类型,公共数据成员或公共用户定义类型字段在公共的对象中使用 ??在ActiveX DLL,项目要怎么定义???

如何解决,代码如下:是不是还要声明什么控件类型???

Public Sub gongdandata(MSF1 As MSFlexGrid)Dim j As Integer
Dim i As Integer
Dim mrc1 As ADODB.Recordset
Set mrc1 = sl(Trim(txtsql))
..........

...全文
95 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yiyaozjk 2012-02-07
  • 打赏
  • 举报
回复
Public Sub gongdandata(MSF1 As MSFlexGrid)
这个不能用byval了,去掉还是不行,还是报同样的错
提示private 对象模块不能作为参数/公共过程的返回类型,公共数据成员或公共用户定义类型字段在公共的对象中使用 ??

为何???
zfl2k 2012-01-16
  • 打赏
  • 举报
回复
Public Sub gongdandata(ByVal MSF1 As MSFlexGrid)
这个不能用byval了,去掉就行
yiyaozjk 2012-01-12
  • 打赏
  • 举报
回复
这个问题仍然没有解决, 关于含有对象参数的过程封装, 高手帮忙看一下我的错误是哪里.??我的操作过程及代码如下:

我在ActiveX DLL中想将下列代码封装成以下DLL: 但不成功,请高手帮忙解决一下:谢谢!!


bhsq是类名,类的工程名 bhsq1:
Public Function sl(ByVal sql As String) As ADODB.Recordset
Dim mycon As ADODB.Connection
Dim rst As ADODB.Recordset
Set mycon = New ADODB.Connection
mycon.ConnectionString = "rovider=sqloledb;server=.;Database=sxcpmc;Uid=sawd=;"
mycon.Open
Dim stokens() As String
Set rst = New ADODB.Recordset
rst.Open Trim(sql), mycon, adOpenKeyset, adLockOptimistic
Set sl = rst
End Function

单独封装上面的代码,能在程序使用
Dim bhs As New bhsq '用里面的类名,而不是用类的工程名
Set mrc1 = bhs.sl(Trim(txtsql))
Set bhs = Nothing '能正常使用'

-----------------------------
但是,再想封装以代码就报错了.
错误提示:提示private 对象模块不能作为参数/公共过程的返回类型,公共数据成员或公共用户定义类型字段在公共的对象中使用


Public Sub gongdandata(ByVal MSF1 As MSFlexGrid) '预览生产单gongdan窗体时用到
Dim i As Integer
Dim mrc1 As ADODB.Recordset

Set mrc1 = sl(Trim(txtsql))
If mrc1.EOF = False Then
mrc1.MoveFirst
MSF1.RowHeightMin = 410
MSF1.CellAlignment = 0
With MSF1
.Rows = 1
Do While Not mrc1.EOF
.Rows = .Rows + 1
For i = 1 To mrc1.Fields.Count
.TextMatrix(.Rows - 1, i - 1) = FormatNumber(mrc1.Fields(i - 1), 3, -1)
Next i
mrc1.MoveNext
Loop
mrc1.Close
End With
End If
End Sub



zfl2k 2012-01-06
  • 打赏
  • 举报
回复
类名.gongdandata MSFlexGrid2
yiyaozjk 2012-01-06
  • 打赏
  • 举报
回复
这个问题怎么没有肯回答我呢?帮忙指点一下,是不是都在忙着买火车票
yiyaozjk 2012-01-05
  • 打赏
  • 举报
回复
为什么版主们也不出来呢??

我盼望着有人回答指点一下,谢谢!!

7,763

社区成员

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

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