Как проверить все поля набора записей из запроса ADO? - PullRequest
6 голосов
/ 23 марта 2011

Хотелось бы посмотреть, есть ли команда, чтобы показать всю запись (строку) сразу. К настоящему времени я только нахожу способ показать отдельные столбцы. Я использую соединение ADO с mdb доступа MS. Благодарю. Кстати, я не знаю, как я могу напечатать сообщение в форме VB MS Access ....... VB предоставляет консоль, чтобы показать это? Отладка. Печать не дает мне ничего, я только успех с MsgBox ...

   With cmdCommand
    .ActiveConnection = conConnection
    .CommandText = "SELECT * from tableA"
    .CommandType = adCmdText
   End With

   With rstRecordSet
    .CursorType = adOpenStatic
    .CursorLocation = adUseClient
    .LockType = adLockReadOnly
    .Open cmdCommand
   End With

   If rstRecordSet.EOF = False Then
        rstRecordSet.MoveFirst
        Do

            MsgBox rstRecordSet.Fields(0) & " " & rstRecordSet.Fields(1)

            rstRecordSet.MoveNext
        Loop Until rstRecordSet.EOF = True
   End If

Ответы [ 3 ]

11 голосов
/ 23 марта 2011

Прежде всего, Debug.Print печатает в Immediate Window в VB [A] Editor.Если он не отображается, нажмите Ctrl-G.

Во-вторых, нет единой команды, чтобы показать всю запись, вам придется собрать ее так, как это делает Ксавину в своем ответе.Вот синтаксис VB, игнорирующий создание набора записей и проверку EOF (обратите внимание, что я объявил переменные - вы используете Option Explicit, да?):

Dim fld As Field
Dim msg As String

    For Each fld In rstRecordSet.Fields
        msg = msg & fld.Value & "|"
    Next

Debug.Print msg    'or MsgBox msg 

Я думаю, что канал ("|")делает лучший разделитель, чем пробел, так как он менее вероятен в ваших данных.

2 голосов
/ 23 марта 2011

Для выходной консоли я не знаю (поскольку я не знаю VB), но для показа всей записи сразу можно использовать цикл foreach на rstRecordSet.Fields.

В C # я бы написал так:

string msg = "";
foreach (Field f in rstRecordSet.Fields)
{
    msg += f.Value + " ";
}
MessageBox.Show(msg);

Теперь вам нужно найти синтаксис VB ...

0 голосов
/ 19 сентября 2018

Вместо того, чтобы строить свою собственную строку, по частям, вы можете использовать метод GetString объекта Recordset :

Debug.Print records.GetString(adClipString, 1)

К сожалению, побочным эффектом этого метода является то, что онкажется, удаляет запись из набора записей.

...