我有一個訪問數據庫,其中包含一個包含員工信息的表。我的問題是,我想循環訪問另一個表,以確定某個特定的特徵是真是假,然後以連續的形式顯示所有真實的記錄。它仍然填充所有記錄,而不僅僅是真實的記錄。請參閱下面的代碼。訪問VBA記錄集
Private Sub RunQuery_Click()
Dim strSQL As String
Dim dba As Database
Dim tbl As Recordset
Dim Code As String
Dim status As String
Set dba = CurrentDb
strSQL = "SELECT DISTINCT EmployeeName,SSN,Location,SystemAssignedPersonID FROM dbo_tbl_Random "
strSQL = strSQL & "WHERE MenuUsed = 'Random' ORDER BY Location,EmployeeName"
Set tbl = dba.OpenRecordset(strSQL, dbOpenDynaset, dbSeeChanges)
With tbl
.MoveFirst
If tbl.EOF Then
MsgBox "There are no employees on Random at this time.", , "Oops! Try Again"
Else
Do Until tbl.EOF
status = getEmpStatusID(tbl!SystemAssignedPersonID)
If status = "A" Then
Set Me.Recordset = tbl
.MoveNext
Else
.MoveNext
End If
Loop
End If
End With
Set tbl = Nothing
Set dba = Nothing
End Sub
getEmpStatusID是一個單獨的函數,不給我麻煩。它查找員工ID以獲取信息並將其返回正常。
感謝您的幫助!
這是否需要做爲循環?爲什麼不使用記錄集,只需通過SQL來完成? – Brad
感謝您的回覆@Brad我不太熟悉VB中複雜的SQL語句。如果你能提供一些指導,將不勝感激。 – designspeaks
這比操作記錄集要簡單得多。 getEmpStatusID是做什麼的? – Brad