|
|
|
| Вопрос простой.
Есть форма, основанная на одной таблице для ввода заказа. Есть в этой форме кнопка "Отменить заказ", на которую повешена макрокоманда ВыполнитьКоманду - ЗакрытьОкно. При этом если ни в одно из полей ничего не вводилось -= закрывается без последствий. Если же хоть в одно поле что-то ввелось - появляется новая запись в таблице. Почему появляется понятно. А нужно чтобы не появлялась.
Черканите плиз чего добавить в команды. И вообще что лучше использовать, макрокоманды (макросы) или VisualBasic (модули)? | |
|
| |
|
|
|
| 1.
2. VBA - гибче и имеет больше возможностей. | |
|
| |
|
|
|
| Испльзуй VBA. В твоем случае я бы перед закрытием формы всем полям присвоил бы Null, тогда в таблицу занесутся пустые записи(их можно удалить с помощью обычного запроса); можно использовать перед закрытием команду docmd.runcommand accmdundo | |
|
| |
|
|
|
| У Вас изначально неправильная логика.
должна быть кнопка "Добавить заказ", а не "отменить".
свойства формы должны быть выставлены таким образом, чтобы не происходило автомат. добавления/редактирования/удаления записи - все действия оператор должен совершать осознанно.
на форме располагаете поля, которые д.б. заполнены.
после их заполнения оператор нажимает кнопку "Добавить заказ", Вы проверяете, что все поля заполнены (нужно также проверять тип данных) - и если все правильно, добавляете заказ.
Резюме: если Вы хотите сделать действительно хорошую и корректно работающую программу, то Вам придется все писать ручками | |
|
| |
|
|
|
| Целую неделю запарка была - не было времени попробовать хоть что-нибудь с программкой.
Кнопка добавить заказ и так есть. И добавляет все корректно. Но на этой же форме есть кнопка и отменить заказ. Форма для заказов открывается из другой формы нажатием на кнопку на которой повешены команда:
DoCmd.OpenForm "ПриемЗаказов", acNormal
DoCmd.GoToRecord , , acNewRec
То енсть открывается форма для внесения в таблицу с заказами новой записи. Но время от времени возникает ситуация когда начали вводить заказ и вдруг по какой-то причине его принимать не надо - тогда и нужно не внесение записи в таблицу, а его отмена.
Даже и не знаю что лучше - внесение как посоветовали пустой записи или вообще отмена всех изменений. | |
|
| |
|
|
|
| Все вопрос отпадает. osmor оптимально посоветовал.
Повесил на кнопку "Отменить заказ" команду
Me.Undo
DoCmd.Close
И все - никаких пустых записей не вводится. Форма обнуляется и закрывается без внесения новых записей в таблицу.
И VBA действительно гибче. Да и редактировать удобнее. | |
|
| |