|
БД Клиенты и заказы. Как лучше проверять существование клиента при добавлении заказа?
|
|||
---|---|---|---|
#18+
Привет знатокам Access! У меня 2 таблицы: клиенты и заказы. На форме размещаю поля из них, источник записей запрос: Код: sql 1.
Начинать ввод буду с email клиента. Если он совпадет с существующим email я бы хотел чтобы автоматически заполнились поля ID клиента, ФИО и телефон и мне бы осталось ввести данные заказа. В таблицу "клиенты" ничего не добавится, а в таблицу "заказы" добавится 1 запись. А если клиент с таким email не найдется я хочу ввести данные нового клиента и данные заказа, чтоб в обе таблицы добавилось по одной записи. Сейчас у меня при добавлении старого email добавляется новый клиент. Как лучше сделать? Поля хочу оставить как на скриншоте (т.е подчиненная форма наверное не пойдет). Делать поиск записей через VBA на основе email мне кажется некрасивым решением. Наверняка же есть простое и красивое решение? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2016, 20:10 |
|
БД Клиенты и заказы. Как лучше проверять существование клиента при добавлении заказа?
|
|||
---|---|---|---|
#18+
Описанный алгоритм надо реализовывать на свободной форме. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2016, 20:33 |
|
БД Клиенты и заказы. Как лучше проверять существование клиента при добавлении заказа?
|
|||
---|---|---|---|
#18+
Akina, в смысле на пустой? Не вопрос, могу создать пустую форму и поля из двух таблиц. А дальше как? Неужто придется на VBA проверять поле email каждый раз? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2016, 20:50 |
|
БД Клиенты и заказы. Как лучше проверять существование клиента при добавлении заказа?
|
|||
---|---|---|---|
#18+
visioНеужто придется на VBA проверять поле email каждый раз?А что тебя смущает, собсно? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2016, 21:48 |
|
БД Клиенты и заказы. Как лучше проверять существование клиента при добавлении заказа?
|
|||
---|---|---|---|
#18+
Akina, да вот думал вдруг эту задачу можно решить более элегантным способом) но раз вы говорите, что нельзя я верю, тогда сделаю через VBA, спасибо вам за ответ! ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2016, 21:58 |
|
БД Клиенты и заказы. Как лучше проверять существование клиента при добавлении заказа?
|
|||
---|---|---|---|
#18+
visioраз вы говорите, что нельзяНу почему... можно, если сильно извернуться... но счастье от того, что получилось, не стОит того геморроя, который с этого дела поимеется в нагрузку. Хотя есть ещё один, не самый плохой, вариант - это основная форма с единственным полем ИдКлиента, на ней подчинённая на основе таблицы Клиенты и подчинённая второго уровня на основе таблицы Заказы. И соответственно дизайн у них такой, чтобы весь этот конгломерат смотрелся как одна форма. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2016, 23:12 |
|
БД Клиенты и заказы. Как лучше проверять существование клиента при добавлении заказа?
|
|||
---|---|---|---|
#18+
ИМХО, форму надо строить на таблице Заказы. Поле email на форме сделать полем со списком (ПС) с источником - запрос к таблице Клиенты, возвращающий три поля. id - скрытый связанный столбец, затем email и ФИО. На форме поля "ФИО" и "id" сделать вычисляемыми (=[ПС].Column(2) для ФИО). При вводе нового email обрабатывать событие NotInList по классической схеме с открытием формы Клиенты в режиме диалога. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2016, 09:44 |
|
БД Клиенты и заказы. Как лучше проверять существование клиента при добавлении заказа?
|
|||
---|---|---|---|
#18+
visio, как вариант: ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2016, 13:50 |
|
|
start [/forum/topic.php?fid=45&msg=39309314&tid=1613152]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 353ms |
total: | 486ms |
0 / 0 |