Не удается передать значения между двумя всплывающими формами в Access 2013 - PullRequest
0 голосов
/ 15 января 2019

У меня есть ListBox в Access 2013, мне нужно передать значения из ( form1 ) в ( form2 ) после двойного щелчка на Lisbox в ( form1 ). Я уже попробовал этот способ: Приведенный ниже код, когда ( form2 ), работает нормально, но если формы свойство popup = true

Не работает, значения не могут быть прочитаны ( form2 ).

Private Sub Form_Activate()
    If CurrentProject.AllForms("SearchFrm").IsLoaded = True Then
        BBAIDHidenTxt.Value = Forms![SearchFrm]![SearchList].Column(0)
        PrNumberHidenTxt.Value = Forms![SearchFrm]![SearchList].Column(1)
        SupplierHidenTxt.Value = Forms![SearchFrm]![SearchList].Column(2)
        OrderDateHidenTxt.Value = Forms![SearchFrm]![SearchList].Column(3)
        TransactionTypeHidenTxt.Value = Forms![SearchFrm]![SearchList].Column(4)
        TotalValueHidenTxt.Value = Forms![SearchFrm]![SearchList].Column(5)
     End If
End Sub

примечание: я новичок в разработке базы данных доступа

Ответы [ 2 ]

0 голосов
/ 15 января 2019
  1. Вы можете использовать переменные TempVars или Publicic Variable, определенные в модуле, для хранения значения и последующего доступа к ним в другой форме.

  2. Лучший вариант - использовать опцию OpenArgs, как уже упоминалось в Minty.

Form1

Private Sub listBox_DblClick(Cancel As Integer)
    Dim lstStr As String
    lstStr = Me.listBox.Column(1)
    DoCmd.OpenForm "SearchFrm", acNormal, , , , acDialog, lstStr 
End Sub

Form2

Private Sub Form_Load()
    If Not IsNull(Me.OpenArgs) Then
        MsgBox Me.OpenArgs
    End If
End Sub
0 голосов
/ 15 января 2019

Всплывающая диалоговая форма останавливает весь код в вызывающей форме до тех пор, пока не будет закрыта вторая открытая форма.

Передайте значения в свойстве Openargs всплывающему окну.

...