powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Ошибка при открытии Recordset'а ADO
11 сообщений из 11, страница 1 из 1
Ошибка при открытии Recordset'а ADO
    #34218511
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем.
Проблема в следующем, в программе при открытии recordset'а (ADO) выходит ошибка (Method 'Open' of object '_Recordset' failed), открывается запрос, хотя этот же запрос в самом MS Access открывается нормально
Чувствую что ошибка в запросе, но где именно не знаю, может это какие то примочки ADO?
Помогите кто чем может.
Запрос следующий (понимаю что он не слишком удобен для восприятия но мне нужен именно этот запрос)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
        strSQL = "SELECT TblReferencesWorkers.ID AS ID, TblReferencesWorkers.Name1 AS Name1, TblReferencesWorkers.Name2 AS Name2, TblReferencesWorkers.Name3 AS Name3, TblReferencesWorkers.BirthDate AS BirthDate, TblReferencesWorkers.Address AS Address," & vbCrLf & _
                "TblReferencesWorkers.PassportSeries AS PassportSeries, TblReferencesWorkers.PassportNumber AS PassportNumber, TblReferencesWorkers.PassportIssuedBy AS PassportIssuedBy, TblReferencesWorkers.PassportDate AS PassportDate," & vbCrLf & _
                "TblReferencesPost.Post AS Post, TblReferencesSections.Section AS [Section], TblReferencesWorkers.TakeOnDate AS TakeOnDate, TblReferencesWorkers.DischargeDate AS DischargeDate," & vbCrLf & _
                "TblReferencesWorkers.LongServiceValues AS LongServiceValues, TblReferencesLongService.LongService AS LongService, TblReferencesRank.Rank AS Rank, TblReferencesUp.Post AS Up, TblReferencesWorkerType.WorkerType AS WorkerType, TblReferencesWorkers.AlimonyPercent AS AlimonyPercent," & vbCrLf & _
                "TblReferencesWorkers.MonthlySalary AS MonthlySalary, TblUsers.Status AS Status, TblUsers.UserLogin AS UserLogin" & vbCrLf & _
                "FROM TblUsers INNER JOIN (TblUserSessions INNER JOIN (TblReferencesWorkerType INNER JOIN (TblReferencesUp INNER JOIN (TblReferencesSections INNER JOIN (TblReferencesRank INNER JOIN (TblReferencesPost INNER JOIN (TblReferencesLongService INNER JOIN TblReferencesWorkers ON TblReferencesLongService.ID = TblReferencesWorkers.LongServiceID) ON TblReferencesPost.ID = TblReferencesWorkers.PostID) ON TblReferencesRank.ID = TblReferencesWorkers.RankID) ON TblReferencesSections.ID = TblReferencesWorkers.SectionID) ON TblReferencesUp.ID = TblReferencesWorkers.UpID) ON TblReferencesWorkerType.ID = TblReferencesWorkers.WorkerTypeID) ON TblUserSessions.ID = TblReferencesWorkers.LastAccessSessionID) ON TblUsers.ID = TblUserSessions.UserID" & vbCrLf & _
                "WHERE (TblReferencesSections.ID = " & lngCurrentSectionID & ")" & vbCrLf & _
                "ORDER BY TblReferencesWorkers.Name1, TblReferencesWorkers.Name2"
        If rstSearchWorkers.State <>  0  Then rstSearchWorkers.Close
        rstSearchWorkers.Open strSQL, objADOSystemCnn, adOpenKeyset, adLockReadOnly
Пробовал запросы попроще, например
Код: plaintext
SELECT * FROM TblReferencesWorkers
Нормально работает, при вышеуказанном запросе не работает
...
Рейтинг: 0 / 0
Ошибка при открытии Recordset'а ADO
    #34218558
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы не возникало всяких невнятных ошибок, такие запросы лучше хранить в самом аксессе.
...
Рейтинг: 0 / 0
Ошибка при открытии Recordset'а ADO
    #34218657
Dima Dihtyar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Совет, данный выше - дельный. Так и делаю. Сохрани в БД энтот запрос и попробуй его "Select * From [твой запрос];" Чую я, что не пойдет. Если пойдет, то все что надо. У меня были подобные проблемы.. причем на грани мистики. Акцесс2000 нормально выполнял запрос, а ХР загибался. Еще один момент.. попробуй убрать "Order by" и воспользоваться Recordset.sort ...
Успехов.
...
Рейтинг: 0 / 0
Ошибка при открытии Recordset'а ADO
    #34218686
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UserLogin ПРОБЕЛ " & vbCrLf & _
...
TblUserSessions.UserID ПРОБЕЛ " & vbCrLf & _
"WHERE (TblReferencesSections.ID = " & lngCurrentSectionID & ") ПРОБЕЛ " & vbCrLf & _
...
Рейтинг: 0 / 0
Ошибка при открытии Recordset'а ADO
    #34218692
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если кто-то оттуда удалит?
Прочитал что это обычно из-за того что в запросе используется зарезервированное слово, и говорится что нужно обвести скобками это слово, и всё будем ок.
http://support.microsoft.com/kb/238243
я попробовал все поля обвести этими скобками не получилось все равно такая же ошибка
...
Рейтинг: 0 / 0
Ошибка при открытии Recordset'а ADO
    #34218781
Dima Dihtyar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделай как говорит Konst_One
...
Рейтинг: 0 / 0
Ошибка при открытии Recordset'а ADO
    #34218852
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
просто мистика какая-то, после того как поставил фигурные скобки на поля, попробовал поставить скобки и на сами наименования таблиц, все нормально заработало, чтобы определить из-за какого названия таблицы ошибка выходит, удалил скобки из имени каждой таблицы поочередно и запускал прогу и так до конца, т.е. пришел к первому состоянию без никаких скобок кроме Section, и теперь все нормально работает, ниичего не понял
без пробелов, где посоветовал Konst One, хм... да...
ладно посмотрю что дальше будет.
Но всё равно спасибо всем принимавшим участие!
...
Рейтинг: 0 / 0
Ошибка при открытии Recordset'а ADO
    #34218906
Dima Dihtyar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я писал выше про мистику Акцосса 2000 и ХР.. я тогда неделю убил на энту детективную историю, но в отличии от тебя, так причину и не нашел.. может попробовать как ты? хехе..
...
Рейтинг: 0 / 0
Ошибка при открытии Recordset'а ADO
    #34221613
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пробуй всё может быть ;)
...
Рейтинг: 0 / 0
Ошибка при открытии Recordset'а ADO
    #34221722
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orunbekпросто мистика какая-то, после того как поставил фигурные скобки на поля, попробовал поставить скобки и на сами наименования таблиц, все нормально заработало, чтобы определить из-за какого названия таблицы ошибка выходит, удалил скобки из имени каждой таблицы поочередно и запускал прогу и так до конца, т.е. пришел к первому состоянию без никаких скобок кроме Section, и теперь все нормально работает, ниичего не понял
без пробелов, где посоветовал Konst One, хм... да...
ладно посмотрю что дальше будет.
Но всё равно спасибо всем принимавшим участие!

зарезервированные слова [Section] и [ID]
...
Рейтинг: 0 / 0
Ошибка при открытии Recordset'а ADO
    #34221880
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насчет Section понятно, а ID у меня без фигурных скобок стоят, и запрос работает
Вот конечный вариант
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
        strSQL = "SELECT TblReferencesWorkers.ID AS ID, TblReferencesWorkers.Name1 AS Name1, TblReferencesWorkers.Name2 AS Name2, TblReferencesWorkers.Name3 AS Name3, TblReferencesWorkers.BirthDate AS BirthDate, TblReferencesWorkers.Address AS Address," & vbCrLf & _
                "TblReferencesWorkers.PassportSeries AS PassportSeries, TblReferencesWorkers.PassportNumber AS PassportNumber, TblReferencesWorkers.PassportIssuedBy AS PassportIssuedBy, TblReferencesWorkers.PassportDate AS PassportDate," & vbCrLf & _
                "TblReferencesPost.Post AS Post, TblReferencesSections.[Section] AS [Section], TblReferencesWorkers.TakeOnDate AS TakeOnDate, TblReferencesWorkers.DischargeDate AS DischargeDate," & vbCrLf & _
                "TblReferencesWorkers.LongServiceValues AS LongServiceValues, TblReferencesLongService.LongService AS LongService, TblReferencesRank.Rank AS Rank, TblReferencesUp.Post AS Up, TblReferencesWorkerType.WorkerType AS WorkerType, TblReferencesWorkers.AlimonyPercent AS AlimonyPercent," & vbCrLf & _
                "TblReferencesWorkers.MonthlySalary AS MonthlySalary, TblUsers.Status AS Status, TblUsers.UserLogin AS UserLogin" & vbCrLf & _
                "FROM TblUsers INNER JOIN (TblUserSessions INNER JOIN (TblReferencesWorkerType INNER JOIN (TblReferencesUp INNER JOIN (TblReferencesSections INNER JOIN (TblReferencesRank INNER JOIN (TblReferencesPost INNER JOIN (TblReferencesLongService INNER JOIN TblReferencesWorkers ON TblReferencesLongService.ID = TblReferencesWorkers.LongServiceID) ON TblReferencesPost.ID = TblReferencesWorkers.PostID) ON TblReferencesRank.ID = TblReferencesWorkers.RankID) ON TblReferencesSections.ID = TblReferencesWorkers.SectionID) ON TblReferencesUp.ID = TblReferencesWorkers.UpID) ON TblReferencesWorkerType.ID = TblReferencesWorkers.WorkerTypeID) ON TblUserSessions.ID = TblReferencesWorkers.LastAccessSessionID) ON TblUsers.ID = TblUserSessions.UserID" & vbCrLf & _
                "WHERE (TblReferencesSections.ID = " & lngCurrentSectionID & ")" & vbCrLf & _
                "ORDER BY TblReferencesWorkers.Name1, TblReferencesWorkers.Name2;"
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Ошибка при открытии Recordset'а ADO
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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