2

ボタンクリックを介してComboBoxの名前をあるフォームから別のフォームに渡そうとしていますが、機能しないようです。私はMSAccessでの作業に慣れていませんが、それは簡単な答えだと確信しています。これが私がこれまでに持っているものです:

フォームA:

Private Sub Command104_Click()
On Error GoTo Err_Command104_Click

    Dim stDocName As String
    Dim stLinkCriteria As String

    stDocName = "Vol_Hrs"
    DoCmd.OpenForm stDocName, , , stLinkCriteria
    Forms.Vol_Hours.Search.Value = Me.Combo94.Column(0)

Exit_Command104_Click:
    Exit Sub

Err_Command104_Click:
    MsgBox Err.Description
    Resume Exit_Command104_Click

End Sub

フォームB:

Private Sub cmdAddNew_Click()
On Error GoTo Err_cmdAddNew_Click

    Dim stDocName As String
    Dim stLinkCriteria As String

    DoCmd.Close

    stDocName = "frmLookupScreen"
    DoCmd.OpenForm stDocName, , , stLinkCriteria
    Forms.frmLookupScreen.Combo94.Value = Me.Search.Column(0)

Exit_cmdAddNew_Click:
    Exit Sub

Err_cmdAddNew_Click:
    MsgBox Err.Description
    Resume Exit_cmdAddNew_Click

End Sub
4

1 に答える 1

0

オブジェクト、つまりテキストボックスを参照する場合は、これを使用します。

Forms!FormName!ObjectName.ObjectProperty = "Testing"

メソッドにアクセスするときは、これを使用してください。

Forms!FormName.Form.Method.

そうは言っても。フォーム間の情報を使用して、呼び出し元のフォーム名を取得する方がはるかに簡単です。そうすれば、そこにある電話フォームのほとんどすべての情報にアクセスできます。必要に応じて、コンボボックスやリストボックスの更新、テキストの変更、再クエリなどを行うために、データを呼び出し元のフォームにプッシュバックすることもできます。

Private Sub Form_Load()

    Set frmPrevious = Screen.ActiveForm

    Me.tbText.value = frmPrevious.cbPassTest.value

End Sub

そのコードを呼び出しているフォームのLOAD()に入れると、必要なものを引き出すことができます。

于 2013-02-11T15:40:47.367 に答える