|
|
|
Проверка значений по нескольким полям.
|
|||
|---|---|---|---|
|
#18+
Собственно говоря есть три поля: "товар" "масса" "тип упаковки", и есть проверочная таблица всех возможных товаров с этими тремя полями, подскажите, пожалуйста, как мне сделать так, чтобы после занесения в Б.Д. этих трех параметров Access проверял их на соответствие в проверочной таблице, и если эти три параметра не соответствуют проверочной таблице, то Access выдавал бы ошибку. Буду ОЧЕНЬ признателен за любое мнение по моему вопросу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2004, 23:21 |
|
||
|
Проверка значений по нескольким полям.
|
|||
|---|---|---|---|
|
#18+
1. Создаем запрос: select top 1 * from однатаблица inner join другаятаблица on однатаблица.товар=другаятаблица.товар and однатаблица.масса=другаятаблица.масса and однатаблица.типупаковки=другаятаблица.типупаковки where и тут условие, что берется только последняя запись 2. if currentdb.openrecordset("тотсамыйзапрос").bof then msgbox... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2004, 23:28 |
|
||
|
Проверка значений по нескольким полям.
|
|||
|---|---|---|---|
|
#18+
Или лучше так: 1. Создаем запрос: select top 1 * from проверочнаятаблица where товар=p1 and масса=p2 and типупаковки=p3 2. dim q as querydef set q=currentdb.querydefs("тотсамыйзапрос") q.parameters!p1=товар q.parameters!p2=масса q.parameters!p3=типупаковки if q.openrecordset().bof then msgbox... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2004, 23:44 |
|
||
|
Проверка значений по нескольким полям.
|
|||
|---|---|---|---|
|
#18+
Спасибо, только правильно ли я понял, что p1 - это проверочная_таблица_товар и т.д.? И я не очень понимаю, что означает "top 1" для запроса, т.е. вроде получается, что мы берем первую запись, а должны ведь брать последнюю? :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2004, 23:57 |
|
||
|
Проверка значений по нескольким полям.
|
|||
|---|---|---|---|
|
#18+
И еще: запрос почему-то не работает, Access все время спрашивает параметры: однатаблица.товар однатаблица.масса однатаблица.типупаковки P.S. одна_таблица - это у меня те значения, которые надо проверить, а другая_таблица - это проверочная таблица. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2004, 00:37 |
|
||
|
Проверка значений по нескольким полям.
|
|||
|---|---|---|---|
|
#18+
Вот еще вариант, если поля на форме. Правильность написания соответствии с типом данных - это в FAQ Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2004, 06:10 |
|
||
|
Проверка значений по нескольким полям.
|
|||
|---|---|---|---|
|
#18+
авторправильно ли я понял, что p1 - это проверочная_таблица_товар и т.д.? Это не таблица, это параметр, в который подставляется значение - товар и т.д. авторИ я не очень понимаю, что означает "top 1" для запроса, т.е. вроде получается, что мы берем первую запись, а должны ведь брать последнюю? Мы выбираем из проверочной таблицы, поэтому последнюю брать не должны. Top 1 сделан для того, чтобы запрос работал быстрее, нам ведь не нужны данные из него, а надо только проверить, есть ли хотя бы одна запись. авторзапрос почему-то не работает, Access все время спрашивает параметры: однатаблица.товар Это из моего первого варианта. Не надо им пользоваться, второй лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2004, 12:45 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32428762&tid=1676326]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
315ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
| others: | 243ms |
| total: | 657ms |

| 0 / 0 |
