Открыть новый экземпляр формы на основе данных в поле первой формы - PullRequest
0 голосов
/ 15 апреля 2011

У меня есть форма ввода данных, в которой клерк данных вводит идентификатор клиента среди прочего. Идентификаторы клиентов уникальны для каждого клиента. В настоящее время я отслеживаю дубликаты идентификаторов и позволяю продавцу перейти к форме поиска и найти дубликат идентификатора, чтобы убедиться, что это действительно один и тот же человек, а не ошибка при вводе данных. Я бы лучше открыл новый экземпляр формы ввода данных на основе идентификатора клиента, введенного в форму ввода данных. Я могу открыть новый экземпляр, но не уверен, как заставить его отображать данные клиента на основе идентификатора клиента.

1 Ответ

0 голосов
/ 18 апреля 2011

Нет хорошего способа сделать это, кроме как просто отключить рисование на экране.Вот код из одного из моих приложений:

    Dim frm As Form_frmInventory
    Dim strRecordsource As String
    Dim intType As Integer

    DoCmd.Hourglass True
    Application.Echo False
    Set frm = New Form_frmInventory
    frm!boxHeader.BackColor = 3276900 ' 5483007
    frm!boxFooter.BackColor = 3276900 ' 5483007
    strRecordsource = "SELECT qryInventoryForm.*, varZLStoNull(IIf([tblInventory].[InventoryClass] In ('BKS','FAC','MTH','MUS','REF','SSC'),[Creator] & [Dates] & OtherAuthors([OtherAuthors]))) AS BibCreator, CreatorDates([Birth],[Death],[OtherAuthors]) AS Dates, varZLStoNull(Trim(nz(UCase([tblBib_Authors].[LastName]) & IIf(Not IsNull([tblBib_Authors].[FirstName]),', ') & [tblBib_Authors].[FirstName],'Anon.'))) AS Creator, tblBib_Authors.CreatorCategories, Nz([CreatorSort],[LastName] & [FirstName]) AS NameSort FROM qryInventoryForm LEFT JOIN tblBib_Authors ON qryInventoryForm.CreatorID = tblBib_Authors.CreatorID WHERE ([quantity]>0 Like getSold()) AND (qryInventoryForm.InventoryID=" & lngInventoryID & ") ORDER BY Nz([CreatorSort],[LastName] & [FirstName]), InventoryClass, ShortTitle;"
    frm.RecordSource = strRecordsource
    ' need to change the caption and disable certain things
    frm.Caption = frm.Caption & " -- " & frm!InventoryClass & "-" & Nz(frm!InventoryNo, Format(frm!InventoryID, "00000"))
    frm!fldShortTitle.SetFocus
    frm!cmbClassFind.Enabled = False
    frm!cmbCreatorFind.Enabled = False
    frm!cmbInventoryNumber.Enabled = False

  [etc.]

    frm.Visible = True
    GoTo exitRoutine

  CloseForm:
    Call CloseForm(Me, True)

  exitRoutine:
    Application.Echo True
    DoCmd.Hourglass False
    Exit Sub

Суббота CloseForm () очень важна, так как вам нужно отслеживать несколько экземпляров формы и закрывать нужный.Я получил код от ADH97 и адаптировал его оттуда (только основы).

Из этого кода (я забыл подробности) может показаться, что форма, созданная с помощью Set frm = New Form_frmInventory, не видна доВы явно раскрываете это.Это плюс, так как это должно означать, что вам не нужно выключать экран (т.е. Application.Echo False), но я уверен, что я все равно вспоминаю, что это нужно, чтобы все выглядело гладко.Моя память состоит в том, что форма будет отображаться с ее обычными цветами, а затем цвета фона будут заметно изменяться по мере выполнения кода.Это означает, что было видимым, поэтому я не уверен, почему необходимо явно установить форму видимой.

В любом случае, это должно помочь вам начать, я думаю!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...