powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
94 сообщений из 94, показаны все 4 страниц
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39817440
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И снова здравствуйте!
Есть форма, которая берёт данные из запроса, через VBA прикреплена ещё одна таблица, в которой берутся дополнительные данные Как в случае ошибки кода, сделать чтобы запускалась нужная форма, а не стандартная форма с запуском VBA конструктора.
По конкретике примерно так:
Код: vbnet
1.
If

Код: vbnet
1.
Set rs32 = CurrentDb.OpenRecordset("select * from [Крточка учета подчиненная] where Код=" & Me.Код)

если данная строка выдаёт ошибку то,
Код: vbnet
1.
Then


Код: vbnet
1.
2.
3.
4.
5.
6.
           DoCmd.Close
          oshibka = "Не указано или корректно указано оконечное устройство, в закладке ""ТХО"""
                DoCmd.OpenForm "Ф_Ошибка"
            Exit Sub
            Else
                 End If



Так вот проблема как объяснить машине вот это "ЕСЛИ"
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39817441
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005И снова здравствуйте!
Есть форма, которая берёт данные из запроса, через VBA прикреплена ещё одна таблица, в которой берутся дополнительные данные Как в случае ошибки кода, сделать чтобы запускалась нужная форма, а не стандартная форма с запуском VBA конструктора.
По конкретике примерно так:
Код: vbnet
1.
If


Код: vbnet
1.
Set rs32 = CurrentDb.OpenRecordset("select * from [Крточка учета подчиненная] where Код=" & Me.Код)


если данная строка выдаёт ошибку то,
Код: vbnet
1.
Then



Код: vbnet
1.
2.
3.
4.
5.
6.
           DoCmd.Close
          oshibka = "Не указано или корректно указано оконечное устройство, в закладке ""ТХО"""
                DoCmd.OpenForm "Ф_Ошибка"
            Exit Sub
            Else
                 End If




Так вот проблема как объяснить машине вот это "ЕСЛИ"
Для начала установить в форме обработчик ошибок.
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39817443
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Wawan2005
Код: vbnet
1.
    oshibka = "Не указано или корректно указано оконечное устройство, в закладке ""ТХО"""



ошибка
Код: vbnet
1.
    oshibka = "Не указано или НЕ корректно указано оконечное устройство, в закладке ""ТХО"""
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39817444
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ROIДля начала установить в форме обработчик ошибок.

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

Вот нашёл, но не пойму, что к чему
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Private Sub Form_Error(DataErr As Integer, Response As Integer)
Select Case  Me.ActiveControl.Name
Case "RS"
MsgBox "Правильно введите номер расчетного счета!"
Case "CodeBank"
MsgBox "Правильно введите код банка"
Case "Company"
MsgBox "Название организации введено неверно"
End Select
Response = acDataErrContinue
End Sub


откуда берётся "Me.ActiveControl.Name"
и откуда берётся "RS","CodeBank","Company"
как мне свои данные подцепить???
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39817456
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39817463
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ROI,

Ну прочитал, вот вроде нормальный обработчик, втыкаю -- не работает -(
Код: 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.
Sub BubbleWithFinal()

    On Error GoTo ErrorHandler

ExitHere:
    On Error Resume Next

    'сюда помещаем код, который отрабатывает в любом случае, обычно закрытие рекордсетов и разрушение переменных

           DoCmd.Close
          oshibka = "Не указано или не корректно указано оконечное устройство, в закладке ""ТХО"""
                DoCmd.OpenForm "Ф_Ошибка"
            Exit Sub


Dim err_num As Long, err_descr As String, err_ln As String
    If Len(err_descr) > 0 Then GoTo ErrorRaise
    Exit Sub
    Resume '>> remove in release
ErrorHandler:
    err_num = Err.Number: err_descr = Err.Description: err_ln = Erl
    Debug.Assert Not (STOP_AT_ERROR And IS_DEV) '>> remove in release
    Resume ExitHere
ErrorRaise: On Error GoTo 0
    Err.Raise err_num, "BubbleWithFinal of Module1", err_descr & vbCrLf & "in BubbleWithFinal of Module1 at " & err_ln
End Sub
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39817484
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005,

я слегка ошалел от вашего "перехватчика"
я пользуюсь стандартным способом, в 90 случаях хватает.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Private Sub MySub()

On Error Goto HandleError

'ваш код
'ваш код
'ваш код

ExitProc:
    Exit Sub
    
HandleError:
    MsgBox vbCrLf & Err.Description & _
            vbCrLf & vbCrLf & "  Имя формы = " & Me.Name & _
            vbCrLf & vbCrLf & "  Имя процедуры = 'MySub'", _
            vbCritical, "Ошибка " & Err.Number
    Resume ExitProc

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

Сделал так:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Private Sub MySub()

On Error GoTo HandleError

          DoCmd.Close
          oshibka = "Не определёно, удалённый ли объект."
                DoCmd.OpenForm "Ф_Ошибка"

ExitProc:
    Exit Sub
    
HandleError:
    MsgBox vbCrLf & Err.Description & _
            vbCrLf & vbCrLf & "  Имя формы = " & Me.Name & _
            vbCrLf & vbCrLf & "  Имя процедуры = 'MySub'", _
            vbCritical, "Ошибка " & Err.Number
    Resume ExitProc

End Sub


как ругался на строчку
Код: sql
1.
Set rs32 = CurrentDb.OpenRecordset("select * from [Крточка учета подчиненная] where Код=" & Me.Код)


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

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

Сама ошибка мне известна, он так ругается когда не ввели оконечное устройство или
оно не правильно записано, то есть в определённой таблице есть эталонные значения
оконечных устройств, и если ни с одним не совпадает то тогда выскакивает системная
ошибка, а я хочу чтобы выскакивала форма (или отчёт) в которой бы указывалось ,
что "Шарик ты балбес, введи правильно оконечное устройство!" -)
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39817582
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Wawan2005,

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

попробуй так
Set rs32 = CurrentDb.OpenRecordset("select * from [Крточка учета подчиненная] where Код = '" & Me.Код.Value & "'")
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39817587
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
Set rs32 = CurrentDb.OpenRecordset("select * from [Крточка учета подчиненная] where Код = '" & Me.Код.Value & "'")
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39817592
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Или может какую то проверку сделать, что если
Код: vbnet
1.
Данные_Литерка.П_Лист_Прог_УОО


не соответствует ни одному значению
Код: vbnet
1.
Оборудование ОВО.Наименование


то
Код: vbnet
1.
2.
3.
4.
           DoCmd.Close
          oshibka = "Не указано или не корректно указано оконечное устройство, в закладке ""ТХО"""
                DoCmd.OpenForm "Ф_Ошибка"
            Exit Sub


А если соответствует, то продолжай на здоровье.
Вот как то так.
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39817596
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ROI
Код: vbnet
1.
Set rs32 = CurrentDb.OpenRecordset("select * from [Крточка учета подчиненная] where Код = '" & Me.Код.Value & "'")


не, тоже самое

я не надолго отойду, спасибо за помощь, как приду так отпишусь.
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39817607
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005ROI
Код: vbnet
1.
Set rs32 = CurrentDb.OpenRecordset("select * from [Крточка учета подчиненная] where Код = '" & Me.Код.Value & "'")



не, тоже самое

я не надолго отойду, спасибо за помощь, как приду так отпишусь.
Dim rs32
set rs32 =
наверно должно быть
Dim rs32 As RecordSet
У вас ошибки в коде обработчик тут не причем.
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39817647
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005,

Вобщето для само-себя понимания лучше писать так:
DoCmd.Close acForm, "Имя Формы"

ИМХО апосля этого оператора возможно уже ничо не сработает, ну разве что кроме того, что есть (если оно есть) в процедурах, связанных с закрытием формы... возможно
вот это
oshibka = "Не указано или не корректно указано оконечное устройство, в закладке ""ТХО"""
DoCmd.OpenForm "Ф_Ошибка"
нужно писать До DoCmd.Close, а не после...
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39817734
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне кажется что просто надо посчитать количество записей в RS и если COUNT=0 просто MSGBOXом сказать о неправильности критерия, вернуть курсор в нужное поле и выйти из процедуры,ELSE выполнять Ваш код.Wawan2005Wawan2005,
Чтобы в конструктор ВБА не выкидывало, а то девчата(понимаю-как юзеры) теряются, и начинают творить неадекватности.-( Юзер,по моему, про существование "конструктор VBA",даже подозревать не должен
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39817741
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вдогонку:RS простейший-
проверьте имя таблицы( у Вас [ Кр точка учета подчиненная]),тип поля и его имя "код"
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39817778
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005,
обработчик ошибок обычно входит в процедуру где он эти ошибки отслеживает
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
sub sb()
on error goto handle
Set rs32 = CurrentDb.OpenRecordset("select * from [Крточка учета подчиненная] where Код=" & Me.Код)
'... тело процедуры
ex:
Exit sub
handle:
if err.number=3075 then
 DoCmd.Close
          oshibka = "Не указано или корректно указано оконечное устройство, в закладке ""ТХО"""
                DoCmd.OpenForm "Ф_Ошибка"
resume ex
end sub


тот обработчик ошибок, который Вы нашли собирает ошибки с других процедур, в которых свои обработчики генерируют ошибки чтобы перейти к нему - в Вашем случае это не то, т.е. его можно использовать, но как это делать нужно перечитать топик

и попробовать сделать- в процедурах в модуле обработки прописывается что-то типа этого
Код: vbnet
1.
Err.Raise Err.Number, MistakeFunction, Err.Description  & " at " & Erl


и вылетаем в процедуру которая создала эту программу. а там уже может быть тот обработчик- именно он создан для того чтобы закрывать при ошибке какие то например программы (эксель, ворд) и пр. и делать в логе ошибок внешнем например файле запись
шикарный вплывающий обработчик ошибок сделал mrShin - часто им пользуюсь, переделав под себя
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39817806
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
стесняюсь спросить: а какой тип у переменной rs32?
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39817809
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdkuстесняюсь спросить: а какой тип у переменной rs32?
Variant
ROIDim rs32
set rs32 =
наверно должно быть
Dim rs32 As RecordSet
У вас ошибки в коде обработчик тут не причем.
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #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
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39818250
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Michelle И как-то все же почитать что-нибудь, что ли...
Спасибо за добрый совет, но так много чтива, а так хочется быстро-)
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39818252
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Michelle,

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

добавил Loop
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Private Sub Кн_Литерка_Click()
Dim rs33 'As Recordset
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
Loop
End Sub


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

Do - просто не убирается, ещё и Until - убрал, начинает ругаться на Set....
М-м-м-м.....

То есть, пытаетесь убрать всего две буквы "Do" ?

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

Код: vbnet
1.
Set rs33 = CurrentDb.OpenRecordset("select * [Оборудование ОВО]")


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

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



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

Я тут последовал Вашему совету и напоролся на интересную вещь
· метод Find предназначен для поиска по значению одного столбца. Он принимает в качестве параметра критерий поиска, насколько нужно отступить от исходной позиции, направление поиска и откуда нужно начать поиск. Очень удобно, что при определения критерия поиска можно использовать оператор Like с подстановочными символами. При обнаружении нужной записи метод Find переставляет курсор на найденную запись, если же запись не обнаружена, то курсор устанавливается на EOF (или BOF, если поиск был назад). Например, чтобы найти все немецкие фирмы в нашем Recordset для таблицы Customers, можно использовать код вида
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
rs.Find "country = 'Germany'"

Do While Not rs.EOF

            Wscript.Echo "Название фирмы: "; rs.Fields("CompanyName")

            mark = rs.Bookmark

            rs.Find "country = 'Germany'", 1, , mark

Loop




Помогите мне (точнее, если можно, напишите кусок кода) на основе этого
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39818268
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005но зависает
А в 21893926 так и написано:__Michelle И получить бесконечный цикл...
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39818270
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005__Michelle,

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

Если честно, мне понятие и не нужно, мне нужно чтобы заработала база,
а учится 44 летнему майору полиции думаю уже поздно.

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

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

Да я понял, заранее спасибо.
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39818280
DarkMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__MichelleВо-вторых, это было бы медвежьей услугой -
Истину глаголите ,друХ мой. :))
__MichelleМожет.
Но не обещаю.
Сегодня вряд ли.
Сударыня , не поддавайтесь на провокации . Учиться можно и в 50 , и в 60 , а в 45 жизнь только начинается.
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39818282
Фотография Лапух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMan...Учиться можно и в 50 , и в 60...
Вредный и злой ты какой та.
А как же - ХАЛЯВА ?
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39818286
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да подставить свои формы и поля то не сложно, но там как то ДОА или АДО надо прибздюхать

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Private Sub Кн_Литерка_Click()
?????????????
?????????????
?????????????
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
rs.Find "[Наименование] = Me.Me.П_Дан_Подч_2_УО"

Do While Not rs.EOF
'            Wscript.Echo "Название фирмы: "; rs.Fields("CompanyName")
            mark = rs.Bookmark
            rs.Find "[Наименование] = Me.Me.П_Дан_Подч_2_УО'", 1, , mark
Loop

If mark  <> Me.П_Дан_Подч_2_УО Then
    oshibka = "Не определён вид охраны"
    DoCmd.OpenForm "Ф_Ошибка"
Else
    Dim stDocName As String
    Dim stLinkCriteria As String
    stDocName = "Данные_Литерка"
    DoCmd.OpenForm stDocName, , , stLinkCriteria
End If
End Sub



а так то в принципе всё готово
P.S.: По крайней меря я так думаю-)
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39818352
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005Да подставить свои формы и поля то не сложно, но там как то ДОА или АДО надо прибздюхать

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Private Sub Кн_Литерка_Click()
?????????????
?????????????
?????????????
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
rs.Find "[Наименование] = Me.Me.П_Дан_Подч_2_УО"

Do While Not rs.EOF
'            Wscript.Echo "Название фирмы: "; rs.Fields("CompanyName")
            mark = rs.Bookmark
            rs.Find "[Наименование] = Me.Me.П_Дан_Подч_2_УО'", 1, , mark
Loop

If mark  <> Me.П_Дан_Подч_2_УО Then
    oshibka = "Не определён вид охраны"
    DoCmd.OpenForm "Ф_Ошибка"
Else
    Dim stDocName As String
    Dim stLinkCriteria As String
    stDocName = "Данные_Литерка"
    DoCmd.OpenForm stDocName, , , stLinkCriteria
End If
End Sub



а так то в принципе всё готово
P.S.: По крайней меря я так думаю-)

Вместо всей этой чуши.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
Private Sub &#202;&#237;_&#203;&#232;&#242;&#229;&#240;&#234;&#224;_Click()
 If DCount("*", "[&#206;&#225;&#238;&#240;&#243;&#228;&#238;&#226;&#224;&#237;&#232;&#229; &#206;&#194;&#206;]", "&#205;&#224;&#232;&#236;&#229;&#237;&#238;&#226;&#224;&#237;&#232;&#229; = " & Me.&#207;_&#196;&#224;&#237;_&#207;&#238;&#228;&#247;_2_&#211;&#206;) = 0 Then
  oshibka = "&#205;&#229; &#238;&#239;&#240;&#229;&#228;&#229;&#235;&#184;&#237; &#226;&#232;&#228; &#238;&#245;&#240;&#224;&#237;&#251;"
  DoCmd.OpenForm "&#212;_&#206;&#248;&#232;&#225;&#234;&#224;"
 Else
  DoCmd.OpenForm "&#196;&#224;&#237;&#237;&#251;&#229;_&#203;&#232;&#242;&#229;&#240;&#234;&#224;"
 End If
End Sub
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39818354
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
Private Sub Кн_Литерка_Click()
 If DCount("*", "[Оборудование ОВО]", "Наименование = " & Me.П_Дан_Подч_2_УО) = 0 Then
  oshibka = "Не определён вид охраны"
  DoCmd.OpenForm "Ф_Ошибка"
 Else
  DoCmd.OpenForm "Данные_Литерка"
 End If
End Sub
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39818367
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__Michelle....Вместо всей этой чуши...
ТСу об этом говорилось уже давноsdku....существуют и другие способы определения числа записей в запросе,например иметь сохраненный запрос и старым-добрым Dcount это сделатьС подходом "надо все и сразу" VBA не одолеть...(Я так думаю!-Мимино)
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39818370
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdkuС подходом "надо все и сразу" VBA не одолеть...(Я так думаю!-Мимино)
Вряд ли ТС собирается одолевать VBA, сам же говорит "мне понятие и не нужно, мне нужно чтобы заработала база".
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39818468
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Michelle,

Здравствуйте, спасибо, что не забыли про меня.
Попробовал, ругается на
Код: vbnet
1.
 If DCount("*", "[Оборудование ОВО]", "Наименование = " & Me.П_Дан_Подч_2_УО) = 0 Then



P.S.: На всякий случай перекопировал [Оборудование ОВО], [Наименование], [Me.П_Дан_Подч_2_УО]
вдруг ошибся в написании, а ннет всё правильно, по прежнему ругается.
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39818470
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как я понял "ТС" - это вы про меня, а почему "ТС"??
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39818482
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005Как я понял "ТС" - это вы про меня, а почему "ТС"??
Так сокращенно называют автора топика, темы - "ТопикСтартер", калька с английского.

Wawan2005ругается
Значит, Наименование - текстовое поле, нужны кавычки.
Код: vbnet
1.
If DCount("*", "[Оборудование ОВО]", "Наименование = """ & Me.П_Дан_Подч_2_УО & """") = 0 Then
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39818492
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__MichelleЗначит, Наименование - текстовое поле, нужны кавычки.

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

Раз учиться не охота и некогда, Вам нужно немного отвлечься... ну например, пойти и поймать завтра пару - тройку преступников, всё ж майор полиции...
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39818495
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Michelle,
Пишет
Ошибка синтаксиса (пропущен оператор) в выражении запроса
'Наименование = "РСПИ Струна-5 Б-5 GSM+".
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39818497
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vmagРаз учиться не охота и некогда, Вам нужно немного отвлечься... ну например, пойти и поймать завтра пару - тройку преступников, всё ж майор полиции..
Я хоть и майор, но специфика другая, я по должность "Главный специалист" (по образованию радиоинженер)
моя работа компьютеры и сигнализация!
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39818502
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005__Michelle,
Пишет
Ошибка синтаксиса (пропущен оператор) в выражении запроса
'Наименование = "РСПИ Струна-5 Б-5 GSM+".
Покажите полностью, как выглядит в VBA строка с DCount.
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39818504
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Michelle,

If DCount("*", "[Оборудование ОВО]", "Наименование = """ & Me.П_Дан_Подч_2_УО & """") = 0 Then
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39818507
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: vbnet
1.
2.
3.
4.
5.
6.
If DCount("*", "[Оборудование ОВО]", "Наименование = """ & Me.П_Дан_Подч_2_УО & """") = 0 Then
  oshibka = "Не определён вид охраны"
  DoCmd.OpenForm "Ф_Ошибка"
 Else
  DoCmd.OpenForm "Данные_Литерка"
 End If
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39818511
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39818517
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Замените в П_Дан_Подч_2_УО кавычки на апострофы.
Код: vbnet
1.
If DCount("*", "[Оборудование ОВО]", "Наименование = """ & Replace(Me.П_Дан_Подч_2_УО, """", "'") & """") = 0 Then 
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39818522
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__MichelleЗамените в П_Дан_Подч_2_УО кавычки на апострофы.
Код: vbnet
1.
If DCount("*", "[Оборудование ОВО]", "Наименование = """ & Replace(Me.П_Дан_Подч_2_УО, """", "'") & """") = 0 Then 



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

Перелистал весь список Наименование, всегда уходит на ветку Ошибка.
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39818525
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо было и там, и там менять.
Код: vbnet
1.
If DCount("*", "[Оборудование ОВО]", "Replace(Наименование,'""','')=""" & Replace(Me.П_Дан_Подч_2_УО, """", "") & """") = 0 Then 
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39818527
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Michelle,

Попробовал узнать чему равно DCoint получилось , не значение поля Наименование,
а цифра 18 равная количеству строк таблицы Оборудование ОВО.
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39818528
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005__Michelle,

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

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

Перелистал весь список Наименование, всегда уходит на ветку Ошибка.
Нужно иметь словарь и использовать в основной таблице не словесные значения, а коды из словаря.
И сравнивать потом между собой не слова, а числа.
Меньше проблем будет.

Извините, я это сообщение писал до того как увидел Ваше.
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39818531
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005__Michelle,

Попробовал узнать чему равно DCoint получилось , не значение поля Наименование,
а цифра 18 равная количеству строк таблицы Оборудование ОВО.
Все верно.

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

Ещё раз ОГРОМНОЕ СПАСИБО, за ваше умение и огромное терпение, при общении с ... ну с такими как я. -))
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39818533
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Michelle
Все же придется Вам прочитать про DCount.
Для чего используется и что возвращает.

Попробую.
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39818589
DarkMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__MichelleВсе же придется Вам прочитать про DCount.
Для чего используется и что возвращает.
Ох не люблю я эти самые DSum, DCount и им подобные . Лично для себя я сделал такую штуку .На форуме уже тестировалась скорость выполнения по DCount сравнению с Recordset , практически одинаково . А плюсом , лично для меня является то , что создавая Запрос , я более наглядно вижу , то что мне нужно , к тому же создав строку через переменную , при пошаговой отладке я конкретно вижу , что я подсовываю в функцию. Это мое личное мнение , но мне так удобнее, и я никогда не использую DSum, DCount . :))
Код: vbnet
1.
2.
3.
4.
5.
Public Function fRs(strS As String) As DAO.Recordset
   Dim db As Database
   Set db = CurrentDb()
Set fRs = db.OpenRecordset(strS)
End Function
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39818691
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMan Ох не люблю я эти самые DSum, DCount и им подобные Ох люблю я такие аргументированные утверждения-по словам автора все доменные функции созданы для идиётов.
(хотя,если разобраться,где то глубоко-на системном уровне,они работают именно так,а довольно часто намного рациональней, чем предлагают "рационализаторы")
...
Рейтинг: 0 / 0
Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
    #39818733
DarkMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdkuвсе доменные функции созданы для идиётов.
каждый думает в меру своей распущенности. :))
...
Рейтинг: 0 / 0
94 сообщений из 94, показаны все 4 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как в случае ошибки кода, сделать чтобы запускалась нужная форма.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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