VBA DoCmd.Открыть форму по группе записей - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть форма (frmQATeam), которая суммирует записи на основе запроса.(qQATeam) Он показывает только некоторые из меньших полей, поэтому мне нужна кнопка, которая переводит меня в полноэкранный режим просмотра полной записи (frmQASingleView), включая поля memo и другие элементы большего формата.Я хочу видеть каждую запись, которая появляется в сводной форме, а не только одну.На этой кнопке я использую VBA, чтобы вытащить форму полного представления вверх.Я пробовал:

метод WHERE: DoCmd.OpenForm "frmQASingleView", , ,"Id = " Me.ID, но он предоставляет только выбранную запись, а не все 6, которые отображаются в frmQAteam.

Метод FilterName: DoCmd.OpenForm "QASingleView", , "qQATeamViewAll" но этот методвозвращает все записи в таблице.

И метод, который я видел, предложенный в другом месте в сети (да, он есть в навигационных подчиненных формах)

Dim rs As Object Dim lngBookmark As Long lngBookmark = Me.ID DoCmd.OpenForm "frmQASingleView" Set rs = Forms!MainMenu.Form!btnManagersMenu.Form!NavigationSubform.Form.RecordsetClone rs.FindFirst "ID = " & lngBookmark

Но этот метод также возвращает все записи в таблице.

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

Я сошел с ума и надеюсь, что кто-нибудь может помочь.

1 Ответ

0 голосов
/ 26 сентября 2018

Вы можете изменить RecordSource для frmQASingleView во время выполнения.Поэтому, если вы измените его на использование того же запроса, qQATeam, что и в первой форме, он должен отобразить те же 6 строк.: -)

Предложите сначала открыть форму, пустую и скрытую.

DoCmd.OpenForm FormName:="frmQASingleView", View:=acNormal, WhereCondition:="1=2", WindowMode:=acHidden

Затем измените RecordSource и раскройте ее.

Forms!frmQASingleView.RecordSource = "qQATeam"
DoCmd.OpenForm FormName:="frmQASingleView" View:=acNormal, WindowMode:=acWindowNormal
...