2016-12-12 2 views
-2

Я новичок в VBA и работаю над проектом, в котором будут отображаться все текущие пользователи, у которых есть определенный файл open (MS Access). Я пытаюсь заполнить список с информацией о имени компьютера, но получаю сообщение об ошибке, когда пытаюсь запустить кнопку command.rs.Fields (0), это единственное поле, которое мне нужно, так как это имя компьютера. Мне просто нужен список всех имен компьютеров.Next for For compile error

Sub ShowUserRosterMultipleUsers() 
    Dim cn As New ADODB.Connection 
    Dim rs As New ADODB.Recordset 

    Set cn = CurrentProject.Connection 

    Set rs = cn.OpenSchema(adSchemaProviderSpecific, _ 
    , "{947bb102-5d43-11d1-bdbf-00c04fb92675}" 

    'While Not rs.EOF 
     'Debug.Print rs.Fields(0), rs.Fields(1), _ 
     'rs.Fields(2), rs.Fields(3) 
     'rs.MoveNext 
    'Wend 

    Do While Not rs.EOF 
     With List73 
      .AddItem rs.Fields(0) 
     End With 
    Next 
End Sub 
+0

В сообщении об ошибке справедливо говорится, 'Next' не правильный способ закончить' цикл Do While'. –

+3

Your Do While должен быть 'Loop' not' Next' –

+0

Вы имеете в виду Loop While rs.EOF? –

ответ

-1
Sub ShowUserRosterMultipleUsers() 
    Dim cn As New ADODB.Connection 
    Dim rs As New ADODB.Recordset 

    Set cn = CurrentProject.Connection 

    Set rs = cn.OpenSchema(adSchemaProviderSpecific, _ 
    , "{947bb102-5d43-11d1-bdbf-00c04fb92675}" 

    'While Not rs.EOF 
     'Debug.Print rs.Fields(0), rs.Fields(1), _ 
     'rs.Fields(2), rs.Fields(3) 
     'rs.MoveNext 
    'Wend 

    Do While Not rs.EOF 
     With List73 
      .AddItem rs.Fields(0) 
     End With 
    Loop 
End Sub 
+0

, не двигая rs, вы собираетесь повесить процесс. – GavinP

+0

@GavinP Вопрос говорит, что ГЭС пытается заполнить список и получил ошибку. Ошибка исправлена. Бесконечный цикл не зависит от его вопроса. – Brad