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
내가 잘못하고있는 부분에 대한 제안 사항이 있으십니까?
감사합니다. 그러나 rs.movenext를 제안한 위치로 옮겼지만 각 필드의 첫 번째 값만 반환합니다. – mccdo
예. 나는 당신이 무엇을하려고하는지 모르지만, 각 fld에 대해 rs1을 열었지만 반복하지 않으므로 결코 움직이지 않을 것입니다. – Gustav