-Поиск по дневнику

Поиск сообщений в rss_sql_ru_access_programming

 -Подписка по e-mail

 

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 16.03.2006
Записей:
Комментариев:
Написано: 4


формирование записи в форме и выход из формы без сохранения в таблице БД

Четверг, 24 Апреля 2014 г. 09:45 + в цитатник
Здравствуйте. в БД на аксесс есть таблица "Отчеты" сполями: НомерОтчета - счетчик, ключевое, Сотрудник - целое число, Дата - Дата, краткий формат; ЧасовВОтчете - одинарное с плавающей точкой. У отчета есть подчиненные записи - трудозатраты, которые записываются в таблице Трудозатрата с полями: код - ключевое, счетчик;Назначение - целое число;ВремяНаДокумент - одинарное; Дата - дата, краткий формат. Таблицы ЕжедОтчет и ЕжТрудозатрата не связаны между собой, но подчиненная форма связана с главной: Основноеполе -НомерОтчета(свойства подчиненной формы, Подчиненные поля: отчет - поле в подчиненной форме). Сделал форму для записи отчета в таблицы, но необходимо предусмотреть, чтоб пользователь мог закрыть форму заполнения отчета без сохранения записей. Я это действие пытался реализовать нажатием на кнопку формы:
On Error GoTo ErrHandle
If MsgBox("Вы хотите выйти без сохранения отчета?", vbYesNo) = vbYes Then
DoCmd.SetWarnings False
DoCmd.RunSQL ("Delete * From Ежедотчет Where НомерОтчета=" & Me.НомерОтчета)
DoCmd.SetWarnings True
With Me.ЕжТрудозатратаОтчета.Form.RecordsetClone
  .MoveFirst
  Do Until .EOF
    If Not IsNull(![Назначение]) Then
      .Delete
    End If
    .MoveNext
  Loop
End With
ErrHandle: DoCmd.Close acForm, "EzhetOtchet"
End If

т.е. нужно, чтобы при выходе без сохранения ни отчет, ни его подчиненные записи не сохранялись. А происходит следующее: отчет сохраняется - добавляется запись в таблицу ЕжедОтчет все равно. Получается, что команда
DoCmd.RunSQL ("Delete * From Ежедотчет Where НомерОтчета=" & Me.НомерОтчета)

не срабатывает?
пробовал проверять с конкретным номером:
DoCmd.RunSQL ("Delete * From Ежедотчет Where НомерОтчета=7845"
.Так не работает тоже.В отладчике проверял строку
DoCmd.RunSQL ("Delete * From Ежедотчет Where НомерОтчета=" & Me.НомерОтчета)
- НомерОтчета присваивается, например Номеротчета=7850...

http://www.sql.ru/forum/1091006/formirovanie-zapisi-v-forme-i-vyhod-iz-formy-bez-sohraneniya-v-tablice-bd


 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку