测试表单:
Dim rs1 As ADODB.Recordset
Dim zh As Z9652.j51
Private Sub Form_Load()'Set zh = New Z9652.j51
set zh=createobject("z9652.j51")Set rs1 = zh.GetData() :显示指示此处
Debug.Print rs1.Fields(0)
Text1 = rs1.Fields(0)
Text2 = rs1.Fields(1)
Text3 = rs1.Fields(2)
Text4 = rs1.Fields(3)
End Sub你的组件是否注册成功?
mts运行了吗?
Dim rs1 As ADODB.Recordset
Dim zh As Z9652.j51
Private Sub Form_Load()'Set zh = New Z9652.j51
set zh=createobject("z9652.j51")Set rs1 = zh.GetData() :显示指示此处
Debug.Print rs1.Fields(0)
Text1 = rs1.Fields(0)
Text2 = rs1.Fields(1)
Text3 = rs1.Fields(2)
Text4 = rs1.Fields(3)
End Sub你的组件是否注册成功?
mts运行了吗?
解决方案 »
- vb的问题
- [请教]VB中产生的随机日期该怎样固定下来?
- 如何将Combo控件做成“键-值”对应的?
- 闵峰人在吗?我来了
- 写了个程序用到了excel的引用,到别人的机器就运行出错,怎么办
- 非常奇怪的问题,高手请进!
- 请问如何将VB中的数据环境加入到水晶报表的数据源中?
- PictureBox控件:已经有图片做背景了,现在我要再在背景上显示“欢迎***”怎么做呢?是要在程序加载窗体时判断用户名显示的。
- 我在win2000下把程序打包,可是98下安装后不能用?!(狂急!!!!!)
- recordset对象的recordcount属性调用
- Richtextbox控件的行间距怎么调整?
- 我怎么判断DATAGRID 的行是否被单击过???
在GetData中初始化
set cnn=Createobject("ADODB.Connection")
set rs=CreateObject("ADODB.Recordset")
测试表单
同样也要做初始化,但最好不要用NEW关键字,因为New是VB关键字,如果要进行Com编程的话,应该用
Com(com+)的CreateObject函数,这样可以利用Com的诸多优势.
我不经常用QQ不过可以给我写信[email protected]
不要用 ADODB.Recordset 作 GetData 的 返回值,否则 COM 里就要实例化 ADODB.Recordset,
最好将 ADODB.Recordset 作为 GetData 的参数 ByRef 传参!在主程序中实例化 ADODB.Recordset
未设置对象变量或with block变量
怎么办,原代码如下:
中间层com:Option Explicit
Dim cnn As ADODB.Connection
Dim str As String
Dim s1 As String
Dim rs As ADODB.Recordset
Public Function getdata() As ADODB.Recordset
str = "DRIVER={SQL SERVER};server=N5S1X2;uid=sa;pwd=;database=CHINAREN"
----------------------------------------
加上一句:set cnn=new adodb.connection
set rs=new adodb.Recordset
就可以了.
-------------------------------------
cnn.ConnectionString = cnn
cnn.CursorLocation = adUseClient
cnn.Mode = adModeReadWrite
cnn.Open
s1 = "select * from chinaren"
rs.ActiveConnection = cnn
rs.LockType = adLockBatchOptimistic
rs.CursorType = adOpenDynamic
rs.Open s1
Set getdata = rs
End Function
测试表单:
楼上的兄弟说得对,你好象只是定义了rs和cnn,没有实例化。