Вопрос с запросом на обновление в Access

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
filudskou
Сообщения: 1
Зарегистрирован: 13 май 2013, 22:10

Доброго времени суток!

У меня 2 вопроса, правда один вытекает из другого.

1 вопрос.

Всего у меня три поля, нужно посчитать 4-ое, предварительно рассчитав второе (можно сделать статистическими данными, но лучше автоматизировать). Возможно ли это?
1 поле - Номер
2 поле - Этаж (1,2,3,4,5)
3 поле - Класс номера (стандарт, люкс, президент)
4 поле - Цена (1000 - заданное значение)

Условия:
1)
- Если поле "Номер" от 100 до 199 то поле "Этаж" становится равным 1.
- Если поле "Номер" от 200 до 299 то поле "Этаж" становится равным 2.
- Если поле "Номер" от 300 до 399 то поле "Этаж" становится равным 3.
- Если поле "Номер" от 400 до 499 то поле "Этаж" становится равным 4.
- Если поле "Номер" от 500 до 599 то поле "Этаж" становится равным 5.
2)
- Если поле "Класс номера" = стандарт и поле "Этаж" = 1, то поле "Цена" = 1000
- Если поле "Класс номера" = стандарт и поле "Этаж" = 2, то поле "Цена" = 1500
- Если поле "Класс номера" = стандарт и поле "Этаж" = 3, то поле "Цена" = 2000
- Если поле "Класс номера" = стандарт и поле "Этаж" = 4, то поле "Цена" = 2500
- Если поле "Класс номера" = стандарт и поле "Этаж" = 5, то поле "Цена" = 3000

- Если поле "Класс номера" = люкс и поле "Этаж" = 1, то поле "Цена" = 2000
- Если поле "Класс номера" = люкс и поле "Этаж" = 2, то поле "Цена" = 2500
- Если поле "Класс номера" = люкс и поле "Этаж" = 3, то поле "Цена" = 3000
- Если поле "Класс номера" = люкс и поле "Этаж" = 4, то поле "Цена" = 3500
- Если поле "Класс номера" = люкс и поле "Этаж" = 5, то поле "Цена" = 4000

- Если поле "Класс номера" = президент и поле "Этаж" = 1, то поле "Цена" = 3000
- Если поле "Класс номера" = президент и поле "Этаж" = 2, то поле "Цена" = 3500
- Если поле "Класс номера" = президент и поле "Этаж" = 3, то поле "Цена" = 4000
- Если поле "Класс номера" = президент и поле "Этаж" = 4, то поле "Цена" = 4500
- Если поле "Класс номера" = президент и поле "Этаж" = 5, то поле "Цена" = 5000

У меня получилось сделать это через 15 запросов, и я сделал макрос, можно ли его автоматизировать, чтобы каждый раз при изменении таблицы не выдавал табличку: "Разрешить изменения?"


2 вопрос.

У меня получилось сделать через sql-код данные действия, но возможно во-первых сделать это в конструкторе и у меня получилось сделать через запрос - создание новой таблицы, а в старой у меня маски ввода, типы данных, чтобы все это не прописывать, можно код представленный ниже перестроить в запрос на обновление?

Код: Выделить всё

SELECT Номер, [Класс номера], Этаж, Телефон, Уборка, [Примечание], Цена INTO Номера
FROM (SELECT [Номер], [Класс номера], val(mid([Номер],2))\100 AS Этаж, IIf([Класс номера]="стандарт",1,IIf([Класс номера]="люкс",2,3)) AS klass, Телефон, Уборка, [Примечание], ccur((1000*klass+500*(Этаж-1))*[Места]) AS Цена FR OM База)  AS [%$##@_Alias];
 
Если кому нужно залил файл, так как не получается добавить во вложения.

Заранее спасибо за ответы!
Ответить