Вопрос № 78141: Здравствуйте уважаемые эксперты!!! Подскажите пожалуйста, как сделать запрос в БД Access по типу: if id=1 then id_sales:="Cola", т.е. как организовать вычисления или присвоения, если для этого должно выполняться какое-то условие? Спасибо....Вопрос № 78200: Здраствуйте! Нужна помощь. Скажите пожалуйста как в MS Access 2003 сделать операции: редактирование данных, добавление и удаление. Как сделать так, чтобы таблицы,
запросы и т.д. хранить не в одном файле, а в разных и как их можно хранить в модулях. К...
Вопрос № 78.141
Здравствуйте уважаемые эксперты!!! Подскажите пожалуйста, как сделать запрос в БД Access по типу: if id=1 then id_sales:="Cola", т.е. как организовать вычисления или присвоения, если для этого должно выполняться какое-то условие? Спасибо.
Отправлен: 13.03.2007, 17:39
Вопрос задал: Piit (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Ерёмин Андрей
Здравствуйте, Piit!
Для изменения записей в таблице служит команда UPDATE. Для вашего примера запрос будет такой: UPDATE `table` SET `id_sales` = "Cola" WHERE `id` = 1
В результате во всех записях, где id = 1 поле id_sales примет значение "Cola".
Желаю удачи!
--------- Нет правила без исключений. Правило без исключений - исключение из правил.
Отвечает: Филатов Евгений Геннадьевич
Здравствуйте, Piit!
В некоторых SQL запросах, в частности в Access, будет работать такая запись ( все примеры из рабочих программ ) :
select obname, gr , iif ( nal = true , 'Да' , 'Нет' ) as na , iif ( bux = true , 'Да' , 'Нет' ) as bu from base
update base set m4_n=int ( ( price-izn_n-m1_n-m2_n-m3_n ) *100 * iif ( n_sch = '1' , 0.05 , iif ( n_sch = '2' , 0.25 ,0.15 ) ) / 4 + 0.5 ) / 100 WHERE nal = true and gr = 1 and not ( go = 8 and n_sch = '1' ) and shifr < 99999
По количеству вложений функции iif ( ) у меня получалось до 7, в теории не ограничено.
При работе с SQL Server функция iif ( ) не работает, нужно использовать оператор
CASE
WHEN условие THEN команды
..
ELSE команды
END
select HMnac as nac , HMpos as pos , cast ( HOst as float ) / 100 as dolg , ( CASE WHEN HZakr <= cast ( '1.1.2002' AS smalldatetime ) THEN '' ELSE '<>' END ) AS zak, * from Mir
С уважением.
Ответ отправил: Филатов Евгений Геннадьевич (статус: 6-ой класс)
Ответ отправлен: 13.03.2007, 18:23 Оценка за ответ: 4
Вопрос № 78.200
Здраствуйте! Нужна помощь. Скажите пожалуйста как в MS Access 2003 сделать операции: редактирование данных, добавление и удаление. Как сделать так, чтобы таблицы, запросы и т.д. хранить не в одном файле, а в разных и как их можно хранить в модулях. Как говорят, чтобы легче можно было модернизировать базу и работать. БД будет в месяц пополняться примерно на 260 записей. Ваши ответы очень мне помогут. Всех благодарю.
Отвечает: Архангельский Андрей Германович
Здравствуйте, Попов Николай!
1) 260 записей в месяц - это такие мелочи, что и говорить не стоит
2) При разделении БД на несколько частей нарушаются правила целостности, даже если СУБД это поддерживает.
3) MSAccess - рассматривает БД как один файл, кроме того в нем же лежат элементы управления.
Конечно из VB можно обратится к другому файлу, но проверка целостности лежит на программисте.
--------- Если дело заслуживает быть сделаным, то оно заслуживает, чтобы его сделали ХОРОШО
Отвечает: Grigory
Здравствуйте, Попов Николай!
1. Для выборки данных надо использовать команду SELECT - как это делается можно посмотреть в Help'е MS Access 2003, набрав в поиске слово Select, и выбрать в результатах SELECT STATEMENT
2. Для редактирования используется команда UPDATE - как пользоваться этой командой можно посмотреть в том же help'е, набрав в поиске update statement
3. Для удаления данных используется команда DELETE - как пользоваться этой командой можно посмотреть в том же help'е, набрав в поиске delete statement
--------- Если хочешь быть счастливым - будь им! (Козьма Прутков)
Ответ отправил: Grigory (статус: Студент)
Ответ отправлен: 14.03.2007, 18:26
Отвечает: Игорь Елизаров
Здравствуйте, Попов Николай!
Действительно, для удобства модернизации интерфейса и работы с базами ACCESS рекомендуется размещать их в разных файлах., например, собственно базу в одном файле, а интерфейс пользователя - в другом. при этом можно легко изменить интерфейс пользователя не затрагивая данных или , наоборот, изменять данные, не затрагивая интерфейс пользователя.
Это делается СВЯЗЫВАНИЕМ таблиц.
Этапность следующая.
допустим, есть Proect.mdb который включает и базу и элементы интерфейса пользователя в "одном флаконе"
таблицы данных называются table1 table2
Делаем следующим образом
1. Копируем Proekt.mdb -> Proekt_user.mdb
понятно, что сейчас этот проект полностью аналогичен первоначальному
2. В проекте Proekt_user переименовываем таблицу table1 -> table1_old
3. Далее в проекте Proekt_user делаем связь с таблицей table1 проекта Proekt
- Таблицы
- связь с таблицами
- выбираем проект Proekt
- выбираем таблицу table1
все, связь с table1 установлена
аналогично делаем и для table2
После этого проверяем работу Proekt_user
Если все работает нормально, то таблицы table1_old и table2_old можно удалить.
В дальнейшем можно менять интерфейс пользователя (Proekt_user) независимо от собственно данных ( базы Proekt) .
С уважением, Игорь
--------- Пользователь - тоже человек..
Ответ отправил: Игорь Елизаров (статус: 9-ый класс)
Ответ отправлен: 14.03.2007, 20:09