VBA access boucle sur une table
Résolu/Fermé
bema93
Messages postés
9
Date d'inscription
mercredi 9 juillet 2008
Statut
Membre
Dernière intervention
4 août 2008
-
22 juil. 2008 à 11:26
macgiver - 17 févr. 2010 à 20:05
macgiver - 17 févr. 2010 à 20:05
A voir également:
- VBA access boucle sur une table
- Table ascii - Guide
- Table des matières word - Guide
- Vba ouvrir un fichier excel avec chemin ✓ - Forum VB / VBA
- Find vba - Astuces et Solutions
- Vba attendre 1 seconde ✓ - Forum VB / VBA
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
bema93
Messages postés
9
Date d'inscription
mercredi 9 juillet 2008
Statut
Membre
Dernière intervention
4 août 2008
10
22 juil. 2008 à 18:39
22 juil. 2008 à 18:39
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 |
Archi-dessin
Messages postés
270
Date d'inscription
samedi 19 avril 2008
Statut
Membre
Dernière intervention
28 décembre 2009
25
23 juil. 2008 à 19:45
23 juil. 2008 à 19:45
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
Frappe Misere
Messages postés
2677
Date d'inscription
vendredi 22 février 2008
Statut
Membre
Dernière intervention
10 août 2011
568
22 juil. 2008 à 11:29
22 juil. 2008 à 11:29
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
bema93
Messages postés
9
Date d'inscription
mercredi 9 juillet 2008
Statut
Membre
Dernière intervention
4 août 2008
10
22 juil. 2008 à 11:54
22 juil. 2008 à 11:54
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
Frappe Misere
Messages postés
2677
Date d'inscription
vendredi 22 février 2008
Statut
Membre
Dernière intervention
10 août 2011
568
22 juil. 2008 à 12:01
22 juil. 2008 à 12:01
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.
Archi-dessin
Messages postés
270
Date d'inscription
samedi 19 avril 2008
Statut
Membre
Dernière intervention
28 décembre 2009
25
22 juil. 2008 à 17:19
22 juil. 2008 à 17:19
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() ???????????????????
Archi-dessin
Messages postés
270
Date d'inscription
samedi 19 avril 2008
Statut
Membre
Dernière intervention
28 décembre 2009
25
23 juil. 2008 à 19:33
23 juil. 2008 à 19:33
salut,
votre raisonnemant d'affecter un esemble de donnée d'un fonction pour les différents champs de la table, c'est impossible il faut revoir ce que vous rechechez et d'affecter pour chaque champ un donnée voulu
votre raisonnemant d'affecter un esemble de donnée d'un fonction pour les différents champs de la table, c'est impossible il faut revoir ce que vous rechechez et d'affecter pour chaque champ un donnée voulu
17 févr. 2010 à 20:05
merci