2
我想從MS Access中的多個表中的特定字段的集合中找到不同的值列表。但是,我的VBA代碼只返回每個字段的第一個值(而不是每個字段中不同值的完整集合)。請看下面:使用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
是的。我不知道你在做什麼,但是對於每一個你只需打開rs1但不循環,所以它永遠不會移動。 – Gustav