想同时封装成以下2代码成DLL文件,但编译时就出错,生成不了DLL文件,想让高手帮忙我错在哪里
我在ActiveX DLL中想将下列代码封装成以下DLL: 但不成功,请高手帮忙解决一下:谢谢!!新建一个类模块,bhsq1.cls
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 对象模块不能作为参数/公共过程的返回类型,公共数据成员或公共用户定义类型字段在公共的对象中使用 ,生成不了DLL
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
请高手帮忙解答一下,我错在哪里了????