ник: lexalex_84
Private Sub cmd_n_copy_Click()
On Error GoTo error_main
Dim dveri As Recordset
Set dveri = CurrentDb().OpenRecordset("dveri")
Dim n_s As String
Dim n As Integer
Dim schet As Integer
Dim otvet1 As Integer
Dim otvet2 As Integer
Dim lit As Long
Dim lit_n As Long
Dim lit_cc As Long
Me.Refresh
otvet1 = MsgBox("Создать несколько подобных изделий в рамках этого договора ?", vbOKCancel)
If otvet1 = 2 Then
MsgBox "Отменено пользователем"
otvet1 = DoEvents
Exit Sub
End If
n_s = InputBox("введите количество дверей в договоре") 'выводим форму для ввода
n = Val(n_s) 'переводим string в integer
If n = 0 Then
MsgBox "Ошибка ввода", vbCritical 'обрабатываем неправильный ввод
n = DoEvents
Exit Sub
End If
lit = Forms!Двери_Е!litera
If lit = 1 Then
lit_n = 1
lit_cc = 2
lit_n = DoEvents
lit_cc = DoEvents
End If
If lit <> 1 Then
If lit = 0 Then
otvet2 = MsgBox("Начальный номер изделия в договоре 0." & Chr(10) & _
"Исправить на 1 ?", vbOKCancel, "Предупреждение")
lit = DoEvents
If otvet2 = 1 Then
lit_n = 1
lit_cc = 2
End If
If otvet2 = 2 Then
MsgBox "Отменено пользователем"
Exit Sub
End If
End If
If lit <> 1 And Not lit = 0 Then
otvet2 = MsgBox("Начальный номер изделия в договоре не равен 1." & Chr(10) & _
"Исправить?", vbYesNoCancel, "Предупреждение")
If otvet2 = 7 Then
lit_n = lit
lit_cc = lit + 1
lit_n = DoEvents
in_otvet = MsgBox("Нумерация будет продолжена с " & lit_cc & "-го изделия", _
vbOKCancel, "Предупредждение")
If in_otvet = 2 Then
MsgBox "Отменено пользователем"
Exit Sub
End If
End If
If otvet2 = 6 Then
lit_n = 1
lit_cc = 2
End If
If otvet2 = 2 Then
MsgBox "Отменено пользователем"
Exit Sub
End If
End If
End If
Forms!Двери_Е!litera = lit_n
schet = n - lit_n
If schet < 0 Then
MsgBox "Ошибка ввода - текущий номер изделия больше чем у последнего", _
vbCritical 'обрабатываем неправильный ввод
Exit Sub
End If
If schet = 0 Then
MsgBox "Ошибка ввода - текущий номер изделия совпадает с последним", _
vbCritical
Exit Sub
End If
Do Until schet = 0 'запускаем цикл копирования
schet = schet - 1 '{!}f переписать на уровне записей
DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 2, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 5, , acMenuVer70
Forms!Двери_Е!litera = lit_cc
Forms!Двери_Е.Refresh
lit_cc = lit_cc + 1
DoCmd.GoToRecord acDataForm, "Двери_Е", acLast
Loop
Exit Sub
error_main:
MsgBox err.Description
Exit Sub
End Sub
Вот весь код....вылазит ошибка. см ошибка.JPG.
Имеется: таблицы хранятся в Мускуле, а в Аксе только линкованные таблицы, запросы, формы, отчеты.
Если вся база в Аксесе, то ошибок нет.....