设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 4615|回复: 5
打印 上一主题 下一主题

[窗体] 求助:怎样判断某个窗体的一个文本框是否存在

[复制链接]
跳转到指定楼层
1#
发表于 2015-4-29 17:20:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zyp 于 2015-4-29 17:24 编辑

想要从某个窗体检测另外的窗体是否有指定名称的文本框存在

目前是用for each ...next 来遍历控件对像,直到找到控件的名称与想要找的名称一致,找到就退出,没有找到就提示没有;代码如下:

dim fm as object, A as control, CpID as long
set fm=Screen.Activeform
for each A in fm.Controls
       if A.name="产品ID" then
                CPid=nz(A.value,0)
                exit for
       end if
next
set fm=nothing

其实就是想找到当前的窗体中是否有名为“产品ID”的文本框,有的话请取其值

上面的方法虽然能够达到结果,但代码相对来讲多了些,请问有没有更为简单些的方法?就是用最少的代码检测窗体有没有这个文件框

请高手们不吝指教!




分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
发表于 2015-4-29 17:22:24 | 只看该作者
这样太麻烦了。你可以弄个错误处理,直接去这个文本框的Name属性的值。如果取得到就说明存在。取不到,就会出错,就说明文本框不存在

点击这里给我发消息

3#
发表于 2015-4-29 17:25:14 | 只看该作者
private function checkControl(strName  as  string) as boolean
On  Error  goto  Err_Handler
         dim  str  as string
         str=Me.Controls(strName).Name  '取窗体对应控件的名称,如果没有该控件就会报错,就相当于返回False
         checkTextbox=true
Err_Handler:
end function
4#
发表于 2015-4-29 17:38:21 | 只看该作者
写成自定义函数,随时调用不就可以了吗?
Public Function ExistCtrl(ByVal frm As Form, ByVal ctrlname As String) As Boolean
    Dim ctrl As Control
    Dim B As Boolean
    B = False
    For Each ctrl In frm.Controls
        If ctrl.Name = ctrlname Then
            B = True
            Exit For
        End If
    Next
    Set ctrl = Nothing
    ExistCtrl = B
End Function
5#
 楼主| 发表于 2015-5-6 09:50:45 | 只看该作者
盗梦 发表于 2015-4-29 17:25
private function checkControl(strName  as  string) as boolean
On  Error  goto  Err_Handler
        ...

谢谢  盗梦
你的方法完全可行,而且比较省事。谢谢!
6#
 楼主| 发表于 2015-5-6 10:00:03 | 只看该作者
todaynew 发表于 2015-4-29 17:38
写成自定义函数,随时调用不就可以了吗?
Public Function ExistCtrl(ByVal frm As Form, ByVal ctrlname  ...

谢谢 todaynew 版主

你的方法真管用,谢谢!

真的佩服你代码的专业和标准
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-29 18:03 , Processed in 0.093633 second(s), 30 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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