Рейтинг:
2
Jochen Arndt
Ваш код не имеет смысла: вы назначаете a1
от rs
, закройте набор записей, откройте его снова с новым запросом, но никогда не используйте данные из этого запроса.
Я ожидал бы чего-то вроде
'rs.Close
rs.Open "Select * from Table1 where NameofTest='" + Label26.Caption + "'", con, adOpenDynamic, adLockPessimistic
If Not rs.EOF
a1 = rs.nameoftest
' ...
End If
' ...
' EDIT: Close here
rs.Close
Если
NameofTest
это не уникально, вы должны использовать цикл вместо этого:
While Not rs.EOF
a1 = rs.nameoftest
' ...
rs.MoveNext
End While
[РЕДАКТИРОВАТЬ]
Почему вы держите набор записей открытым?
Закройте его, когда он больше не используется. Поскольку код вызывается по событию пользователя (щелчок), вы не можете использовать его в других функциях, где вы не знаете состояния.
[РЕДАКТИРОВАТЬ]
Member 13396059
я изменил свою программу, но все еще получаю ошибку
Jochen Arndt
Вы не должны получать ошибку при использовании моего примера кода (доступ к rs только после проверки на отсутствие EOF). Однако вы также можете проверить, нет ли BOF.
Member 13396059
я изменил свой код, как вы сказали
rs.Open "Select * from Table1 where NameofTest='" + Label26.Caption + "'", con, adOpenDynamic, adLockPessimistic
Пока не rs.EOF
А1 = РС!nameoftest
Label26.Заголовок = А1
str = a1
Для x = 1 до Len(str) Шаг 2
str1 выглядит следующим образом = str1 выглядит следующим образом &амп; ЧР(функция val("&амп;ч" &ампер; средний$(стр, х, 2)))
Следующий
Label26.Заголовок = str1 выглядит следующим образом
дисплей
РС.Метод MoveNext
Венд
но все равно я не могу получить эти данные
Jochen Arndt
Вы получаете ошибку или просто нет данных?
Если вы не получаете никаких данных, проверьте свой запрос (и если ваша таблица содержит набор записей, где NameOfTest имеет значение вашей метки).
Member 13396059
Dim a1, sqlstr как строка
против.Откройте "поставщика= Майкрософт.Джет.Oledb для.4.0;Источник данных=С:\Пользователи\Рагхава\рабочий стол\база данных\artoss.МБР;"
sqlstr = "Select * from Table1"
rs.Open sqlstr, con, adOpenKeyset
a1 = rs!NameofTest
str = a1
Для x = 1 до Len(str) Шаг 2
str1 выглядит следующим образом = str1 выглядит следующим образом &амп; ЧР(функция val("&амп;ч" &ампер; средний$(стр, х, 2)))
Следующий
Если str1 выглядит следующим образом = Label26.Заголовок Тогда
Пока не rs.EOF
дисплей
РС.Метод MoveNext
x = x + 1
Венд
Конец, Если
если я пишу так я могу получить данные но это не проверка всей базы данных это проверка только первой строки файла БД
Есть ли какие-то проблемы в моем коде??
Jochen Arndt
Он обрабатывает все строки в таблице.
While Not rs.EOF - Wend
петля. Вы должны поместить дополнительный код в этот цикл, чтобы показать значения.
Я не знаю вашего дизайна базы данных, поэтому ничем не могу вам помочь. Но похоже, что вы передаете неправильные значения в свое предложение WHERE, так что никакие resuts не возвращаются.
Member 13396059
в базе данных данные были преобразованы в шестнадцатеричный код