Как в форме вы отображаете данные из дочерних таблиц 2-й, 3-й степени, которые разделены различными отношениями? - PullRequest
0 голосов
/ 08 октября 2019

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

У меня есть пример отношения:

enter image description here

В приведенном выше случае у меня есть форма таблицы клиентов. Я хочу отобразить данные заказов и данные Order_details в этой форме, в зависимости от того, какой клиент выбран. Насколько я могу судить, я могу отображать только поля из таблицы «Заказы», ​​в то время как поля из таблицы «Order_Details» не могут быть заполнены.

Спасибо!

1 Ответ

0 голосов
/ 10 октября 2019

Можно предположить, что вы пытаетесь отобразить все 3 формы в одной сложной форме, но такой интерфейс может быть проблемой.

Лучше всего подумать о любых системах заказов, системах учета или дажесистема, которая распечатывает счета.

Итак, вы «можете» попробовать интерфейс, в котором отображаются все 3 формы и их значения.

Например, вот классическая форма «пожертвования»,Вверху формы (основная форма) у нас есть событие для пожертвования (одна таблица). enter image description here

С левой стороны у нас есть каждый пользователь и его сумма пожертвования (снова одна таблица). А с правой стороны мы имеем «разделение» пожертвованных средств на счета каких бухгалтерских книг (другая таблица). Итак, эта форма показывает способ разделения на 3 способа детализации.

Однако использовали ли вы когда-либо какое-либо программное обеспечение, например, программу бухгалтерского учета, или даже что-то, что делает счет?

В большинстве случаев вы будете искать / искать / вводить клиента. И как только вы нашли (или вошли) покупателя, вы можете сказать добавить заказ (или счет-фактуру или что-то еще), а затем добавить детали заказа или счета-фактуры. Таким образом, этот второй процесс или «вещь» может быть вашей формой заказа.

Затем возникает вопрос: поместите ли вы кнопку в форму для клиентов, чтобы запустить «просмотр и / или создать» заказ клиента, или вы положилиФорма на главной форме клиента, которая показывает каждый заказ? Это действительно зависит от вас. Вы склонны выбегать из комнаты довольно быстро. Однако одно интересное предложение - рассмотреть элемент управления вкладками и поместить форму заказа за этим элементом управления вкладками.

Просто имейте в виду, что для объединения таких связанных данных в Access каждая форма фактически основана на ОДНОЙ таблице. И вы строите формы каждая отдельно и на основе одной таблицы. Для дочерних таблиц вы используете подформу. Но в большинстве случаев вы находите клиента, а затем запускаете другую форму, в которой говорится, что вы выставляете счет-фактуру (или заказ), и эта форма обычно содержит дополнительную форму для деталей.

Таким образом, приведенное выше имеет3 уровня все в одной форме, но в большинстве случаев это не так уж и практично (и сложно развить). Тем не менее, вышеупомянутое довольно распространено, скажем, в быстрых книгах или учетных системах, в которых вы вводите некоторую сумму, а затем распределяете средства на различные счета.

Однако, для простоты разработки и отсутствия необходимости писать много кода (если таковой имеется), создайте форму, позволяющую осуществлять поиск и нахождение клиента. Это должна быть какая-то «основная» точка запуска или форма, которую ТОГДА позволяет добавить, скажем, добавить счета (или заказы).

Так что этот экран предназначен для выставления счетов. Мы находим (или вводим нового клиента).

enter image description here Обратите внимание, как счета отображаются в форме. Я могу нажать «Редактировать», чтобы запустить форму для редактирования формы счета (или в вашем случае).

Когда я нажимаю Изменить (или добавить новый счет), я получаю это: enter image description here

И отчет для печати выглядит следующим образом:

enter image description here

Итак, в каждом случае вы строитеФорма (ы) отдельная, и каждая форма основана на одной таблице (НЕ запрос !!!). Опять же: КАЖДАЯ форма основана на одной таблице. Реляционные возможности доступа достигаются с помощью субформ. Я также укажу, что вышеупомянутые формы счетов выглядят ОЧЕНЬ грубыми для этой системы счетов. Они были построены с Access 2003! Причина в том, что я использую это личное. Тем не менее, окончательная распечатка счета (стандартный отчет о доступе) выглядит хорошо, так как это то, что видит клиент. Я должен отметить, что это приложение на самом деле начало работать с моим пилотом. (так что я бы импортировал данные из приложения для выставления счетов на моем компьютере). Затем, когда вышел офис 365, я теперь использую веб-интерфейс, и он синхронизируется автоматически (поэтому я ввожу счета на свой телефон Android). Тем не менее, я планирую написать реальное приложение для моего телефона Android, но продолжу использовать это старое ржавое ведро системы выставления счетов! Таким образом, его прошло со 100% Windows. Затем работал с моим пальмовым пилотом. Тогда теперь в облаке с офисом 365, и скоро он будет работать с моим телефоном на Android!

Обратите внимание, что первая форма, которая разделяет суммы «пожертвований», является частью коммерческого приложения в Access, поэтому она выглядит действительноотлично. Но моя личная система выставления счетов выглядит уродливой и довольно «сырой», но, как уже отмечалось, окончательный счет, который я распечатываю или отправляю в формате PDF, выглядит действительно хорошо, и все это имеет значение.

Итак, я предлагаю: Главный клиентФорма - вы можете находить, редактировать или добавлять новых клиентов.

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

И вы можете использовать элемент управления «вкладка» и поместить дополнительные формы за вкладкой, так как вы, вероятно, исчерпали место наform.

Преимущество разрыва этого процесса состоит в том, что вы можете собрать все вместе, и ОЧЕНЬ мало кода потребуется. Фактически, вы, вероятно, можете достичь этой цели без необходимости писать какой-либо код VBA - вы можете использовать мастера.

Поэтому создайте форму «заказы» с «деталями заказа» в качестве вложенной формы. Форма «детали» представляет собой повторяющуюся форму данных (форма с несколькими элементами).

Однако ваша основная форма заказа не повторяется, а содержит такие вещи, как дата заказа, клиент (но на самом деле она содержит толькоcustomer_id).

«Стоимость» не должна быть частью формы заказа, так как эта информация указана как Item_Cost в форме сведений о заказе. А это значит, что вы можете «суммировать» сумму в любой момент времени.

Если ваши проекты хранят «стоимость» в основной части заказа, то вам нужно написать все виды кода, чтобы обновить и сохранить итоговую «стоимость», когда вы можете просто суммировать () суммировать повторяющиеся данные всубформа «детали».

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