отображение нескольких значений с помощью .FIELDS adodb - PullRequest
0 голосов

я получаю некоторые данные:

rs.Filter = "datapath='" + dpath + "' and analystname='" + aname + "' and reportname='" + rname + "' and batchstate='" + bstate + "'"
If Not rs.EOF Then
    MsgBox rs.Fields("rowid")
End If

если rs.filter возвращает несколько записей, как мне получить rs.fields("rowid"), чтобы получить несколько значений rowid?

Ответы [ 3 ]

2 голосов
/ 14 мая 2010
do while not (rs.eof and not rs.bof)

   MsgBox rs.Fields("rowid") 
   rs.movenext()

end while

Синтаксис, вероятно, неверен, но это идея.

1 голос
/ 14 мая 2010

Это ADO, поэтому используйте GetString:

MsgBox rs.GetString

Сначала проверьте, были ли возвращены некоторые записи.

Подробнее: http://www.w3schools.com/ado/met_rs_getstring.asp

1 голос
/ 14 мая 2010

Если вы просто вызываете rs.Fields("rowId"), вы фактически запрашиваете значение столбца текущей строки, которое, вероятно, будет первой строкой. Предположим, набор записей возвращает 10 строк. Что вы хотите сделать со значением rowId для каждой из строк? Показать их каждого в окне сообщения? Это означает, 10 сообщений. Если это действительно то, что вы хотели сделать, вы бы сделали что-то вроде:

rs.Filter = "datapath='" + dpath + "' and analystname='" + aname + "' and reportname='" + rname + "' and batchstate='" + bstate + "'"
Do Until rs.EOF
    MsgBox rs.Fields("rowid").Value
    rs.MoveNext
Loop

Предполагается, что rs - это набор записей только для пересылки. Если вы используете курсор набора клавиш, вам, вероятно, придется вызвать MoveFirst ().

rs.Filter = "datapath='" + dpath + "' and analystname='" + aname + "' and reportname='" + rname + "' and batchstate='" + bstate + "'"
rs.MoveFirst()
Do Until rs.EOF
    MsgBox rs.Fields("rowid").Value
    rs.MoveNext
Loop
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...