VBA mise à Jour de la table/jeu d'enregistrements dans l'Accès à l'aide de Boucle avec des valeurs d'une autre table/jeu d'enregistrements?

J'ai besoin d'aide avec certains de VBA pour Access.

J'ai une table "Client_Table" avec 100 lignes de données. J'ai une autre table "SalesRep_Table" où j'ai 10 distinctes Représentant des Ventes de numéros d'identification (comme: AA1111, et ainsi de suite).

Mon but est d'exécuter une procédure qui prend le premier enregistrement de l'ID de "AA1111" et la place dans la colonne appropriée sur la les Clients table nommée "AssignedSalesRepID" pour les 10 premières lignes, alors le prochain numéro d'identification dans le SalesRep_Table est insérée dans le prochain 10 cellules dans le Clients table, et le processus se répète à travers une boucle jusqu'à ce que tous les 10 Id sont maintenant en 10 lignes à remplir les 100 lignes de données dans les Clients à la table.

Je suis allé à ce sujet par la création de deux jeux d'enregistrements et d'essayer une boucle à l'aide de SQL de mise à Jour. Cependant, je me retrouve avec tous les 100 enregistrements contenant juste le dernier Représentant des Ventes ID 100 fois répété. Pouvez-vous jeter un oeil à mon code et laissez-moi savoir où il doit être corrigé?

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
InformationsquelleAutor KD9920 | 2014-02-05