У меня есть таблица, в которой хранятся счета-фактуры, и форма, основанная на этой таблице, которая выглядит как счет-фактура, чтобы вы могли искать предыдущие счета-фактуры. В настоящее время я создаю счета в Excel, а затем экспортирую данные в виде новой записи в таблицу счетов. Мне было интересно, есть ли способ создать счета из моей формы счета-фактуры. У меня есть таблица всех продуктов и цен, которые мы носим, которые будут использоваться для счета. Есть ли способ поместить кнопку поиска в форму счета-фактуры, которая будет искать запись или «продукт» в таблице продуктов и вставлять ее в поля нового счета-фактуры? Я просмотрел некоторый код для подключения к таблице продуктов и вставки его в поля в форме счета, но как мне выполнить поиск? Есть мысли или идеи? Любая помощь приветствуется!!
Доступ к форме, поиск записи из другой таблицы и вставка в поле текущей формы
Ответы (2)
Обработка этого с помощью VBA и управляющих событий обычно является лучшим выбором:
- Используйте свободное текстовое поле в вашей форме в качестве поля ввода поиска. Это позволит пользователю ввести некоторый текст в поле и нажать Enter или нажать соответствующую кнопку «GO», если вы решите выполнить какой-либо поиск.
- Установите свойство `OnChange` этого текста. box на имя макроса или метода, который вы разработали для обработки этого события (или свойства события click, если вместо этого вы настроили кнопку на a) проверьте значение текстового поля; и б) справиться с этим; обычно позволяет пользователю нажать клавишу ввода или нажать кнопку для выполнения этого действия). Вы также можете просто вызвать `inputbox` из какого-либо события нажатия кнопки, чтобы вывести подсказку, позволяющую пользователю ввести значение продукта для поиска.
- В вашем сценарии обработки используйте DLookup(), чтобы использовать это введенное пользователем значение в таблице продуктов для получить некоторую значимую ценность продукта, которую вы затем можете разместить в любом месте своей формы.
Кроме того, хотя я не знаком с вашей конкретной настройкой, кажется, что вам следует отказаться от файла excel и перейти к форме ввода MS Access с прямым интерфейсом пользователя. Вы можете обнаружить, что всегда легче иметь дело с пользовательским вводом напрямую, а не косвенно через сторонние файлы. Таким образом, вы лучше контролируете проверку пользовательского ввода и отзывы пользователей, а не опасаетесь того, что клиент Excel захочет поместить в эти электронные таблицы.
Не уверен, что это правильный дизайн. Вы выставляете счет только за один продукт?
Кроме того, это не звучит так, как будто вы думаете с точки зрения первичных ключей.
И это не звучит так, как если бы вы думали «относительно».
Позвольте мне уточнить. В большинстве систем выставления счетов обычно есть таблица Invoices, а затем таблица InvoiceItems. Связь между элементами счета и счетом-фактурой будет представлять собой один счет-фактуру (потенциально, но не обязательно) для многих элементов.
Затем у вас есть таблица «Продукты». Отношения между продуктами и элементами счета-фактуры — это один продукт для многих элементов счета-фактуры. Т.е. вы можете продавать данный товар многим разным покупателям.
Итак, у нас есть:
Invoices --> InvoiceItems
Products --> InvoiceItems
Теперь вам нужно реализовать это в ваших формах.
Сопоставляя ваши таблицы и их отношения, вы создаете InvoiceForm и создаете InvoiceItemsSubForm. Подформа InvoiceItemsSubForm для хранения многих элементов является непрерывной формой.
В подформе InvoiceItemsSubForm у вас будет поле, которое принимает первичный ключ продукта (наряду с другими полями, такими как дата, количество приобретенных продуктов и т. д.).
Для поиска ваших продуктов у вас может быть поле со списком с полями ProductId и ProductName. Это поле со списком служит двум целям: оно позволяет вам искать ваши продукты и позволяет вам вводить продукт, который вы хотите, в свою запись InvoiceItem.
Если я неправильно понял ваш вопрос, мои извинения. Если я правильно понял ваш вопрос, вам предстоит многому научиться...