VB不同窗体的控件名传递问题

「已注销」 2011-07-22 11:07:06
在编一个小程序玩但遇到一个问题,简单点说就是
有3个FORM,分别为main,f_Lbcx,f_cbxx。f_Lbcx,f_cbxx有adodc控件
f_lbcx中的为adodc1;f_cbxx中的为adodc1和adodc2。希望在main里编辑函数
Public Sub SJKChuShiHua(names As Form,adodcs As Adodc, adoconnstr)
names.Adodcs.ConnectionString = adoconnstr
End Sub
对不同窗体的不同adodc控件的ConnectionString进行赋值,但是在执行Call main.SJKChuShiHua(Me, Adodc1, main.adoconnstr)时确发现adodc1没有传递过去还是怎么了,一直报错,但将sub里的赋值函数改为names.Adodc1.ConnectionString = adoconnstr可以正常运行,但却不是我的目的,我还准备用他对f_cbxx.adodc2进行赋值呢,盼解决方法

...全文
136 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
jhone99 2011-07-22
  • 打赏
  • 举报
回复
概念混淆,你传的是“窗体”和“控件”,而不是“窗体名”和“控件名”
「已注销」 2011-07-22
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 jhone99 的回复:]
Call main.SJKChuShiHua(f_Lbcx.Adodc1, main.adoconnstr)


Public Sub SJKChuShiHua(adodcs As Adodc, adoconnstr)
Adodcs.ConnectionString = adoconnstr
End Sub
[/Quote]

成功了
但是有个问题 就是我的方法错误在那里,难道不能将窗体名和控件名都通过参数传递,并用[参数中的窗体名].[参数中的控件名].[属性]=xx的方式调用赋值吗,很多时候在编写函数时候不能确定控件名称和窗体名称,所以我才想编个这样的程序进行测试。
jhone99 2011-07-22
  • 打赏
  • 举报
回复
Call main.SJKChuShiHua(f_Lbcx.Adodc1, main.adoconnstr)


Public Sub SJKChuShiHua(adodcs As Adodc, adoconnstr)
Adodcs.ConnectionString = adoconnstr
End Sub
「已注销」 2011-07-22
  • 打赏
  • 举报
回复
Call main.SJKChuShiHua(Me, Adodc1, main.adoconnstr)
这个是在f_Lbcx的load里 所以我用了me代替
「已注销」 2011-07-22
  • 打赏
  • 举报
回复
想用函数SJKChuShiHua()实现可以对不同窗体下不同adodc.ConnectionString进行初始化的功能
比如对f_Lbcx中的adodc1可以调用Call main.SJKChuShiHua(f_Lbcx, Adodc1, main.adoconnstr)
f_cbxx中的adodc2可以调用Call main.SJKChuShiHua(f_cbxx, Adodc2, main.adoconnstr)实现




ps:adoconnstr这个字符串是个public 在main中定义的
  • 打赏
  • 举报
回复
Call main.SJKChuShiHua(Me, Adodc1, main.adoconnstr)
在那里?
咸清 2011-07-22
  • 打赏
  • 举报
回复
不名所以
韩小婼 2011-07-22
  • 打赏
  • 举报
回复
经验证,可于EXCEL的VBA中使用的二维码(QRMAKER)控件VBA中调用QRmaker 由于VBA的窗体环境和VB中的差不多,所以在VBA窗体中调用QRmaker就不再描述,这里主要说明一下如何在表格中引用QRmaker。 第一步:单击Office按钮,在Excel选项中开启“开发工具”项,从而让“开发工具”选项卡显示出来。 第二步,插入→其他控件,选择QRmaker。 然后就是在合适的地方绘出QRmaker控件,这时会自动进入“设计模式”,单击“属性”可以展开控件的“属性”栏,可根据需要设置相关属性,和VB中的操作雷同。 接下来与VB中不一样的地方就是如何在VBA代码中引用QRmaker控件了,这点和VB中有点小区别。 添加“模块”,添加“过程”,输入代码。 Public Sub QRCodeTest() '定义QRString变量,存储要生成二维码的字符串 Dim QRString As String '给QRString赋值,根据实际情况赋值 QRString = Sheet1.Range("E14") & Sheet1.Range("F14") & ";" & Sheet1.Range("E15") & Sheet1.Range("F15") & ";" & Sheet1.Range("E16") & Sheet1.Range("F16") & "_" & Sheet1.Range("G16") & "_" & Sheet1.Range("F17") & "_" & Sheet1.Range("G17") Sheet1.Select '设置QRmaker的AutoRedraw属性为ArOn Sheet1.QRmaker1.AutoRedraw = ArOn '将字符串传递给QRmaker控件 Sheet1.QRmaker1.InputData = QRString '刷新QRmaker的内容,如果AutoRedraw属性为On,则无需此句 'Sheet1.QRmaker1.Refresh End Sub 然后就可以在Excel表格中生成二维码了,根据实际情况,在填写相关数据后,执行上面的语句就可以了,其他的工作该咋的就咋的吧。

7,763

社区成员

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

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