В Access форма заголовка требует связанного с ней адреса. Форма заголовка вызывает модальную форму адреса. При сохранении модальная форма адреса запишет идентификатор адреса в идентификатор адреса источника записи формы заголовка, а затем закроется. Возвращаясь к форме заголовка вызова, после запроса необходимо указать связанный идентификатор адреса, то есть ссылку FK. Я не получаю идентификатор адреса формы адреса, записанный в поле идентификатора адреса источника записи формы заголовка и, следовательно, не включаюсь в список для запроса. Значительная часть этого кода основана на нескольких вопросах SO. Форма заголовка вызывает функцию-оболочку для управления формой модального адреса:
Private Sub txtJob_AfterUpdate()
gbolDropShipAddressCompleted = False
'Use global variables for use in frmDropShipAddress SQL update statement
gtxtCurrentJobNumber = Me.Job
gtxtCurrentJobRelease = Me.REL
gtxtCurrentJob = Me.txtJob
'Call the wrapper function
gbolDropShipAddressCompleted = fNewDropShipAddressCompletion()
If gbolDropShipAddressCompleted = True Then
'Me.Dirty = False
Me.Requery
With Me.RecordsetClone
.FindFirst "[Job] = '" & gtxtCurrentJobNumber & "' And [REL] = '" & gtxtCurrentJobRelease & "'"
If Not .NoMatch Then
If Me.Dirty Then
Me.Dirty = False
End If
Me.Bookmark = .Bookmark
End If
End With
'Reset all variables
gbolDropShipAddressCompleted = False
gtxtCurrentJobNumber = ""
gtxtCurrentJobRelease = ""
gtxtCurrentJob = ""
End If
End Sub
Функция-оболочка:
Public Function fNewDropShipAddressCompletion() As Boolean
'Manages call to frmDropShipAddress
DoCmd.OpenForm "frmDropShipAddress", , , , , acDialog, "From frmPackingSlipHeader"
fNewDropShipAddressCompletion = gbolfrmDropShipAddressTofrmPackingSlipHeader
DoCmd.Close acForm, "frmDropShipAddress"
End Function
Два события модальной формы:
Private Sub btnSaveAddressInfo_Click()
DoCmd.RefreshRecord
'Update MAIN table with new address id using global variables
CurrentDb.Execute " UPDATE [MAIN] " & _
" SET intADDRESS_ID = " & Me.txtAddress_ID & _
" WHERE JOB = '" & gtxtCurrentJobNumber & "'" & _
" AND REL = '" & gtxtCurrentJobRelease & "'"
gbolfrmDropShipAddressTofrmPackingSlipHeader = True
Me.Visible = False
End Sub
Private Sub Form_Open(Cancel As Integer)
gbolfrmDropShipAddressTofrmPackingSlipHeader = 0
If Me.OpenArgs = "From frmPackingSlipHeader" Then
DoCmd.GoToRecord , , acNewRec
'Coded because TabCtlDatePicker opens all forms and openargs is NULL and causes all forms to be affected
ElseIf IsNull(Me.OpenArgs) Then
Exit Sub
' Else
' Me.PopUp = True
' Me.Modal = True
' Me.BorderStyle = 1
' Me.NavigationButtons = False
' Me.RecordSelectors = False
End If
End Sub
введите описание изображения здесь Интерфейс Access использует несколько элементов управления вкладками для выбора между множеством различных отчетов / дат и / или средств выбора данных, все отсортированные по страницам управления вкладками с помощью topi c. Бэкэнд - это сервер MS SQL через связанные таблицы. Адресную форму можно открыть для общего c просмотра или вызвать (модально). Кажется, я не могу получить правильный VBA, чтобы получить идентификатор адреса формы адреса, записанный в источник записи заголовка, и VBA, чтобы запросить заголовок и вернуться к правильной записи. Любая помощь будет оценена и TIA. Тим