powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Не могу разобраться, помогите, пожалуйста с кодом.
41 сообщений из 41, показаны все 2 страниц
Не могу разобраться, помогите, пожалуйста с кодом.
    #39774281
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ругается на переменную.

Нужно проверить свойства запроса [З_Приостанов] (если пусто до игнорировать запуск формы, ну и соответственно...)
но при запуске ругается на строчку -
Код: vbnet
1.
 Set rw1 = CurrentDb.OpenRecordset("select * from [З_Приостанов] where Код=" & Me.Код)


а именно "rw1 = "



Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Private Sub Form_Timer()
    If Time() = "11:42:00" Then
      Dim rw1 As String
      Set rw1 = CurrentDb.OpenRecordset("select * from [З_Приостанов] where Код=" & Me.Код)
      Do Until rw1.EOF
           If IsNull(rw1!Код) Then End If
             Else
             DoCmd.OpenForm "Ф_Оконч_Прост"
      rw1.MoveNext
           End If
      Loop
   End If
End Sub



Что не так?
...
Рейтинг: 0 / 0
Не могу разобраться, помогите, пожалуйста с кодом.
    #39774287
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005
Код: vbnet
1.
Dim rw1 As String


Dim rw1 As Recordset
...
Рейтинг: 0 / 0
Не могу разобраться, помогите, пожалуйста с кодом.
    #39774288
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rw1 должна быть объявлена как DAO.Recordset
...
Рейтинг: 0 / 0
Не могу разобраться, помогите, пожалуйста с кодом.
    #39774300
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MrShin,

Теперь ругается на всю строчку

Код: vbnet
1.
 Dim rw2 As DAO.Recordset
...
Рейтинг: 0 / 0
Не могу разобраться, помогите, пожалуйста с кодом.
    #39774303
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: vbnet
1.
 Dim rw1 As DAO.Recordset
...
Рейтинг: 0 / 0
Не могу разобраться, помогите, пожалуйста с кодом.
    #39774304
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И ещё сейчас вопрос возник, а правильно, что я делаю запрос из запроса?
...
Рейтинг: 0 / 0
Не могу разобраться, помогите, пожалуйста с кодом.
    #39774305
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005Что не так?Да собстно всё. Запускай невидимой форму со списком при старте приложения. Источником у списка служит твоя таблица З_Приостанов с фильтром. Создай процедуру где обновляй список (фильтр у него тоже обновляется) и проверяй в нём наличие записей по таймеру (и по загрузке формы). Если при обновлении появились записи, то делай форму видимой, останавливай таймер и делай всё чтобы привлечь пользователя. Далее форму "закрывают" (делают невидимой снова) и запускается у неё таймер далее. Всё. Никакие наборы записей тебя не интересуют.
...
Рейтинг: 0 / 0
Не могу разобраться, помогите, пожалуйста с кодом.
    #39774310
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005ругается на всю строчкуА референс-то на Microsoft DAO x.xx Object Library подключен? Впрочем, можно просто определить как
Код: vbnet
1.
Dim rw1 As Recordset


тогда будет использована текущая библиотека самого Access.
...
Рейтинг: 0 / 0
Не могу разобраться, помогите, пожалуйста с кодом.
    #39774311
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005
Код: vbnet
1.
If Time() = "11:42:00" Then

Ну и

Property Timer As Single
А ты с текстом сравниваешь.
...
Рейтинг: 0 / 0
Не могу разобраться, помогите, пожалуйста с кодом.
    #39774313
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akinaтогда будет использована текущая библиотека самого Access.она всё равно DAO
...
Рейтинг: 0 / 0
Не могу разобраться, помогите, пожалуйста с кодом.
    #39774315
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПанургНу и

Property Timer As Single
А ты с текстом сравниваешь.Не доглядел. Но всё равно там не текст
...
Рейтинг: 0 / 0
Не могу разобраться, помогите, пожалуйста с кодом.
    #39774317
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005а правильно, что я делаю запрос из запроса?Вряд ли.
Зачем получать поля всех всех записей, когда нужно только их количество, вернее, нужен факт, есть записи или нет. Тупо SELECT 1 FROM ... , и потом проверяешь, что (rs.BOF And rs.EOF) .
...
Рейтинг: 0 / 0
Не могу разобраться, помогите, пожалуйста с кодом.
    #39774318
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург,

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

Всё равно ругается на эту строчку
Код: vbnet
1.
 Dim rw1 As Recordset
...
Рейтинг: 0 / 0
Не могу разобраться, помогите, пожалуйста с кодом.
    #39774321
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панургона всё равно DAOЯ о том, что дефиниция DAO.Recordset требует референса, дефиниция Recordset - нет. И на первую влияет наличие самой библиотеки указанной версии на компе, а второй это пофиг.
...
Рейтинг: 0 / 0
Не могу разобраться, помогите, пожалуйста с кодом.
    #39774322
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

А не могли бы вы конкретно прописать код, идея ваша отличная, но как её исполнить я не знаю, я очень плохо знаю VBA.
...
Рейтинг: 0 / 0
Не могу разобраться, помогите, пожалуйста с кодом.
    #39774332
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005, Tools - References, найдите Microsoft DAO x.xx Object Library (если их несколько, возьмите старшую) и поставьте галку. Если в списке такой вообще нет - найди модуль daoXXX.dll (скажем, dao360.dll) в C:\Program Files (x86)\Common Files\microsoft shared\DAO.
...
Рейтинг: 0 / 0
Не могу разобраться, помогите, пожалуйста с кодом.
    #39774337
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

dao360 прописана, не помогает

p.s.я отойду, буду попозже, всем спасибо за участие и помощь!
...
Рейтинг: 0 / 0
Не могу разобраться, помогите, пожалуйста с кодом.
    #39774364
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
Private Sub Form_Timer()
   If Time() = TimeSerial(11, 42, 0) Then
      With CurrentDb.OpenRecordset("select * from [З_Приостанов] where Код=" & Me.Код)
         If Not .BOF
             DoCmd.OpenForm "Ф_Оконч_Прост"
         End If
      End With
   End If
End Sub
...
Рейтинг: 0 / 0
Не могу разобраться, помогите, пожалуйста с кодом.
    #39774386
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005, вот тебе пример по озвученному мной алгоритму 21810345 . Предупреждаю - после запуска файла форма откроется рандомно в течении 5 мин. Это имитация твоей задачи, только несколько ускоренная.

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

Большое спасибо, всё заработало, единственное после
Код: vbnet
1.
If Not .BOF

забыли
Код: vbnet
1.
Then

.
Это тем кто будет использовать данный код, и ещё он не работает без вот этого куска кода
Код: vbnet
1.
2.
3.
Private Sub Form_Load()
Me.TimerInterval = 1000
End Sub


То есть должно выглядеть вот так

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Private Sub Form_Load()
Me.TimerInterval = 1000
End Sub
Private Sub Form_Timer()
   If Time() = TimeSerial(11, 42, 0) Then
      With CurrentDb.OpenRecordset("select * from [Запрос] where Код=" & Me.Код)
         If Not .BOF Then
             DoCmd.OpenForm "Форма"
         End If
      End With
   End If
End Sub
...
Рейтинг: 0 / 0
Не могу разобраться, помогите, пожалуйста с кодом.
    #39774433
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург,

Спасибо вам большое, Ваш вариант тоже рабочий и полезный (всё ещё разбираюсь!)
...
Рейтинг: 0 / 0
Не могу разобраться, помогите, пожалуйста с кодом.
    #39774447
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спешу поправить cвоё невежество, но с новым кодом от Кривцова Анатолия работает без моего куска
Код: vbnet
1.
2.
3.
Private Sub Form_Load()
Me.TimerInterval = 1000
End Sub


эта часть кода не нужна.
сейчас у меня код выглядит так

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Private Sub Form_Timer()
   If Time() = TimeSerial(10, 0, 0) Or Time() = TimeSerial(11, 0, 0) Or Time() = TimeSerial(12, 0, 0) _
      Or Time() = TimeSerial(15, 0, 0) Or Time() = TimeSerial(16, 0, 0) Or Time() = TimeSerial(17, 0, 0) Then
      With CurrentDb.OpenRecordset("select * from [З_Приостанов] where Êîä=" & Me.Êîä)
         If Not .BOF Then
             DoCmd.OpenForm "Ф_Оконч_Прос"
         End If
      End With
   End If
End Sub
...
Рейтинг: 0 / 0
Не могу разобраться, помогите, пожалуйста с кодом.
    #39774457
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005эта часть кода не нужна.это сейчас не нужна эта процедура, потому как ты случайно (может намеренно) сохранил в свойствах формы временной интервал.


Wawan2005
Код: vbnet
1.
2.
If Time() = TimeSerial(10, 0, 0) Or Time() = TimeSerial(11, 0, 0) Or Time() = TimeSerial(12, 0, 0) _
      Or Time() = TimeSerial(15, 0, 0) Or Time() = TimeSerial(16, 0, 0) Or Time() = TimeSerial(17, 0, 0) Then

и так лучше не делать, а создать таблицу с настройками, иначе нужно будет лезть и править код каждый раз если нужно будет изменить расписание.
...
Рейтинг: 0 / 0
Не могу разобраться, помогите, пожалуйста с кодом.
    #39774462
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005
Код: vbnet
1.
With CurrentDb.OpenRecordset("select * from [З_Приостанов] where Код=" & Me.Код)

Это лучше заменить так
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
...
Private Sub Form_Timer()
   If Time() = TimeSerial(10, 0, 0)...
        If DCount("*","[Запрос]", "Код=" & NZ(Me.Код, 0))>0 Then
             DoCmd.OpenForm "Ф_Оконч_Прос"
        End If
   End If
...
...
Рейтинг: 0 / 0
Не могу разобраться, помогите, пожалуйста с кодом.
    #39774597
Wawan2005
Код: vbnet
1.
2.
If Time() = TimeSerial(10, 0, 0) Or Time() = TimeSerial(11, 0, 0) Or Time() = TimeSerial(12, 0, 0) _
      Or Time() = TimeSerial(15, 0, 0) Or Time() = TimeSerial(16, 0, 0) Or Time() = TimeSerial(17, 0, 0) Then

Этот огород можно заменить конструкцией:
Код: vbnet
1.
2.
3.
4.
5.
6.
Select Case Hour(Time())
  Case 10, 11, 12, 15, 16, 17
   If Minute(Time()) = 0 And Second(Time()) = 0 Then
      Действие...
   End If
End Select
...
Рейтинг: 0 / 0
Не могу разобраться, помогите, пожалуйста с кодом.
    #39774616
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кривцов Анатолий,

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

Спасибо, попробую.
...
Рейтинг: 0 / 0
Не могу разобраться, помогите, пожалуйста с кодом.
    #39774626
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaПанургона всё равно DAOЯ о том, что дефиниция DAO.Recordset требует референса, дефиниция Recordset - нет. И на первую влияет наличие самой библиотеки указанной версии на компе, а второй это пофиг.Прям в дырочку-гляньте этот скрин:
...
Рейтинг: 0 / 0
Не могу разобраться, помогите, пожалуйста с кодом.
    #39774639
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вдогонку-когда напишите DAO и поставите точку выпадет подсказка как на левой части скрина
...
Рейтинг: 0 / 0
Не могу разобраться, помогите, пожалуйста с кодом.
    #39774703
Wawan2005
Код: vbnet
1.
2.
If Time() = TimeSerial(10, 0, 0) Or Time() = TimeSerial(11, 0, 0) Or Time() = TimeSerial(12, 0, 0) _
      Or Time() = TimeSerial(15, 0, 0) Or Time() = TimeSerial(16, 0, 0) Or Time() = TimeSerial(17, 0, 0) Then

Если это неизменный список вариантов, то можно даже еще проще:
Код: vbnet
1.
If Format(Time(),"hh:nn:ss") Like "1[0,1,2,5,6,7]:00:00" Then
...
Рейтинг: 0 / 0
Не могу разобраться, помогите, пожалуйста с кодом.
    #39774789
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кривцов Анатолий,

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

Да я то понимаю, она так писала, только всё равно ругалась-(
...
Рейтинг: 0 / 0
Не могу разобраться, помогите, пожалуйста с кодом.
    #39774792
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku,

Спасибо за помощь, и прошу прощения за предыдущее недопонимание.
...
Рейтинг: 0 / 0
Не могу разобраться, помогите, пожалуйста с кодом.
    #39774826
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кривцов Анатолий
Код: vbnet
1.
If Format(Time(),"hh:nn:ss") Like "1[0,1,2,5,6,7]:00:00" Then

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

З_Приостанов

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
SELECT [Оперативные карточки].Код, [Оперативные карточки].[№ Доп], [Оперативные карточки].№_Договора, 
[Оперативные карточки].ОС, [Оперативные карточки].Статус_ОС, [Оперативные карточки].Дата_Оконч_Статус_ОС, [Оперативные карточки].ТС, 
[Оперативные карточки].Статус_ТС, [Оперативные карточки].Дата_Оконч_Статус_ТС, [Оперативные карточки].ФИО
FROM [Оперативные карточки]
WHERE ((([Оперативные карточки].ОС)="Есть") 
AND (([Оперативные карточки].Статус_ОС)="Приостановлена") 
AND (([Оперативные карточки].Дата_Оконч_Статус_ОС)=([Оперативные карточки].[Дата_Оконч_Статус_ОС])
Between Date() And DateAdd("d",3,Date()) Or ([Оперативные карточки].[Дата_Оконч_Статус_ОС]) 
Between Date() And DateAdd("d",-1000,Date()))) 
OR ((([Оперативные карточки].ТС)="Есть") 
AND (([Оперативные карточки].Статус_ТС)="Приостановлена") 
AND (([Оперативные карточки].Дата_Оконч_Статус_ТС)=([Оперативные карточки].[Дата_Оконч_Статус_ТС])
Between Date() And DateAdd("d",3,Date()) Or ([Оперативные карточки].[Дата_Оконч_Статус_ТС])
Between Date() And DateAdd("d",-1000,Date())));


*строка "WHERE " написана одной строкой.

И собственно сам код


Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
'таймер запуска формы приостановки
Private Sub Form_Timer()
  Select Case Hour(Time())
  Case 10, 11, 12, 15, 16, 17
   If Minute(Time()) = 0 And Second(Time()) = 0 Then
      With CurrentDb.OpenRecordset("select * from [З_Приостанов] where Код=" & Me.Код)
         If Not .BOF Then
             DoCmd.OpenForm "Ф_Оконч_Прост"
         End If
      End With
   End If
  End Select
End Sub



Ну а форму "Ф_Оконч_Прост" выставлять не вижу смысла.


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

А к чему (к каким полям) у Вас Between'ы приделаны?
Что-то никак не пойму.
...
Рейтинг: 0 / 0
Не могу разобраться, помогите, пожалуйста с кодом.
    #39775729
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__Michelle,

[Оперативные карточки].[Дата_Оконч_Статус_ОС]
[Оперативные карточки].[Дата_Оконч_Статус_ТС]
...
Рейтинг: 0 / 0
Не могу разобраться, помогите, пожалуйста с кодом.
    #39775777
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005[Оперативные карточки].[Дата_Оконч_Статус_ОС]
[Оперативные карточки].[Дата_Оконч_Статус_ТС]
Заблуждаетесь.
Это не так.

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

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

Да мне-то что.
Не надо, так не надо.

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


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