Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   [решено] запрос на выборку с условием (http://forum.oszone.net/showthread.php?t=182208)

Setser 05-08-2010 12:58 1467354

запрос на выборку с условием
 
Здравствуйте уважаемые! у меня большая проблема. Весь гугл уже прочесал, всех на уши поднял не получается сделать что нужно :(
делаю БД в Microsoft Office Access 2007 для одного из отделов на работе. Документооборот, а он у них большой.
К этому сообщению я прикрепил архив с док файлом, там в принципи всё написано. Но тут тоже напишу.
Есть столбец с данными типа: А1, А2 .. Аn, П1, П2..Пn и так далее. Нужно в запросе создать ещё один столбец в котором будет расшифровка к А и П. то есть там где стоят А1, А2 .. Аn рядом в созданном столбце будет написано Акт. а там где П1, П2..Пn - письмо и так далее. всего не менее 18 всяких писем и актов.. Это мне нужно будет позже. Сделаю форму где будет написано какой документ просрочен и какой скоро будет просрочен (это поймёте когда док посмотрите).
Задача не сложная но я парюсь с ней уже невесть сколько :(
пробовал так - Расшифровка: IIf([№отдела]="П%";"Приказ";"гон") всегда пишет гон. когда стоит П1, П2..Пn не пишет письмо, а тоже пишет гон..
пробовал и так - IIf([№отдела]= LIKE 'П%';"Приказ";"гон").
то есть мне нужна функция ЕСЛИ и в неё будет вложена выборка по первой букве и ещё куча если.... Получается нечто такое -
((Если [№отдела]=П*; то = Письмо); иначе (Если [№отдела]=А*; то = Акт; иначе (Если N))).
Помогите пожалуйста люди добрые!

Delirium 09-08-2010 00:44 1469673

Цитата:

Цитата Setser
IIf([№отдела]="П%";"Приказ";"гон") »

Дык писать то надо не знак равно, а оператор LIKE. Не надо писать =LIKE, надо писать просто LIKE

Setser 10-08-2010 17:10 1470890

Мда, всё великое просто.. Спасибо огромное вам Delirium!! поставил бы вам 10+ за это сообщение да не получается :)
получилось вот такая формула (это не конец, бедет всего не менее 18 расшифровок)
Цитата:

Расшифровка: IIf([№отдела] Like "П*";"Приказ";IIf([№отдела] Like "АНТ*";"Акт натурально-технического обследования лесного участка";IIf([№отдела] Like "А*";"Акт выбора лесного участка";"ошибка")))

Setser 10-08-2010 20:33 1470991

Есть ещё вопрос. по этой же базе. не вижу смысла создавать другую тему.
и так, есть таблица корреспонденция. "№ отдела" выбирается так же из таблицы "маркировка". получается А1, А2.. П1, П2.. и так далее. в столбце "№ отдела" значения А, П и так далее. Нужно что бы была подстановка (это делается легко в подстановке"поле со списком" и указывается таблица "маркировка", где указаны все эти А и П.) и можно было выбрать только А, П и так далее (что в таблице "маркировка" будет).. то есть нельзя было написать всякие другие слова и цифры, например 123 или АПТ которых нет в списке-таблице "маркировка". Казалось бы легко поставить галки запрет на изменение и ограничиться списком. НО! тогда нельзя будет дописать номер! например А1, А2, П1, П2 и так далее, так как запрет на изменение и ограничение списком поставлен.. выходит запретить нужно но не нужно изменения.. не пойму вообще как сделать. :( помогите ещё разок пожалуйста!


Время: 10:06.

Время: 10:06.
© OSzone.net 2001-