직원 정보가있는 테이블을 포함하는 액세스 데이터베이스가 있습니다. 내 문제는 특정 특성이 true 또는 false인지 먼저 확인한 다음 연속 된 형식으로 모든 레코드를 표시하기 위해 다른 테이블을 반복하고 싶습니다. 그것은 사실 인 것뿐만 아니라 모든 레코드를 채 웁니다. 아래 코드를 참조하십시오.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 나는 복잡한 SQL 문을 VB에 익숙하지 않은 사람입니다. 당신이 약간의 지침을 제공 할 수 있다면 그것은 대단히 감사 할 것입니다. – designspeaks
레코드 집합을 조작하는 것보다 훨씬 간단합니다. 'getEmpStatusID'는 무엇을합니까? – Brad