powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Не могу разобраться, помогите, пожалуйста с кодом.
25 сообщений из 41, страница 1 из 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
25 сообщений из 41, страница 1 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Не могу разобраться, помогите, пожалуйста с кодом.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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