Office中国论坛/Access中国论坛

标题: 窗口的快速查询栏VBA [打印本页]

作者: WANGDUYU    时间: 2008-11-15 06:17
标题: 窗口的快速查询栏VBA
这两天在攻坚Access,想简化操作。
我正在研究新课题,如何将查询条件在窗口输入之后,在同一个窗口中实时更新记录。
只是在编译器里,总是报错:"无法使用FindRecord"。

各位高手,我是从2007Access宝典里样例程序里纯抄下来放进去,在样例程序里挺好用。
界面见附件,事件过程的VBA如下。
Private Sub cboQuickSearch_AfterUpdate()
        txtContactID.SetFocus
        If Not IsNull(cboQuickSearch) Then
        DoCmd.FindRecord cboQuickSearch
    End If
End Sub

而我的基本相同,只是改写了变量的名字,如下:
Private Sub cboQuickSearch_AfterUpdate()
Dim TempID As Integer
    TxtID.SetFocus
    If Not IsNull(CboQuickSearch) Then
        TempID = Me.CboQuickSearch
       DoCmd.FindRecord TempID
    End If
End Sub
当我在运行时,在DoCMD.Findrecord处会报错,说“当前无法使用查找替换命令”。我认为是宏的运行限制,但是我已经把文件所有位置设为安全位置,同时,也在信任中心中更改了安全级别。不知道有没有别的原因,请赐教。

[ 本帖最后由 WANGDUYU 于 2008-11-15 06:23 编辑 ]
作者: ui    时间: 2008-11-15 08:39
DoCmd.FindRecord TempID
应该是数据表窗体获得焦点才能用吧?
作者: WANGDUYU    时间: 2008-11-15 09:47
标题: 谢谢UI
可是这段代码本身就这个窗体自己的Private的代码,
TxtID.SetFocus,已经把焦点选在数据框里了。
作者: ui    时间: 2008-11-15 13:52
查找命令最好在宏或菜单中执行,这样按钮就不会得到焦点
否则好象会提示无法使用这命令
作者: WANGDUYU    时间: 2008-11-16 10:55
谢谢元老级UI的指点,继续攻关。有问题再来讨论。
作者: WANGDUYU    时间: 2008-11-17 09:36
最终实验成功了,原来是自己摆了一个乌龙。

在一楼提到的窗体,是建立在一个查询上的,而不是表。后来改成数据表为控件来源,就一切正常了。

基本概念不清晰,就有这么严重的后果。




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3