powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Ошибка 424, Object required
5 сообщений из 5, страница 1 из 1
Ошибка 424, Object required
    #39915346
bad_tula
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день. Подскажите пожалуйста, столкнулся со следующей проблемой:
1. На форме есть ПОЛЕ СО СПИСКОМ, источником строк которых является запрос с единственным столбцом. Список значений запроса: Значение 1, Значение 2 и есть пустые значения (не заполненные Null).
2. В зависимости от выбора значения из поля со списком на форму применяется Me.RecordSource. Со значениями Значение 1, Значение 2 вопросов нет. При выборе пустого значения на форме начинаются "чудеса" - выползает ошибка 424, Object required, ниже приведён кусок кода:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Dim strSQL, a As String

    If IsNull(Me.fldLIST_LocationPlace) Then
       
                                            a = Forms!frm_Inventory_List!fldLIST_nameUNIT.Value
        
      strSQL = "SELECT tbl_Object.idObject, tbl_Object.Location, tbl_Device_type.NameDeviceType, tbl_Object.ObjectModel, tbl_Object.InventoryNumber, tbl_Object.NameObject, tbl_Object.SerialNumber, tbl_Object.UnitID " & _
                "FROM tbl_Device_type INNER JOIN tbl_Object ON tbl_Device_type.idDeviceType = tbl_Object.IdDeviceType " & _
                "WHERE (((tbl_Object.Location) Is Null) AND ((tbl_Object.UnitID)=" & a & "));"
       
                                MsgBox a
                                MsgBox strSQL
       
      Debug.Print strSQL
      
      Set Me.Recordset = strSQL



Строчка из Immediate
Код: vbnet
1.
2.
3.
SELECT tbl_Object.idObject, tbl_Object.Location, tbl_Device_type.NameDeviceType, tbl_Object.ObjectModel, tbl_Object.InventoryNumber, tbl_Object.NameObject, tbl_Object.SerialNumber, tbl_Object.UnitID 
FROM tbl_Device_type INNER JOIN tbl_Object ON tbl_Device_type.idDeviceType = tbl_Object.IdDeviceType 
WHERE (((tbl_Object.Location) Is Null) AND ((tbl_Object.UnitID)=1));


соответственно SQL запрос из этой строчки отрабатывает без ошибок и возвращает верные значения

Если убрать Set то ошибка меняется на 3251, Операция не поддерживается для объектов этого типа.
Псы. Спасибо за помощь. Ткните меня куда нить :)
...
Рейтинг: 0 / 0
Ошибка 424, Object required
    #39915357
Serg197311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну а как же....
Вы свойству формы me.recordset присваиваете что? strSQL. А это что? просто стринг. Вот и ругается.
Надо перед set me.recordset = сначала этот рекордсет создать из strSQL.

Код: vbnet
1.
2.
3.
Dim rst as DAO.recordset
Set rst=currentdb.Openrecordset (strsql)
set me.recordset =rst


Ну или сразу создавать.... без промежуточного rst
...
Рейтинг: 0 / 0
Ошибка 424, Object required
    #39915369
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bad_tula
Код: vbnet
1.
Set Me.Recordset = strSQL



Просто пишите вместо этого
Код: vbnet
1.
Me.RecordSource = strSQL


и все заработает
...
Рейтинг: 0 / 0
Ошибка 424, Object required
    #39915375
bad_tula
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Serg197311,
Спасибо, всё получилось.
...
Рейтинг: 0 / 0
Ошибка 424, Object required
    #39915380
bad_tula
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MrShin
bad_tula
Код: vbnet
1.
Set Me.Recordset = strSQL



Просто пишите вместо этого
Код: vbnet
1.
Me.RecordSource = strSQL


и все заработает


А вот теперь я смотрю на код далее и как в зеркало!!!! Что меня дёрнуло выше и использовать Recordset, пол дня на это убил, а в коде далее:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
Else
                            
        Me.RecordSource = "SELECT tbl_Object.idObject, tbl_Unit.nameUNIT, tbl_Object.Location, tbl_Device_type.NameDeviceType, tbl_Object.ObjectModel, tbl_Object.InventoryNumber, tbl_Object.NameObject, tbl_Object.SerialNumber, tbl_Unit.idUNIT " & _
                          "FROM tbl_Device_type INNER JOIN (tbl_Unit INNER JOIN tbl_Object ON tbl_Unit.idUNIT = tbl_Object.UnitID) ON tbl_Device_type.idDeviceType = tbl_Object.IdDeviceType " & _
                          "WHERE (((tbl_Object.Location)=[Формы]![frm_Inventory_List]![fldLIST_LocationPlace]));"
    End If
    
    
End Sub



И я ещё удивлялся, в затылке чесал, почему же дальше всё работает, а IsNull нет. Мать его Me.RecordSource = ПЯТНИЦА.
Ещё раз Спасибо.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Ошибка 424, Object required
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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