VBA access boucle sur une table
Résolu
bema93
Messages postés
9
Date d'inscription
Statut
Membre
Dernière intervention
-
macgiver -
macgiver -
A voir également:
- VBA access boucle sur une table
- Table ascii - Guide
- Table des matières word - Guide
- Table des caractères - Guide
- Table des annexes word ✓ - Forum Word
- Access runtime ✓ - Forum Access
8 réponses
j'en ai mis du temps mais j'ai fini par trouver, c'etait plus simple que je ne pensait:
Max = CurrentDb.TableDefs(tbl).RecordCount -- le nombre d'enregistrement de ma table
--je rajoute temporairement un index (ordre) pour la mis à jour de ma table
DoCmd.RunSQL "ALTER TABLE [ma_table] ADD ordre COUNTER"
--boucle
Do While I <= Max
DoCmd.RunSQL "update [ma_table] set [aleat] = " & irand & " WHERE [ordre] = " & I & ";"
I = I + 1
Loop
--je supprime l'index
DoCmd.RunSQL "ALTER TABLE [ma_table] DROP COLUMN ordre"
et voilou ca donne exactement ce que je veux
Merci Archi-dessin pour ton aide
Max = CurrentDb.TableDefs(tbl).RecordCount -- le nombre d'enregistrement de ma table
--je rajoute temporairement un index (ordre) pour la mis à jour de ma table
DoCmd.RunSQL "ALTER TABLE [ma_table] ADD ordre COUNTER"
--boucle
Do While I <= Max
DoCmd.RunSQL "update [ma_table] set [aleat] = " & irand & " WHERE [ordre] = " & I & ";"
I = I + 1
Loop
--je supprime l'index
DoCmd.RunSQL "ALTER TABLE [ma_table] DROP COLUMN ordre"
et voilou ca donne exactement ce que je veux
Merci Archi-dessin pour ton aide
irand() est une fonction publique qui renvoie un nombre aléatoire entre i et j (ex 1 et 70000)
je veux récupérer dans la table pour chaque enregistrment un nombre aléatoire dans le champs "aleat" (30 ème colonne)
illustration (pardon pour la présentation sommaire)
ma_table
---------------------------------------------------------------------------------
ID | NOM | PRENOM | AGE | ............... | ALEAT |
------|---------- |--------------|----------|--------------------|--------------|
1 | TOTO | TATA | 21 | .............. | 20085 |
2 | TUTU | TITI | ... | ......... | 256 |
3 | ... | ......... | ... | ................ | 4157 |
4 | ... | ......... | ... | ................ | 4 |
5 | ... | ......... | ... | ................ | 1745 |
6 | ... | ......... | ... | ................ | 4157 | possibilité d'avoir le même nombre(mais je preferai pas !)
7 | ... | ......... | ... | ................ | 215 |
8 | ... | ......... | ... | ................ | 58743 |
je veux récupérer dans la table pour chaque enregistrment un nombre aléatoire dans le champs "aleat" (30 ème colonne)
illustration (pardon pour la présentation sommaire)
ma_table
---------------------------------------------------------------------------------
ID | NOM | PRENOM | AGE | ............... | ALEAT |
------|---------- |--------------|----------|--------------------|--------------|
1 | TOTO | TATA | 21 | .............. | 20085 |
2 | TUTU | TITI | ... | ......... | 256 |
3 | ... | ......... | ... | ................ | 4157 |
4 | ... | ......... | ... | ................ | 4 |
5 | ... | ......... | ... | ................ | 1745 |
6 | ... | ......... | ... | ................ | 4157 | possibilité d'avoir le même nombre(mais je preferai pas !)
7 | ... | ......... | ... | ................ | 215 |
8 | ... | ......... | ... | ................ | 58743 |
ce que je vois, un tableau constituait par un en têt ID, NOM, Prénom,.....
et pou chaque ligne contient un enregistrement alors
je crée des tableaux d'un seule dimension qui répond au nombre de colonne
n = 'nombre de ligne saisie dan le tableau
Do While i<n
myrst.addnew
myrst.Fields.item("aleat").Value = Tab_ID[i]
myrst.Fields.item("29").Value = Tab_NOM[i]
myrst.Field.item.("aleat") = Tab_Pren[i]
myrst.Fields.item ........
......
....
myrst.update
i=i+1
Loop
et pou chaque ligne contient un enregistrement alors
je crée des tableaux d'un seule dimension qui répond au nombre de colonne
n = 'nombre de ligne saisie dan le tableau
Do While i<n
myrst.addnew
myrst.Fields.item("aleat").Value = Tab_ID[i]
myrst.Fields.item("29").Value = Tab_NOM[i]
myrst.Field.item.("aleat") = Tab_Pren[i]
myrst.Fields.item ........
......
....
myrst.update
i=i+1
Loop
je ne sais pas si tu es obligé de passer par du VBA, mais tu peux faire ta requete avec l'assistant d'access.
tu crées une requete mise à jour avec ton champs, mise à jour -- ta fonction.
tu crées une requete mise à jour avec ton champs, mise à jour -- ta fonction.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
C'est bien là le soucis, je suis obligé de le faire via VBA, je suis persuadé que ta methode fonctionne même si je ne sai s pas trop comment faire, masi c'est surtout la methode qui m'interresse, au fait je souhaiterais copier cette methode pour l'appliquer à d'autres sujet après.
Mais merci je cogiterai sur celle-là aussi
Mais merci je cogiterai sur celle-là aussi
la mienne est visuelle, tant que les jointures ne sont pas complexes ça marche tout seul.
je regarde ton code des que j ai dutemps.
je regarde ton code des que j ai dutemps.
salutvous faite erreur explique c'est quoi irand()
tous les champs de la table reçoi irand() ???????????????????
tous les champs de la table reçoi irand() ???????????????????
merci