Команда VB Select в sql - PullRequest
       3

Команда VB Select в sql

0 голосов
/ 18 декабря 2010

Я использую VB, пытаясь получить доступ к базе данных в MSACCESS.

Я делаю это очень глупо:

SSQL9 = "select Username as docuser from Doctors where TreatmentField = '"&Treatment&"'"
        set Rs9 = Server.CreateObject("ADODB.recordset")
        Rs9.open SSQL9,conn
        Something=Rs9("docuser")
        Response.Write(Something)

И по какой-то причине я получаю:

Ошибка ADODB.Field '800a0bcd'

Либо BOF, либо EOF имеет значение True, либо текущая запись была удалена.Запрашиваемая операция требует текущей записи.

Пока я уверен, запись есть.Что вызывает ошибку?

Ответы [ 2 ]

1 голос
/ 19 декабря 2010

@ eve: Для меня это больше похоже на VBScript, чем на VB ... Предполагая, что conn является ADODB.Connection объектом, вам не нужно создавать RecordSet объект, если вы не собираетесь использовать нумерацию страниц, так что вы можете переписать пример кода как -

If Treatment <> "" Then
    SSQL9 = "SELECT Username as docuser FROM Doctors WHERE (TreatmentField = '" & Treatment & "')"
    Set Rs9 = con.Execute(SSQL9)
    If NOT Rs9.EOF Then
        Something = Rs9(0)
        Response.Write(Something)
    Else
        ' Empty recordset ' 
    End If
    Rs9.Close
Else
    Response.Write "No 'Treatment' input was sent"
End If 
0 голосов
/ 18 декабря 2010

Для аналогичной задачи мы используем такой код:

Dim QD As adodb.Command
Dim rs As adodb.Recordset

Set QD = New adodb.Command
QD.CommandText = sql
QD.CommandType = adCmdText
QD.ActiveConnection = conn

Set rs = QD.Execute

Чтобы отследить ошибку, выполните следующие действия:

  1. Выберите значение для лечения
  2. Заменить параметр в запросе этим значением - запустить запрос в доступе
  3. Попробуйте программу VB с успешно протестированным запросом.
  4. Когда ошибка все еще происходит, это VB, иначе запрос

Чтобы получить все записи, вам нужен какой-то цикл

Do While Not rs9.EOF
        Something=Rs9!docuser
        Response.Write(Something)
        RS9.MoveNext
Loop

Измененный код:

теперь с помощью Something = Rs9! Documentser Пожалуйста, попробуйте

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...