设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 1739|回复: 13
打印 上一主题 下一主题

[Access本身] vba当中会自动把一个控件名称当做控件的value,请问我如果想引用控件本身,应

[复制链接]
跳转到指定楼层
1#
发表于 2006-4-7 03:52:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
vba当中会自动把一个控件名称当做控件的value,请问我如果想引用控件本身,应该怎么写或者怎么设置

Public Sub test(ByVal combo1 As combobox)
    Dim comb As combobox
    Dim id As Integer
   
    Set comb = combo1
    If IsNull(comb.Value) Then
           MsgBox ("can not be null")
       Exit Sub
       Else
       id = CInt(comb.Value)
    End If
Enf function

'引用该函数

Private Sub m_menu1_AfterUpdate()
    test (m_menu1)
End Sub

程序自动会把m_menu1当成m_menu1.value,我现在想引用m_menu1本身,
请问怎么解决
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2006-4-7 04:09:00 | 只看该作者
建议楼主将支付金币的设置删除,要人帮你解决问题还要付钱,真是天大的笑话
3#
发表于 2006-4-7 04:20:00 | 只看该作者
没有真正领悟你得意图,所以不知道是否是你想要的.

Function Test(ByVal combo As ComboBox) As Integer
    If IsNull(combo.Value) Then
           MsgBox ("can not be null")
       Exit Function
    Else
       Test = CInt(combo.Value)
    End If
End Function


调用:me.控件名=Test(m_menu1)
4#
 楼主| 发表于 2006-4-7 05:38:00 | 只看该作者
vba当中会自动把一个控件名称当做控件的value,请问我如果想引用控件本身,应该怎么写或者怎么设置

Public Sub test(ByVal combo1 As combobox)
    Dim comb As combobox
    Dim id As Integer
   
    Set comb = combo1
    If IsNull(comb.Value) Then
           MsgBox ("can not be null")
       Exit Sub
       Else
       id = CInt(comb.Value)
    End If
Enf function

'引用该函数

Private Sub m_menu1_AfterUpdate()
    test (m_menu1)
End Sub

程序自动会把m_menu1当成m_menu1.value,我现在想引用m_menu1本身,
请问怎么解决
5#
 楼主| 发表于 2006-4-7 05:44:00 | 只看该作者
不好意思哦,设置错了,本来要付一个金币的,郁闷了

我的意思是

我需要把一个控件: m_menu1,它是一个combobox 控件,

传递给test函数,但是程序会把这个传递值误认为是传递m_menu1.value

这样的话,就会报错说找不到控件的参考
6#
发表于 2006-4-7 05:49:00 | 只看该作者
3楼的方法把值传递给函数了,并根据参数返回值了.
7#
 楼主| 发表于 2006-4-7 06:11:00 | 只看该作者
不行 哦
8#
发表于 2006-4-7 06:13:00 | 只看该作者
把例子发上来
9#
 楼主| 发表于 2006-4-7 06:16:00 | 只看该作者
现在主要的问题是

当你传递控件本身给其他函数的时候,他传递的不是控件,而是控件的属性value

也就是说我本来传的值是想让程序当成control 类型来处理,结果他按string 类型来处理了

一个典型的例子

架设有 lable 控件lable1

那么:msgbox(lable1) 他会显示label1.value的值,

现在我传参数给我的自定义函数也是这样,

。。。。。。。。。。。。。


[此贴子已经被作者于2006-4-6 22:25:58编辑过]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
10#
发表于 2006-4-7 06:25:00 | 只看该作者


你的意思是要象这样的吗?

Function FormClose(rfrmInput As Form) As Boolean
On Error GoTo FormClose_Err
FormClose = True
    DoCmd.Close acForm

FormClose_Exit:
    Exit Function

FormClose_Err:
    FormClose = False
    GoTo FormClose_Exit
End Function
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-15 12:20 , Processed in 0.103499 second(s), 35 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表