如何引用用户当前文本框



在访问中,我试图不让用户退出文本框,除非他们填写了文本框(即没有将其填写为null)。这是在函数中完成的,以减少代码。在VBA中,是否有某种方法可以阻止用户退出功能?(我知道设置焦点,但我需要代码来从多种不同的文本框上工作)

作为参考,我的当前代码如下;

Function Reload()
 If IsNull(EmployeeID.Value) Or IsNull([First Name].Value) Or IsNull([Surname].Value) Or IsNull(DOB.Value) Or IsNull(Position.Value) Or IsNull(Position.Value) Or IsNull(Mobile.Value) Or IsNull(Email.Value) Or IsNull(Address.Value) Or IsNull(Suburb.Value) Or IsNull(Postcode.Value) Or IsNull([Start Date].Value) Or IsNull(UserLogin.Value) Or IsNull(UserPassword.Value) Then
   MsgBox "Please fill out all fields"
 Else
   DoCmd.RunCommand acCmdSaveRecord
   Form.Refresh
 End If
End Function

谢谢

我知道的最佳技术是使用BeforeUpdate事件运行数据验证。使用您的if语句,如果数据不有效,请设置

Cancel = True 

,数据不会写入。您可能希望禁用默认记录导航并形成关闭按钮并使用自定义按钮,以便您可以捕获无效的数据错误并防止移动到新记录或关闭表单。但是,即使您允许用户使用内置的内置导航按钮或关闭按钮访问,也会发布有关无法保存当前记录并提示用户是否要继续的错误消息。

您也可以进一步走,并在哪些字段无效并提供消息框。

Msgbox ("The following fields were left blank and must be entered to save this record:" & vbCrLf & "Field 1" & vbCrLf & "Field 2")

我在聊天室中使用的文本输入限制器进行了一些修改,这应该有所帮助。我称其为"必须键"的新功能,并将其称为您不想从输入中移动的文本框的丢失。

Private Sub MyTextBox_LostFocus()
    Call MustINPUT (Me.MyTextBox, 0)
End Sub

只需更改用户的消息。

Sub MustINPUT(ctl As Control, iMaxLen As Integer)
'Call MustINPUT(Me.txtSayThis, 0)
    If Len(ctl.Text) = iMaxLen Then
        MsgBox "Please Type something", vbExclamation, "Input Needed"
        ctl.Text = Left(ctl.Text, iMaxLen)
        ctl.SelStart = iMaxLen
    End If
End Sub

希望这有所帮助。DR,

相关内容

  • 没有找到相关文章

最新更新