我有一个表在2003年访问只应作有一个单独的记录。我可以设置 Cycle 酒店来 Current Record, 但形式仍然跳到下一个记录,当我按下输入。我首先想到的是一个 KeyPreview 酒店,但是我看不到一个。我的其他认为是可能的 KeyPressKeyUp 事件,但我想我会要求在情况下的意外后果。任何想法?

有帮助吗?

解决方案

循环特性只影响TAB键。

要控制Enter键,这是一个全球性质的行为。

转到工具/选项 - 键盘选项卡和“移动输入后”,选择“下一个字段”

有,你可以用它来捕获回车键太多按键响应和事件的KeyDown但是这更多的工作。

其他提示

这也可以在VBA进行。

Application.GetOption "Move After Enter" 'get current setting
Application.SetOption "Move After Enter", 0 'don't move
Application.SetOption "Move After Enter", 1 'Next Field
Application.SetOption "Move After Enter", 2 'Next Record

HTTP://www.pcreview。 co.uk/forums/enter-key-moving-next-field-t3454281.html

那一刻键喜欢 , Alt, 上一篇, 下一页, 输入 被压在末尾添加记录(在最后的领域大部分),该数据库自动保存所有的信息输入的形式和清除的领域,这样就可以进入下一个价值。所以会发生什么情况是,数据保存的形式,看起来是空的。

3的事情要做到:

  1. 形成周期性设定为目前的记录。
  2. 形成关键的预览的财产设定为"是"。
  3. 添加以下代码表示事件的形式:

    '33 - PgUp; 34 - PgDown; 9 - Tab; 18=Alt; 13=Enter
    
    Select Case KeyCode
    Case 33, 34, 18, 9, 13
    KeyCode = 0    
    Case Else
    'Debug.Print KeyCode, Shift
    End Select
    

    我发现这个的话精练的网络并不取信贷/职责的代码但我不知道我在哪里找到它。为我工作!

循环特性仅适用于Tab键。

有两种选择,你可以追求的。

您可以在陷阱中的KeyDown / KEYUP /的keyPressed点击回车键 - 或 - 点击 您可以在数据源过滤出你希望他们编辑的一个记录,并禁止通过表单添加新记录。

您可以在下面的代码添加到您的形式“更新前”事件。如果想使用移动到下一个记录,它会要求用户保存并关闭表单才可以移动到另一个recorde。

  Private Sub Form_BeforeUpdate(Cancel As Integer)
    Select Case MsgBox("Save?", vbYesNo)
      Case vbYes
        DoCmd.Close
      Case vbNo
        Cancel = True
    End Select
  End Sub

如果你进入访问选项的文件页面上,转到客户端设置和第一设置会让你选择在哪里你的焦点变化,当你按进入。至少在访问2013。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top