Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: ввод данных
 
 автор: dimonicss   (19.06.2007 в 00:58)   личное сообщение
 
 

Вопрос простой.
Есть форма, основанная на одной таблице для ввода заказа. Есть в этой форме кнопка "Отменить заказ", на которую повешена макрокоманда ВыполнитьКоманду - ЗакрытьОкно. При этом если ни в одно из полей ничего не вводилось -= закрывается без последствий. Если же хоть в одно поле что-то ввелось - появляется новая запись в таблице. Почему появляется понятно. А нужно чтобы не появлялась.
Черканите плиз чего добавить в команды. И вообще что лучше использовать, макрокоманды (макросы) или VisualBasic (модули)?

  Ответить  
 
 автор: osmor   (19.06.2007 в 08:43)   личное сообщение
 
 

1.

me.undo

2. VBA - гибче и имеет больше возможностей.

  Ответить  
 
 автор: Егор   (19.06.2007 в 12:39)   личное сообщение
 
 

Испльзуй VBA. В твоем случае я бы перед закрытием формы всем полям присвоил бы Null, тогда в таблицу занесутся пустые записи(их можно удалить с помощью обычного запроса); можно использовать перед закрытием команду docmd.runcommand accmdundo

  Ответить  
 
 автор: ДрЮня   (19.06.2007 в 13:45)   личное сообщение
 
 

У Вас изначально неправильная логика.
должна быть кнопка "Добавить заказ", а не "отменить".
свойства формы должны быть выставлены таким образом, чтобы не происходило автомат. добавления/редактирования/удаления записи - все действия оператор должен совершать осознанно.
на форме располагаете поля, которые д.б. заполнены.
после их заполнения оператор нажимает кнопку "Добавить заказ", Вы проверяете, что все поля заполнены (нужно также проверять тип данных) - и если все правильно, добавляете заказ.

Резюме: если Вы хотите сделать действительно хорошую и корректно работающую программу, то Вам придется все писать ручками

  Ответить  
 
 автор: dimonicss   (29.06.2007 в 20:22)   личное сообщение
 
 

Целую неделю запарка была - не было времени попробовать хоть что-нибудь с программкой.
Кнопка добавить заказ и так есть. И добавляет все корректно. Но на этой же форме есть кнопка и отменить заказ. Форма для заказов открывается из другой формы нажатием на кнопку на которой повешены команда:
DoCmd.OpenForm "ПриемЗаказов", acNormal
DoCmd.GoToRecord , , acNewRec
То енсть открывается форма для внесения в таблицу с заказами новой записи. Но время от времени возникает ситуация когда начали вводить заказ и вдруг по какой-то причине его принимать не надо - тогда и нужно не внесение записи в таблицу, а его отмена.
Даже и не знаю что лучше - внесение как посоветовали пустой записи или вообще отмена всех изменений.

  Ответить  
 
 автор: dimonicss   (29.06.2007 в 21:11)   личное сообщение
 
 

Все вопрос отпадает. osmor оптимально посоветовал.
Повесил на кнопку "Отменить заказ" команду
Me.Undo
DoCmd.Close
И все - никаких пустых записей не вводится. Форма обнуляется и закрывается без внесения новых записей в таблицу.
И VBA действительно гибче. Да и редактировать удобнее.

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList