begin process at 2012 02 15 02:38:56
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

J'AI BESOIN D'AIDE !!!! :)

 > 

Remplir une table par un recordset en utilisant une boucle en VBA-Access


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Remplir une table par un recordset en utilisant une boucle en VBA-Access

jeudi 15 septembre 2005 à 11:27:48 | Remplir une table par un recordset en utilisant une boucle en VBA-Access

omsylv

Bonjour,
Je n'ai pas trouvé de réponse dans les autres posts donc voilà !

Présentation de l'environnement : j'ai deux tables qui ressemblent à ça
 _______________________________________________                   _____________________
 
Idindicateur ­­|IdContrat | Valeur00 | Valeur01 | … | Valeur12            et      IdContrat | Montant | mois

 _______________________________________________                   _____________________

Chaque valeur pour chaque mois de la table 2 correspond à une Valeur0x de la table 1. Il faut que je remplisse chaque ligne de la table 1 en divisant chaque valeur par la somme des montant de la table 2 (qui correspondent au même IdContrat).
cad : Valeur00 = montant pour le  mois(0) / somme (montant)

Pour ça, j'utilise des recordset mais je n'arrive pas à automatiser le processus. J'aimerais bien pouvoir faire quelque chose du genre
                  
                    set recordset = currentdb.openrecordset("Table1")
                     for i = 0 to 12
                             rs!Valeur0 & i = mon résultat
                     next i

Je n'arrive à rien et je suis obligé d'écrire pour chaque Valeur :
       rs![Valeur00] = mon résultat
       rs![Valeur01] = mon résultat

Sachant que j'ai plusieurs conditions possibles à l'ajout dans table1 j'en suis à 320 lignes de code pour remplir 1 ligne du tableau 1
et je dois en tout remplir 30 lignes !!!!!!!

Donc si vous avez une petite idée, même infime, je suis preneur. Si je ne suis pas assez clair, demandez moi et je réexplique.

jeudi 15 septembre 2005 à 11:45:21 | Re : Remplir une table par un recordset en utilisant une boucle en VBA-Access

aieeeuuuuu

Réponse acceptée !
oui, j'ai bien une petite idee, mais je ne suis pas sur qu'elle te plaise !

le mieux serait de remodeliser ta BDD car la c'est quand meme pas le top

je me demande a quoi correspondent tes valeurs Valeur01, valeur02,...
mais je pense qu'il serait mieux de modifier ta table 1 poru qu'elle soit comme ca :

Idindicateur ­­|IdContrat | indiceValeur|Valeur |

où indiceValeur prendrait les valeur 00 à 12

apres, ton probleme devrait se resoudre de lui meme, avec juste quelques requetes habiles :)
jeudi 15 septembre 2005 à 11:50:08 | Re : Remplir une table par un recordset en utilisant une boucle en VBA-Access

omsylv

Je voulais éviter de retoucher la bd mais si personne ne m'apporte d'autre solution je serai bien obligé
de le faire !
Merci

jeudi 15 septembre 2005 à 12:08:19 | Re : Remplir une table par un recordset en utilisant une boucle en VBA-Access

aieeeuuuuu

Réponse acceptée !

alors j'ai peu etre une autre idee a explorer :

en fait, deux idees meme.

je pense que si ton prog tel qu'il est ne fonctionne pas, c'est parce que ta chaine d'identification de tes champs n'est pas correcte :

de 10 à 12, tu n'a pas "valeur12", mais "valeur012", donc il ne trouve pas ton champs.

pour corrgier ce problème, je mettrai :


           for i = 0 to 12
               if i<10 then
                       rs!["Valeur0" & cstr(i)] = mon résultat
               else
                        rs!["Valeur" & cstr(i)] = mon résultat
               end if
            next i


voila pour la premiere solution

sinon la deuxieme que je préfère a la rigueur si tu ne veux pas modifier ta base, ca serait d'utiliser le rang des champs :

Le champ Indicateur a le rang 0... donc le champ Valeur00 a le rang 2
 
tu dois donc pouvoir faire un truc du genre :


                     for i = 2 to 14
                             rs![i] = mon résultat
                     next i
 
 
 
jeudi 15 septembre 2005 à 12:44:00 | Re : Remplir une table par un recordset en utilisant une boucle en VBA-Access

omsylv

Pour ta première idée :  quand j'essaye de faire un rs!["Valeur0" & cstr(i)] = ....             Il me dit que le champ n'est pas trouvé dans la collection.
Comme si il cherchait un champ [Valeur0&cstr(i)]

Pour ta deuxième solution : je n'y avais pas pensé. Effectivement, l'emploi des index (ou indicateurs je ne sais plus) règle mon problème. Le seul soucis qui pourrait survenir : si des champs sont ajoutés dans la table.

Je vais donc réfléchir à quelle solution je privilégie entre ton premier message et la deuxième idée du deuxième message.


Je te remercie beaucoup !
vendredi 16 septembre 2005 à 10:25:05 | Re : Remplir une table par un recordset en utilisant une boucle en VBA-Access

aieeeuuuuu

De rien.

oui effectivement, la deuxieme solution impose que tu ne modifie plus la BDD par la suite.

ou alors si tu veux etre sur sur, tu peux faire une recheche du champs qui s'appelle "valeur00" en verifiant les noms un a un. mais c pas super.

c'est pour ca que si tu veux quelque chose de propre, le mieux c'est encore de remodeliser la base. surtout que je pense que par la suite si tu as d'autre traitements a faire, ca sera plus pratique...


bon courage pour la suite


Cette discussion est classée dans : table, recordset, remplir, montant, idcontrat


Répondre à ce message

Sujets en rapport avec ce message

Insèrer dans une table un recordset [ par Fiston53 ] Bjr,Comment remplir une table Access avec le contenu d'un recordset?J'ai réussi avec l'aide d'un pro à faire une connexion ADODB, et de remplir un rec Remplir une listbox de 3 colonnes. [ par PhantomLord ] Bonjour à tous,A partir de VB Express, je cherche à remplir une listbox de 3 colonnes, dont la source est une table de ma base access. Les champs de m pb de Table ou vb? [ par yunuss9 ] Bonjour, J'utilise sql server coe bd et vb6 pr prgmmer.j'ai ce code: dim AjtAnnee as recordset set AjtAnnee =new recordset    AjAnnee.open "select ann ADODB connection et recordset [ par ricomiracle ] Bon j'ai avancer un petit peu avec les objets ADODB recordset et connection. Je pose la question car vous avez l'air de les avoir utiliser plus que mo AIDE : Remplir combobox avec une table SQL [ par Fabfranck ] Bonjour, je commence une aplication VB et ma connexion est établie avec ma base SQL avec OLEDB. Je dois maintenant remplir ("peupler") mon combobox av remplir une table [ par Luluce25 ] bonjour, voici mon problème : j'ai un formulaire et une table. dans cette table il y a des enregistrements et parmi ceux ci certains ne remplissent pa Remplir ComboBox, ADO.NET [ par asem67 ] Bonjour!Je voudrais lier plusueur Combo a plusieur table d'une DB accesspuis enregistrer tous dans une autre table de la meme DB(il n y a aucune mis Remplir une Datagrid avec un recordset [ par steevy92 ] Bonjour,Je suppose que la question a été posée maintes fois et je remercie par avance celui ou celle qui aura l'amabilité de me répondre.Je suis en VB Remplir une Datagrid avec un recordset [ par steevy92 ] Bonjour à tous.Ma question était la suivante :"Je suis en VB6 et j'accède à une base Access.Je souhaite renseigner une DataGrid à partir d'un RecordSe Remplir une Datagrid avec un recordset [ par steevy92 ] Bonjour à tous.Ma question était la suivante :"Je suis en VB6 et j'accède à une base Access.Je souhaite renseigner une DataGrid à partir d'un RecordSe


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,931 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales