powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Не сохраняется запись в главной таблице
1 сообщений из 1, страница 1 из 1
Не сохраняется запись в главной таблице
    #39392684
jediAlex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. Есть проблема в БД на Access+SQL server. В БД есть таблицы:
1)ЕжедОтчет (НомерОтчета - счетчик,ключевое;ТабНомер - целое; ФамилияИмяОтчество - строка;Дата - Дата;ЧасовВОтчете - число)
2)ЕжТрудоЗатрата(Код - счетчик, ключевое; Назначение - число, внешний ключ; ВремяНадокумент - одинарное число; Дата - Дата; Время - Время; Отчет -число, внешний ключ из таблицы (1))
Сделал форму для добавления отчета, форма связана с таблицей "ЕжедОтчет" и содержит подчиненную форму для заполнения содержания отчета - таблица(2). Вот как сохраняю запись в БД:
Код: vbnet
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.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
On Error GoTo ErrHandle
Dim Count As Integer
Count = 0
With Me.ЕжТрудоЗатратаОтчета.Form.RecordsetClone
  .MoveFirst
  Do Until .EOF
    If IsNull(![Объект]) Or IsNull(![ВремяНаДокумент]) Then
      Count = Count + 1
    End If
    .MoveNext
  Loop
End With
 Me.ЧасовВотчете = Forms![EzhetOtchet]![ЕжТрудоЗатратаОтчета].Form![ИтогЗаДень]
ErrHandle: If Count = 0 Then
If Me.СуммаЗатратЗаДень.Value <> "" Then
'If (Count = 0) And ((Поле45 - RepItog) > 0) Then
 If MsgBox("Вы подтверждаете распределение часов по задачам?", vbYesNo) = vbYes Then
 If СуммаЗатратЗаДень <= 8 Then
 If СуммаЗатратЗаДень > 0 Then
 DoCmd.SetWarnings False
 DoCmd.OpenQuery "ОбновлениеОстатковВремени", , acEdit
DoCmd.OpenQuery "ОбновлениеОстатковЧасов", , acEdit
 MsgBox "Отчет принят.Спасибо Вам за работу!", vbOKOnly
  DoCmd.SetWarnings True
 ТекЗадачи.Requery

 DoCmd.Close acForm, "EzhetOtchet", acSaveYes
 Else
 MsgBox "Превышена длительность рабочего дня. Объем трудозатрат за день не должен превышать 8 часов. Отчет не может быть отправлен", vbOKOnly
 End If
 End If
End If
Else: MsgBox "Отчет заполнен не верно и не может быть отправлен.Проверьте заполнение отчета.Возможны ошибки:превышено допустимое время для распределения трудозатрат в отчете за день;" _
& "не выбраны работы из списка текущих задач;" _
& "введены трудозатраты в пустые строки отчета без выбора работ из списка;" _
& "необходимые работы выбраны из списка,введены в отчет,но по ним не заданы трудозатраты - не заполнено поле ЧасовФакт"
MsgBox "Нажмите кнопку ""Исправить ошибки заполнения отчета"",после чего проверьте заполнение отчета в результате исправления и повторите отправку,если считаете,что отчет заполнен корректно.Если некоторые позиции в результате исправления были удалены,повторите ввод данных позиций,соблюдая правила заполнения отчета"
Кнопка23.Enabled = False
End If
Else
MsgBox "При сохранении отчета произошла ошибка. Сформируйте отчет еще раз"
With Me.ЕжТрудоЗатратаОтчета.Form.RecordsetClone
  .MoveFirst
  Do Until .EOF
    .Delete
    
    .MoveNext
  Loop
End With
Me.Undo
DoCmd.Close acForm, "EzhetOtchet", acSaveNo
End If


Проблема в том, что не всегда срабатывает сохранение данных - не сохраняется запись в главной таблице "ЕжедОтчет". Это происходит при возрастании нагрузки на сервер и увеличении времени задержки доступа. Как бороться с этим? помогите пожалуйста.
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Не сохраняется запись в главной таблице
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]