伪弹出文本框以更新多个表单文本框

问题描述 投票:1回答:1

我有一个包含一个包含多个文本框的清单的表单,txtObs1,txtObs2,txtObs3等。每个文本框上的点击事件将弹出(实际上是隐藏的文本框可见)txtAddData。我可以在txtAddData中输入数据并使用afterupdate事件更新文本框但我想使用相同的txtAddData逐个更新表单上的其余文本框。

Private Sub txtAddData_AfterUpdate()
Me.txtObs1 = Me.txtAddData
Me.txtObs1.SetFocus
Me.txtAddData = ""
Me.txtAddData.Visible = False
End Sub

Private Sub txtObs1_Click()
txtAddData.Visible = True
txtAddData.SetFocus
If Not IsNull(Me.txtObs1) Then
Me.txtAddData = Me.txtObs1
Else
Me.txtAddData = ""
End If
End Sub
access-vba
1个回答
1
投票

设置变量以保存文本框的名称:

Option Compare Database
Option Explicit

Private CurrentTextbox As String


Private Sub txtAddData_AfterUpdate()

    Me.Controls(CurrentTextbox).Value = Me.txtAddData
    Me.Controls(CurrentTextbox).SetFocus
    Me.txtAddData = Null
    Me.txtAddData.Visible = False

End Sub


Private Sub txtObs1_Click()

    CurrentTextbox = "txtObs1"
    SetData

End Sub


Private Sub txtObs2_Click()

    CurrentTextbox = "txtObs2"
    SetData

End Sub


Private Sub SetData

    txtAddData.Visible = True
    txtAddData.SetFocus
    If Not IsNull(Me.Controls(CurrentTextbox).Value) Then
        Me.txtAddData = Me.Controls(CurrentTextbox).Value
    Else
        Me.txtAddData = Null
    End If

End Sub
© www.soinside.com 2019 - 2024. All rights reserved.