2
Я хочу найти отличный список значений из коллекции определенных полей по нескольким таблицам в MS Access. Однако мой код VBA возвращает только первое значение из каждого поля (а не полный набор отдельных значений в каждом поле). См. Ниже:Найти различный набор значений с помощью Access VBA
Sub GetDistinctValues()
Dim tbl As DAO.TableDef
Dim fld As DAO.Field
Dim rs As DAO.Recordset
Dim rs1 As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("Fields_To_Examine")
Do While Not rs.EOF
For Each tbl In CurrentDb.TableDefs
If tbl.Name = rs("Table_Name") Then
Debug.Print tbl.Name
For Each fld In tbl.Fields
If fld.Name = rs("Field_Name") Then
Debug.Print fld.Name
Set rs1 = CurrentDb.OpenRecordset("SELECT DISTINCT " & tbl.Name & ".Source_System, " & tbl.Name & "." & fld.Name & " FROM " & tbl.Name)
Debug.Print rs1(0), rs1(1)
rs.MoveNext
End If
Next
End If
Next
Loop
rs.Close
rs1.Close
Set rs = Nothing
Set rs1 = Nothing
End Sub
Любые предложения о том, куда я иду не так?
Благодарность за @Gustav обратной связи. Однако я переместил rs.movenext туда, где вы предлагаете, но он по-прежнему возвращает только первое значение в каждом поле? – mccdo
Да. Я не знаю, что вы пытаетесь сделать, но для каждого fld вы просто открываете rs1, но не зацикливаете его, чтобы он никогда не двигался. – Gustav