Adrian4263 Ответов: 4

Ошибка объект oledbdataadapter "интерфейса ierrorinfo.GetDescription не с значение e_fail(0x80004005 при)" VB.NET


я использую стандартный MDB-файл ms access 2000 и 2002-2003 годов.
Когда я отлаживаю систему с помощью VB.NET и запустив DataAdapter, я получаю следующее сообщение
Заголовок окна ошибки: "OleDBException не обработано"
и под окно об ошибке
"Интерфейса ierrorinfo.GetDescription не с значение e_fail(0x80004005 при)"

Моя система-это ссылка на ms access.

Ниже приведена моя часть системного кода(код ошибки):
Dim sql As String = "Select Options From USERDT Where USERID='" + Label2.Text + "' AND Module='TAS' AND FormName='Staff'"
        Dim cmd As New OleDbCommand(sql, connect)
        dSet.Reset()
        dAdapter.SelectCommand = cmd
        dAdapter.Fill(dSet) '''this part getting error(IErrorInfo.GetDescription failed with E_FAIL(0x80004005))
        If dSet.Tables(0).Rows(0).Item("Options") = "N" Then
            MsgBox("Access Deny!")
        ElseIf dSet.Tables(0).Rows(0).Item("Options") = "R" Or dSet.Tables(0).Rows(0).Item("Options") = "W" Then
            Form12.Show()
        End If


В чем же проблема? Там нет зарезервированных слов, я изменил все зарезервированные слова.
Пожалуйста помочь.

Заранее спасибо.

virusstorm

Посмотрим, поможет ли это:
http://forums.asp.net/t/1225443.aspx

Я думаю, что некоторые из ваших имен столбцов могут быть зарезервированными словами в Access.

Adrian4263

Спасибо за ваш ответ,но он не работает для меня.
Я уже много раз проверяю,нет ли зарезервированных слов в моей базе данных Ms Access.

4 Ответов

Рейтинг:
2

Jitendra Patidar

Sql = "SELECT * FROM Sheet3 WHERE Category LIKE 'OBC%'"

Убедитесь, Что Ваше Имя Поля Записи Правильное. Отсутствие Пробела И Символа Подчеркивания Только


Рейтинг:
2

Chaim Tovim

Ваша проблема связана со словом OPTION. Измените его на другое имя поля, и он будет работать


CHill60

ОП не имеет поля под названием "Option" - это "Options" (которое на самом деле не указано как зарезервированное слово).
Концепция отказа от зарезервированных слов уже обсуждалась и предлагалась альтернатива (квадратные скобки) - более полутора лет назад.
Ваше решение ничего не добавляет к уже опубликованным решениям

Рейтинг:
0

Maciej Los

Пожалуйста, прочтите комментарий virusstorm к этому вопросу и этот пост: Ошибка IErrorInfo.GetDescription с E_FAIL(0x80004005)- что означает эта ошибка?[^]. Не используйте зарезервированные слова[^] или поставьте квадратные скобки [] вокруг имени Поля или имени таблицы, т. е.:

Dim sql As String = "SELECT [Options] FROM [USERDT] WHERE [USERID]='" & Label2.Text & "' AND Module='TAS' AND FormName='Staff'"


Примечание: используйте & чтобы объединить строку в VB.NET-да. + обычно используется для добавления чисел. Видеть это: Операторы конкатенации в Visual Basic[^]


Adrian4263

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

Maciej Los

вы можете посмотреть здесь: Доступ к данным Microsoft Office из .Сетевые приложения[^]

Рейтинг:
0

Member 10867306

Идентификатор пользователя является числовым? Если это так,

Dim sql As String = "SELECT [Options] FROM [USERDT] WHERE [USERID]='" & Trim(Str(Label2.Text)) & "' AND Module='TAS' AND FormName='Staff'"


Это работает?