У меня есть форма под названием «деталь», которая показывает подробный вид выбранной записи. Запись выбирается из другой формы, называемой «поиск». Потому что я хочу, чтобы иметь возможность открыть несколько экземпляров «деталей», каждые из которых показывают детали другой записи, я использовал следующий код:Передача аргументов в формы доступа, созданные с помощью «New»
Public detailCollection As New Collection
Function openDetail(patID As Integer, pName As String)
'Purpose: Open an independent instance of form
Dim frm As Form
Debug.Print "ID: " & patID
'Open a new instance, show it, and set a caption.
Set frm = New Form_detail
frm.Visible = True
frm.Caption = pName
detailCollection.Add Item:=frm, Key:=CStr(frm.Hwnd)
Set frm = Nothing
End Function
PatID является первичным ключом записи я хочу показать в этом новый экземпляр «детали». Строка отладочной печати выводит правильный пароль, поэтому я имею его доступным. Как передать его этому новому экземпляру формы?
Я попытался установить OpenArgs новой формы, но получаю сообщение о том, что OpenArgs только для чтения. После исследования OpenArgs может быть установлен только DoCmd (это не сработает, потому что тогда я не получаю независимые экземпляры формы). Я не могу найти документацию о допустимых параметрах при создании объекта Form. По-видимому, Microsoft не рассматривает конструктор как метод, по крайней мере, согласно документам. Как я должен справиться с этим? (PLZ не говорите мне установить его в невидимое текстовое поле или что-то в этом роде) Спасибо, ребята, вы, ребята, лучше всего в сети, отвечая на эти вопросы для меня. Я люблю всех вас!
Исходный код для формы мульти инстанции взят из: http://allenbrowne.com/ser-35.html
Ницца. Я понятия не имел, что «собственность» даже существовала. Со всем поисковым движком, который я сделал, вы думаете, что в какой-то момент он появится. Я уже реализовал решение, установив источник записи, но потом у меня возникла проблема, выяснив, что какая-то деталь уже открыта. Это должно решить эту проблему для меня. Кроме того, были проблемы с параметром источника записи, например, использование паттида для загрузки данных из других таблиц в подробном представлении. Необходимо было установить их с того же места, что и источник записи формы. Спасибо, RubberDuck. – user3646932
Добро пожаловать! Я счастлив, что смогу помочь. Я очень рекомендую [статью CPearson о классах в VBA] (http://www.cpearson.com/excel/classes.aspx). Это должно помочь прояснить любые возникающие у вас вопросы о том, почему это работает. – RubberDuck
Спасибо RubberDuck, что было полезно. Как кто-то, кто изучил ООП из Java/Python, я нахожу VBA ... странным. Я знаю, какие алгоритмы я хочу, но все же я ищу Google. Это раздражает. Вся информация, которую я могу получить, полезна, и Microsoft нелегко найти. – user3646932