powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
25 сообщений из 94, страница 2 из 4
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39817835
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ROI,
прошу прощения за повторение того на что Вы уже указывали
(не совсем внимательно смотрел)
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39817841
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdku,

Я так думаю, у ТС проблемы не с "ловлей ошибок", а с исправлением (сказывается отсутствие знаний)
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39817849
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdkuМне кажется что просто надо посчитать количество записей в RS и если COUNT=0 просто MSGBOXом сказать о неправильности критерия, вернуть курсор в нужное поле и выйти из процедуры,ELSE выполнять Ваш код.
А как посчитать COUNT= ??? вот как суда вставить умные операторы???

Код: vbnet
1.
2.
3.
Dim rs32, myStr11 As String, myStr12 As String, myStr15 As String, myStr16 As String
 Set rs32 = CurrentDb.OpenRecordset("select * from [Крточка учета подчиненная] where Код = '" & Me.Код.Value & "'")
Do Until rs32.EOF




sdku,
Юзер,по моему, про существование "конструктор VBA",даже подозревать не должен
и я того же мнения, поэтому и хочу как то прописать, чтобы ни что не выскакивало, даже если они
накосячили и не проверили перед входом в другую форму.
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39817850
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ROI(сказывается отсутствие знаний)
полностью согласен
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39817853
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005sdkuМне кажется что просто надо посчитать количество записей в RS и если COUNT=0 просто MSGBOXом сказать о неправильности критерия, вернуть курсор в нужное поле и выйти из процедуры,ELSE выполнять Ваш код.
А как посчитать COUNT= ??? вот как суда вставить умные операторы???

Код: vbnet
1.
2.
3.
Dim rs32, myStr11 As String, myStr12 As String, myStr15 As String, myStr16 As String
 Set rs32 = CurrentDb.OpenRecordset("select * from [Крточка учета подчиненная] where Код = '" & Me.Код.Value & "'")
Do Until rs32.EOF





sdku,
Юзер,по моему, про существование "конструктор VBA",даже подозревать не должен
и я того же мнения, поэтому и хочу как то прописать, чтобы ни что не выскакивало, даже если они
накосячили и не проверили перед входом в другую форму.
Код: vbnet
1.
2.
Dim rs32
Set rs32


Вас ничего не настораживает?
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39817860
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ROIВас ничего не настораживает?

Не.
Я же писал
Wawan2005ROI(сказывается отсутствие знаний)
полностью согласен
А что не так?
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39817861
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То откуда я это слизал, так и выглядело, я только "32" добавил.
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39817870
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
3.
4.
Dim rs32 as Recordset,myCount
set rs32=CurrentDB.OpenRecordset("инструкцияSQL-текстВашегоЗапроса"
rs32.MoveNext
myCount = rs.RecordCount  'число записей в RS
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39817879
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не дотянулся до цифровой клавиатуры
Код: vbnet
1.
myCount = rs32.RecordCount

существуют и другие способы определения числа записей в запросе,например иметь сохраненный запрос и старым-добрым Dcount это сделать
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39817887
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku,
Попробовал вот так
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Dim rs33 As Recordset, myCount
Set rs33 = CurrentDb.OpenRecordset("select * from [Крточка учета подчиненная] where Код =" & Me.Код)
rs33.MoveNext
myCount = rs33.RecordCount  'число записей в RS
  
  If myCount = 0 Then
           DoCmd.Close
          oshibka = "Не заполнены данные АКТа хронометража в форме ""Дополнительные данные"""
                DoCmd.OpenForm "Ф_Ошибка"
            Exit Sub
            Else
        End If



не помогло, так же ругается на ---Set rs33 =....

Попробовал вот так
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
If CurrentDb.OpenRecordset("select * from [Крточка учета подчиненная] where Код =" & Me.Код) > 0 Then
            Else
           DoCmd.Close
          oshibka = "Не заполнены данные АКТа хронометража в форме ""Дополнительные данные"""
                DoCmd.OpenForm "Ф_Ошибка"
            Exit Sub
            End If


сразу был послан в лес (вот это не понравилось OpenRecordset в If)
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39817891
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтоб сказать что-то конкретное надо видеть Ваш интерфейс объекта и разъяснение "хотелки"-может достаточно обязательного заполнения поля,проверки вводимого значения,выбор из списка и т.д
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39817896
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005, код в where заключается в кавычки, в конце ставится точка с запятой
Код: vbnet
1.
Set rs33 = CurrentDb.OpenRecordset("select * from [Крточка учета подчиненная] where ([Код] =" & Me.Код & ");")
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39817898
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005То откуда я это слизал, так и выглядело, я только "32" добавил.А наморщитm лоб при слизывании,слабо?
(поинтересоваться какого типа объект Recordset)
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39817900
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdkuЧтоб сказать что-то конкретное надо видеть Ваш интерфейс объекта и разъяснение "хотелки"-может достаточно обязательного заполнения поля,проверки вводимого значения,выбор из списка и т.д

сейчас выложу
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39817912
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005,
CurrentDB.Openrecordset есть набор записей,а не значение.If имеет аргумент условие-он должен иметь значение True/False. А с чем Вы сравниваете, каково его значение, набор записей?
надо так:
Код: vbnet
1.
2.
3.
4.
5.
If myCount=0 Then
'действия при отсутствии записей
Else
'при наличии
End If
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39817913
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот тело базы. (можно сказать ФРАНКЕНШТЕЙН, так как собрана из ВАГОНА кусков)

https://cloud.mail.ru/public/3exk/3Hnxgp6fm

Когда откроется, увидите, я оставил 2 абонента,
1-ый абонент с ошибкой, (это в закладке ТХО не правильно указано УОО)
2-ой абонент нормальный.
Так вот ошибка эта выскакивает(или не выскакивает) при нажатии кнопки "Литерное дело" (именно там используется в листе программирования поле УОО)
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39817915
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdkuWawan2005,
CurrentDB.Openrecordset есть набор записей,а не значение.If имеет аргумент условие-он должен иметь значение True/False. А с чем Вы сравниваете, каково его значение, набор записей?
надо так:
Код: vbnet
1.
2.
3.
4.
5.
If myCount=0 Then
'действия при отсутствии записей
Else
'при наличии
End If


я первый вариант так и сделал он на него не реагирует.
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39817916
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Wawan2005sdku,
Попробовал вот так
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Dim rs33 As Recordset, myCount
Set rs33 = CurrentDb.OpenRecordset("select * from [Крточка учета подчиненная] where Код =" & Me.Код)
rs33.MoveNext
myCount = rs33.RecordCount  'число записей в RS
  
  If myCount = 0 Then
           DoCmd.Close
          oshibka = "Не заполнены данные АКТа хронометража в форме ""Дополнительные данные"""
                DoCmd.OpenForm "Ф_Ошибка"
            Exit Sub
            Else
        End If




не помогло, так же ругается на ---Set rs33 =....
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39817921
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku,

А можно сделать, что при нажатии кнопки "Литерное дело", сверяется поле УОО , со веми записями
таблицы "Оборудование ОВО" и если нет совпадений то запускает форму "Ф_Ошибка", с соответствующим пояснением.
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39817938
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleckoWawan2005, код в where заключается в кавычки, в конце ставится точка с запятой
Код: vbnet
1.
Set rs33 = CurrentDb.OpenRecordset("select * from [Крточка учета подчиненная] where ([Код] =" & Me.Код & ");")


Ни первое, ни второе совершенно не обязательно.
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39817945
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__MichelleНи первое, ни второе совершенно не обязательно.

Полностью согласен

У меня вот так работает и не жужжит-)
Код: vbnet
1.
Set rs33 = CurrentDb.OpenRecordset("select * from [Крточка учета подчиненная] where Код = " & Me.Код)
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39817951
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005,
Разобраться с БД-займет больше времени чем сделать заново(в части касающейся Вашего вопроса)
поэтому:выложите форму(ы) с источником(если надо сверять с какими-то таблицами-их тоже) и поясните что надо сделать-как она себя должна вести.Никакого кода-интересует только какие данные отображаются в форме
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39818156
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
перечитал-как говорится утро вечера мудреннее,но все-равно не понялWawan2005И снова здравствуйте!
Есть форма, которая берёт данные из запроса(понятно),
через VBA прикреплена ещё одна таблица, в которой берутся дополнительные данные(не понятно-куда,как,зачем)
Как в случае ошибки кода(не понятно-код с ошибкой не "проглотит" редактор,может при ошибке выполнения),
сделать (не суть важно что именно) чтобы запускалась нужная форма, а не стандартная форма с запуском VBA конструктора.
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39818245
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробовал воткнуть в кнопку проверку на совпадение УО

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Private Sub Кн_Литерка_Click()
Dim rs33
Set rs33 = CurrentDb.OpenRecordset("select * [Оборудование ОВО]")
Do Until rs33.EOF
If rs33!Наименование <> Me.П_Дан_Подч_2_УО Then
    oshibka = "Не определён вид охраны"
    DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
    DoCmd.OpenForm "Ф_Ошибка"
        Else
    DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
    Dim stDocName As String
    Dim stLinkCriteria As String
    stDocName = "Данные_Литерка"
    DoCmd.OpenForm stDocName, , , stLinkCriteria
        End If
End Sub


Выдаёт ошибку "Do without Loop" что здесь не так, причём выдаёт это сообщение в любом случае,
Then или Else.
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39818248
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005Попробовал воткнуть в кнопку проверку на совпадение УО

Код: vbnet
1.
2.
3.
4.
5.
6.
Private Sub Кн_Литерка_Click()
Dim rs33
Set rs33 = CurrentDb.OpenRecordset("select * [Оборудование ОВО]")
Do Until rs33.EOF
...............................
End Sub


Выдаёт ошибку "Do without Loop" что здесь не так.
Всё ведь написано - "Do без Loop".

Loop нужно добавить. И получить бесконечный цикл...
Или Do убрать.

И как-то все же почитать что-нибудь, что ли...
...
Рейтинг: 0 / 0
25 сообщений из 94, страница 2 из 4
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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