Office中国论坛/Access中国论坛

标题: Access VBA教程:PreviousControl属性(Access特有的属性) [打印本页]

作者: 盗梦    时间: 2015-4-15 10:51
标题: Access VBA教程:PreviousControl属性(Access特有的属性)
本帖最后由 盗梦 于 2015-4-15 10:58 编辑

PreviousControl属性特点:
    1、PreviousControl属性是VBA一个很特别的属性。
    2、它也非常有用。

    3、在VB中是没有这个属性的。

PreviousControl属性作用:
* 它主要是返回上次获得焦点的控件对象。
例如你选择一个文本框,然后 点击一个按钮,在这个按钮的事件中对前面的文本框 进行相应的处理。
这时就需要获取上一个获得焦点的文本框控件是哪个控件,这里PreviousControl属性就非常有用了。

Access VBA教程:PreviousControl属性将 PreviousControl属性用于Screen对象可以返回对上次获得焦点的控件的引用。只读。
expression.PreviousControl
expression   必需。返回“Applies To”列表中的一个对象的表达式。

说明
PreviousControl属性包含对上次获得焦点的控件的引用。一旦建立了对控件的引用,就可以访问该控件的所有属性和方法。
该属性仅在使用Visual Basic 时才可用。
除非在窗体打开后有多于一个控件获得焦点,否则不能使用 PreviousControl属性。如果窗体上只有一个控件获得焦点,则在试图使用该属性时 Microsoft Access 会出错。

VBA示例
在以下的示例中,如果上次获得焦点的控件不是txtFinalEntry 文本框,则显示一条消息。
  1. Public Function ProcessData() As Integer
  2.     ' No previous control error.   
  3.     Const conNoPreviousControl = 2483   
  4.     Dim ctlPrevious As Control     
  5. On Error GoTo Process_Err
  6.      Set ctlPrevious = Screen.PreviousControl
  7.     If ctlPrevious.Name = "txtFinalEntry" Then
  8.         'Process Data Here.
  9.         ProcessData = True
  10.     Else
  11.         ' Set focus to txtFinalEntry and display message.
  12.        Me!txtFinalEntry.SetFocus
  13.         MsgBox "请输入值."
  14.         ProcessData = False
  15.     End If
  16. Process_Exit:
  17.     Set ctlPrevious = Nothing
  18.     Exit Function
  19. Process_Err:
  20.     If Err = conNoPreviousControl Then
  21.         Me!txtFinalEntry.SetFocus
  22.         MsgBox "请输入值.", vbInformation
  23.         ProcessData = False
  24.     End If
  25.     Resume Process_Exit
  26. End Function
复制代码

作者: t小宝    时间: 2015-4-15 21:27
这个属性不错 有用,阿航研究很深入哈
作者: 盗梦    时间: 2015-4-16 09:01
t小宝 发表于 2015-4-15 21:27
这个属性不错 有用,阿航研究很深入哈

翻资料翻到的




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