Запуск VB при щелчке строки в подчиненной форме таблицы в Microsoft Access 2013 - PullRequest
0 голосов
/ 08 июня 2018

Итак, я создаю базовую базу данных в Microsoft Access 2013. У меня есть ParentForm, называемая formLanding, и несколько подчиненных форм в этой ParentForm.По сути, я хочу, чтобы, когда пользователь щелкает строку в одной из таблиц подчиненной формы (в которой отображаются таблицы, такие как «Продукты» и «Пользователи»), я хочу иметь возможность отображать больше информации о том, на что они нажимали.

Допустим, у меня есть таблицы данных подчиненной формы, называемые продуктами, пользователями и местоположениями.Если бы пользователь щелкнул по строке в Продуктах, в поле / форме сбоку отобразились бы все Пользователи и Местоположения Продукта.Если бы пользователь щелкнул по строке в Locations, в этом же поле отобразились бы все продукты в этом местоположении.

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

Как мне это сделать?Как мне вызвать VB, когда пользователь щелкает строку, чтобы мои VB-запросы выполнялись и возвращали релевантную информацию, основанную на том, на что они нажали, а затем отправляли эту информацию другому объекту и отображали ее?Создан ли Access для обработки такого рода вещей?

Спасибо.

РЕДАКТИРОВАТЬ: я хотел добавить, что детали данных, которые я хочу отображать при нажатии строки, могут включать данные из нескольких таблиц ивернуть несколько строк.Например, продукт может иметь 5 пользователей и 2 местоположения.Я хотел бы отобразить эту информацию в той же форме / отчете.

Ответы [ 2 ]

0 голосов
/ 13 июня 2018

Это можно сделать, связав вложенные формы с родительской формой, используя свойства Child / Master в контейнере SubForm.

Предполагая, что вы можете определить связь между элементом управления (полем) в родительской форме иДанные в под формах Access выполнят эту задачу автоматически.

Если вы хотите связать несколько форм, вам может понадобиться использовать событие OnCurrent для подформ, чтобы изменить значение несвязанного текстового поля в родительской форме, чтобы принудительно обновить каскадное обновление других подформ.

0 голосов
/ 09 июня 2018

Я не могу ответить на все ваши темы, но эта строка обычно работает для запуска большего количества кода, когда определенные ячейки или строки выбраны / отредактированы.

Private Sub Worksheet_Change(ByVal Target As Range)

    If Intersect(Target, Range("O2:O2")) Is Nothing Then

    Exit Sub


    Else
    'Do the things

Или ссылка на конкретный лист и диапазон ячеекс Worksheets("Sheet1").Range("R17:R55")

...