Access 용 VBA에 대한 도움이 필요합니다.다른 테이블/레코드 세트의 값으로 루프를 사용하여 VBA 업데이트 테이블/레코드 집합에 액세스 하시겠습니까?
나는 100 개의 데이터 행을 갖는 테이블 "Client_Table"
을 가지고 있습니다. 나는 과 같은 다른 별개의 영업 담당자 ID 번호가있는 "SalesRep_Table"
테이블을 가지고있다.
내 목표는 첫째 ID 기록 "AA1111"
과 제 10 행에 대한 "AssignedSalesRepID"
을 명명 된 클라이언트 테이블의 해당 열에 배치합니다 걸리는 절차를 실행하는 것입니다, 다음 SalesRep_Table
의 다음 ID 번호는 다음에 삽입됩니다 10 셀을 Clients
테이블에 저장하고 클라이언트 테이블의 100 행 데이터를 채우기 위해 10 개의 ID가 모두 10 개의 행에 모두 들어갈 때까지 루프를 통해 프로세스가 반복됩니다.
2 개의 레코드 세트를 만들고 SQL Update를 통해 루프를 시도해 보았습니다. 그러나 나는 마지막 판매 담당자 ID가 100 번 반복되는 모든 100 개의 레코드로 끝납니다. 내 코드를 살펴보고 해결해야 할 부분을 알려주시겠습니까?
Public Sub Command01_Click()
Dim strSQL
Dim ClientsTableQuery, SalesRepList
Dim DataB as Database
Dim ClientQD as QueryDef
Dim SalesQD as QueryDef
Dim rstClient as Recordset
Dim rstSalesRep as Recordset
ClientTableQuery = "Clients"
SalesTableQuery = "SalesRepList"
'Creates a recordset with 100 client records named "Clients"
strSQL = "Select * from Client_Table"
Set DataB = CurrentDB()
Set ClientQD.CreateQueryDef(ClientTableQuery, strSQL)
Set rstClient = DataB.OpenRecordset(ClientTableQuery)
'Creates a recordset with 10 sales rep records named "SalesRepList"
strSQL = "Select SalesRepID from SalesRep_Table"
Set DataB = CurrentDB()
Set SalesQD.CreateQueryDef(SalesTableQuery, strSQL)
Set rstSalesRep = DataB.OpenRecordset(SalesTableQuery)
rstSalesRep.MoveFirst
rstClient.MoveFirst
Do Until rstSalesRep.EOF = True
'SQL Query to update the top 10 cells in the "Assigned Sales Rep ID" column in the
Clients recordset with the Sales Rep ID from the SalesRepList recordset
strSQL = "Update Clients, SalesRepList SET Clients.AssignedSalesRepID =
SalesRepList.SalesRepID where Clients.ClientIDNumber in (Select Top 10
Clients.ClientIDNumber FROM Clents where Clients.AssignedSalesRepID is Null)"
DoCmd.RunSQL (strSQL)
rstSalesRep.MoveNext
Loop
MsgBox "Finished Looping"
rstSalesRep.Close
End Sub