Доступ к форме, поиск записи из другой таблицы и вставка в поле в текущей форме - PullRequest
0 голосов
/ 15 октября 2010

У меня есть таблица, в которой хранятся счета-фактуры, и форма на основе этой таблицы, которая выглядит как счет-фактура, так что вы можете искать предыдущие счета-фактуры.В настоящее время я создаю счета в Excel, а затем экспортирую данные в виде новой записи в таблицу счетов.Мне было интересно, есть ли способ, которым я мог бы создать счета из моей формы счета.У меня есть таблица всех продуктов и цен, которые мы несем, которые использовались бы для счета.Есть ли способ поместить кнопку поиска в форму счета, чтобы найти запись или «продукт» в таблице продуктов и вставить ее в поля нового счета?Я посмотрел некоторый код для подключения к таблице продуктов и вставки его в поля в форме счета, но как мне искать?Есть мысли или идеи?Любая помощь будет высоко ценится!

Ответы [ 2 ]

3 голосов
/ 21 октября 2010

Обработка этого через VBA и управление событиями, как правило, лучший выбор:

  1. Используйте несвязанное текстовое поле в форме в качестве поля ввода для поиска. Это позволит пользователю ввести некоторый текст в поле и нажать клавишу ввода или щелкнуть соответствующую кнопку «GO», если вы решите выполнить какой-либо поиск.
  2. Установите для свойства `OnChange` этого текстового поля управления имя макроса или метод, который вы разработали для обработки этого события (или щелкните свойство события, если вместо этого вы установили кнопку для ) проверьте значение текстового поля; и б) справиться с этим; обычно позволяет пользователю нажимать клавишу ввода или нажимать кнопку для выполнения этого действия). Вы также можете просто вызвать `inputbox` из некоторого события нажатия кнопки, чтобы вызвать запрос, позволяющий пользователю ввести значение продукта для поиска.
  3. В вашем скрипте обработки используйте DLookup () , чтобы использовать это пользовательское значение для таблицы ваших продуктов, чтобы получить какое-то значимое значение продукта, которое вы затем можете поместить в любое место в вашей форме.

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

0 голосов
/ 15 октября 2010

Не уверен, что это правильный дизайн.Вы выставляете счет-фактуру только за один продукт за один раз?

Кроме того, это не звучит так, как если бы вы думали в терминах первичных ключей.

И это не звучит так, как если бы вы думали "относительно"».

Позвольте мне уточнить.В большинстве систем фактурирования обычно есть таблица Invoices, а затем таблица InvoiceItems.Взаимосвязь между элементами счета-фактуры и счетом-фактурой будет представлять собой один счет-фактуру (потенциально, но не обязательно) для многих позиций.

Тогда у вас есть таблица «Продукты».Отношения между Продуктами и InvoiceItems являются одним продуктом для многих InvoiceItems.То есть, вы можете продавать данный продукт множеству разных клиентов.

Итак, у нас есть:

Invoices -->  InvoiceItems
Products -->  InvoiceItems

Теперь вам нужно реализовать это в ваших формах.

Соответствует вашемутаблиц и их взаимосвязей, вы создаете InvoiceForm и InvoiceItemsSubForm.InvoiceItemsSubForm для хранения многих элементов является непрерывной формой.

В InvoiceItemsSubForm у вас будет поле, которое принимает первичный ключ продукта (наряду с другими полями, такими как дата, количество приобретенных продуктов,и т. д.)

Для поиска ваших продуктов вы можете иметь поле со списком, содержащее поля ProductId и ProductName.Это комбинированное окно служит двум целям: оно позволяет вам искать ваши продукты и вводить нужный вам продукт в вашу запись InvoiceItem.

Если я неправильно понял ваш вопрос, мои извинения.Если я не понял ваш вопрос, вам есть чему поучиться ...

...