|
Microsoft Access 2000 (2003) - вопрос по макросам
|
|||
---|---|---|---|
#18+
Ребята, есть вопрос: Есть лаба по Access 2000(2003) и там задание: 1. Сделать запрос (вытягивает какие-то данные о продукте по его номеру) 2. На основании запроса необходимо сделать форму (сначала запрашивает номер продукта, а потом его открывает). 3. Сделать макрос: открывает форму (соответственно здесь будет сначала запрос на номер продукта, а потом сама форма), если введённый номер продукта не существует, то надо вывести об этом сообщение, затем закрыть форму, а потом открыть форму для ввода нового продукта. Загвоздка в том, как закрыть форму автоматически если нет такого продукта в таблице? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2010, 16:41 |
|
Microsoft Access 2000 (2003) - вопрос по макросам
|
|||
---|---|---|---|
#18+
Serega.M, А зачем открывать форму для отсутствующего продукта, чтобы потому мучиться с ее закрытием -- может, проще не открывать? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2010, 17:16 |
|
Microsoft Access 2000 (2003) - вопрос по макросам
|
|||
---|---|---|---|
#18+
kinotaurus, если это от меня зависело :) - Такая вот постановка задания. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2010, 17:19 |
|
Microsoft Access 2000 (2003) - вопрос по макросам
|
|||
---|---|---|---|
#18+
Serega.M, И это нужно реализовывать именно макросами -- не на VBA? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2010, 17:19 |
|
Microsoft Access 2000 (2003) - вопрос по макросам
|
|||
---|---|---|---|
#18+
kinotaurus, увы да.. полный текст постановки задачи: Создайте параметрический запрос на выборку «Запрос для макроса 8», выводящий значения полей инвентарной карточки по указанному пользователем инвентарному номеру, после чего создайте форму «фрм: для макроса 8» на основе этого запроса. Далее создайте макрос «Макрос 8», открывающий форму «фрм: для макроса 8» с табличным представлением данных. Если же инвентарной карточки с указанным номером не существует, то макрос должен закрыть форму «фрм: для макроса 8» и выдать на экран соответствующее сообщение. В этом случае после закрытия пользователем окна с сообщением должна открыться существующая форма «фрм8: Инвентарные карточки ОС» в режиме ввода новой записи, причем поле «РежимИспользования» уже должно содержать значение «"Сдано в аренду"», а поле «ДатаВыбытия» - текущую дату ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2010, 17:23 |
|
Microsoft Access 2000 (2003) - вопрос по макросам
|
|||
---|---|---|---|
#18+
Serega.M, Леденящая душу история... Где это так людей к работе с Access'ом готовят? Я макросы в руки не брал с 1997 года, так что уже и не помню, как с ними обращаются... Это ни разу не инструмент разработчика. Насколько я помню, переменные в макросах не реализованы ни в каким виде, поэтому я бы действовал так: 1. Открываю форму -- действие OpenForm 2. В специально подготовленное поле кладу значение =InputBox("Введите номер продукта") -- действие SetValuwe 3. Если DCount() от запроса с этим значением возвращает 0 записей, закрываю форму -- действие Close -- и открываю другую форму -- действие OpenForm Как-то так... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2010, 17:45 |
|
Microsoft Access 2000 (2003) - вопрос по макросам
|
|||
---|---|---|---|
#18+
kinotaurus, Спасибо за ответ. Дома попробую. Это всё Белорусский государственный университет информатики и радиоэлектроники :) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2010, 17:48 |
|
Microsoft Access 2000 (2003) - вопрос по макросам
|
|||
---|---|---|---|
#18+
kinotaurus, Не могли бы вы пояснить: В специально подготовленное поле кладу значение =InputBox("Введите номер продукта") -- действие SetValuwe Это как выглядит? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.11.2010, 20:37 |
|
Microsoft Access 2000 (2003) - вопрос по макросам
|
|||
---|---|---|---|
#18+
Serega.M, вот так (рис) зы действительно, с такими "постановками" - ничего кроме отвращения к Акс-у, "непривьёш" )) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2010, 09:07 |
|
Microsoft Access 2000 (2003) - вопрос по макросам
|
|||
---|---|---|---|
#18+
Serega.M, Блин... Если бы это был Белорусский университет зимней спячки медведей, я бы еще понял. А так -- тому, кто писал программу обучения, надо оторвать все выступающие части тела... Белоруссии привет! (Я сам из Минска исходно...) :) Все остальное, кроме InputBox, получилось? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2010, 11:23 |
|
Microsoft Access 2000 (2003) - вопрос по макросам
|
|||
---|---|---|---|
#18+
kinotaurus, Увы не получилось. :( Сейчас сделано так: 1. ОткрытьФорму - имя формы: "фрм: для макроса 8" - режим: форма - режим данных: изменение - режим окна: окно диалога 2. ЗадатьЗначение - Элемент: [Формы]![фрм: для макроса 8]![ИнвентарныйНомер] - Выражение: InputBox("Введите Инвентарный Номер") 3. Закрыть - Тип объекта: Форма - Имя объект: "фрм: для макроса 8" - Сохранение: Нет 4. Сообщение - Сообщение: Нет такой записи. Добавить? - Сигнал: Да - Тип: Предупреждающее? - Заголовок: Нет такой записи 5. ОткрытьФорму - имя формы: "фрм: для макроса 8" - режим: форма - режим данных: добавление - режим окна: обычное Работает практически также, только добавляется запрос на ввод инвентарного номера при открытии формы. По поводу программы обсалютно с вами согласен.. пихают то что реально не применяется в жизни... Сам я с Access тоже работал года 4 назад.. теперь вот жене делаю лабу :) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2010, 13:21 |
|
Microsoft Access 2000 (2003) - вопрос по макросам
|
|||
---|---|---|---|
#18+
Serega.M, А что именно не получилось?.. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2010, 13:59 |
|
Microsoft Access 2000 (2003) - вопрос по макросам
|
|||
---|---|---|---|
#18+
Serega.M... Работает практически также, только добавляется запрос на ввод инвентарного номера при ...дык, а что вы сделали параметром в "параметрический запрос" ? должно было что-то типа Код: plaintext
покажите запрос ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2010, 14:05 |
|
Microsoft Access 2000 (2003) - вопрос по макросам
|
|||
---|---|---|---|
#18+
...даа, и дальше (п.3) - макрокоманда Обновить для [Формы]![фрм: для макроса 8] ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2010, 14:08 |
|
Microsoft Access 2000 (2003) - вопрос по макросам
|
|||
---|---|---|---|
#18+
kinotaurus, Вчера за минут 5-10 написал в Access 2010: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30.
Осталось проверить, что в Access 2003 заработает.. ? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2010, 08:48 |
|
Microsoft Access 2000 (2003) - вопрос по макросам
|
|||
---|---|---|---|
#18+
Serega.M, А как из этого макрос сделать?? Что касается будет работать или нет, то конечно будет, ведь всё абсолютно такое же, не вижу нового ничего. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2010, 09:43 |
|
Microsoft Access 2000 (2003) - вопрос по макросам
|
|||
---|---|---|---|
#18+
alvk, По сути это и есть макрос :) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2010, 09:44 |
|
Microsoft Access 2000 (2003) - вопрос по макросам
|
|||
---|---|---|---|
#18+
Serega.M, по сути это функция на VBA, а макрос вот тут: ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2010, 09:47 |
|
Microsoft Access 2000 (2003) - вопрос по макросам
|
|||
---|---|---|---|
#18+
alvk, Так что не получиться из vba сделать макрос? Странно.. я думал что если из макроса можно сделать vba, то и обратно можно... :(( Как же тогда так?? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2010, 09:49 |
|
Microsoft Access 2000 (2003) - вопрос по макросам
|
|||
---|---|---|---|
#18+
можно открыть форму, проверить прямо в этой форме наличие значения в поле того самого ключа - если значения нет (т.е. в случае когда запрос не выбрал ни одной записи) - закрыть эту форму, сообщить и открыть другую. в таком духе. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2010, 10:18 |
|
Microsoft Access 2000 (2003) - вопрос по макросам
|
|||
---|---|---|---|
#18+
Обратный перевод из VBA в макросы изначально не предпологается, потому как возможности VBA гораздо шире. Увы ! ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2010, 10:22 |
|
Microsoft Access 2000 (2003) - вопрос по макросам
|
|||
---|---|---|---|
#18+
нутакэта, спасибо - работает! Это просто великолепно! Осталось проверить для Access 2000(2003) (дома посмотрю, здесь только 2010), т.к. насколько я помню вызов [Forms]![фрм: для макроса 8]![Номер] у меня выбрасывал ошибку, что типа нет такой формы... И кстати он не переходил к макрокоманде 2 пока первую форму я сам не закрою.. Не знаю в чём проблема.. может в моём Access, а может это специфика работы Access? ALEXIS_22, Жаль что они не реализовали эту возможность, т.к. её наличие вполне логично ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2010, 10:35 |
|
Microsoft Access 2000 (2003) - вопрос по макросам
|
|||
---|---|---|---|
#18+
Serega.Mнутакэта, спасибо - работает! Это просто великолепно! Осталось проверить для Access 2000(2003) (дома посмотрю, здесь только 2010), т.к. насколько я помню вызов [Forms]![фрм: для макроса 8]![Номер] у меня выбрасывал ошибку, что типа нет такой формы... И кстати он не переходил к макрокоманде 2 пока первую форму я сам не закрою.. Не знаю в чём проблема.. может в моём Access, а может это специфика работы Access? ALEXIS_22, Жаль что они не реализовали эту возможность, т.к. её наличие вполне логично ;) Короче всё работает... по поводу проблемы описанной выше: проблема возникает когда форму открывать как "окно диалога"... ох.. всё так было просто ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2010, 19:08 |
|
|
start [/forum/topic.php?fid=45&msg=36960926&tid=1629648]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 249ms |
total: | 387ms |
0 / 0 |