2015-01-29 2 views
0

у меня есть доступ к базе данных Я здание (я уже писал иногда мои вопросы) и у меня есть общий вопрос о доступе мса:подчиненного Открытия в навигациях (ELI5)

Как открыть подчиненный внутри форма навигации?

У меня есть мастер/ребенок дерево, которое:

Main Navigation Form -> Main Student Records Navigation Form -> View All Students Datasheet -> View Edit Student

Моя цель состоит в том, чтобы нажать на идентификатор записи в таблицу, и это открыть «Просмотр/редактирование студента», что отображает полную информацию (у таблицы есть только несколько элементов).

Но я, честно говоря, не понимаю, как вызвать подформу, чтобы открыться так. Я читал об этом, и я подумал, что это будет что-то вроде

DoCmd.OpenForm Forms!NavigationForm.StudentNav_Form.ViewEditStud_Form

Но это не работает. Но эта проблема, с которой я сталкиваюсь, похожа на системный способ работы доступа. Я не уверен, что понимаю, как работают ссылки и вызовы объектов в VBA. Чтение статей msdn только сбивает меня с толку>. <

Спасибо всем!


EDIT: Я нашел это: navigating to a different tab in navigation subform

Команда BrowseTo кажется, что я хочу, но я не уверен, что понимаю, как писать синтаксис для перехода на нужную страницу ... Я Я собираюсь экспериментировать, но если у кого-нибудь есть идеи, я бы с удовольствием узнал!

+0

So ViewAllStudents - это подформация внутри Student и видна в исходной форме нагрузки? Похоже, вам просто нужно изменить источник записей ViewAllStudent. - - вы можете добавить событие _Click в форму, на которую они нажимают (если они нажимают на поле идентификатора в форме «Студенты», добавьте Sub с именем ID_Click в код «Студенты»). Когда код будет запущен, ID.Value будет удерживать значение, на которое они нажали. Затем вы можете изменить источник записей ViewAllStudents, чтобы показать записи этого идентификатора. – Acantud

ответ

0

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

DoCmd.OpenForm "FormName", acNormal, "", "[Record_ID] = " & Me.Record_ID, , acNormal 

Если record_id почему-то строка было бы в одинарные кавычки, как это:

DoCmd.OpenForm "FormName", acNormal, "", "[Record_ID] = '" & Me.Record_ID & "'", , acNormal 

Очевидно, что вам нужно будет заменить FormName с именем формы, которую вы хотите открыть, и Record_ID с фактическим именем этого столбца. По его мнению, ваше FormName, скорее всего, ViewEditStud_Form.

+0

Итак, я получаю все это, но просто ввод имени формы открывает новое окно. Мне бы хотелось, чтобы при нажатии пользователем на запись они нажимают на это из таблицы «Просмотреть всех студентов» (ребенок школьного навигатора, который является ребенком общей навигации), и он открывает запись в «view/edit student» (еще раз, ребенок студенческого nav, ребенок общего nav). Как я могу направить навигацию таким образом? – Apc0243

+0

Лично я бы рекомендовал установить свойство «Показать как гиперссылку» в одном из полей на «Только экран», затем перейти к событию on click для этого поля и поместить в код, который я разместил. В основном тогда, когда пользователь нажимает на имя ученика, он запускает этот код и открывает вторую форму, которая будет установлена ​​учеником, на который щелкнул пользователь. – Newd

+0

Ну, это то, что у меня было изначально, но оно не открывается в навигационной панели. Он открывается как новое окно, вы видите, что я говорю? Получение записи для открытия по щелчку не является проблемой, это направление формы, которое затем открывается в уже открытой форме навигации. Помните, что техническое описание является дочерним элементом студенческой навигация, и я бы хотел, чтобы представление/редактирование было открыто в качестве дочернего элемента студенческой натуры. – Apc0243

0

Я решил. Я не хотел DoCmd.Open Я хотел DoCmd.Browseto, как описано в сообщении выше. Синтаксис для просмотра для выглядит как:

DoCmd.BrowseTo acBrowseToForm, "ViewEditStud_Form", "NavigationForm.NavigationSubform>StudentNav_Form.NavigationSubform" 

Это мне потребовалось некоторое время, чтобы понять это, так что я собираюсь разбить его.

acBrowseToForm говорит, что я просматриваю форму (очевидно!) "ViewEditStud_Form" - это форма, которую я просматриваю. "NavigationForm.NavigationSubform>StudentNav_Form.NavigationSubform" - это инструкции по его открытию. NavigationForm - это название моей основной навигационной формы. .NavigationSubform> определяет, что в нем есть подчиненная форма, и эта подформация равна StudentNav_Form, которая содержит навигационную подформацию (а конец этого указывает, что эта подформация - это место, где должна открываться форма!)

Надеюсь, это поможет кому-то еще!

Смежные вопросы