OVH Cloud OVH Cloud

Manip enregistrements par VBA

2 réponses
Avatar
ju04
J'ai un second probl=E8me =E0 vous soummettre:

j'execute plusieurs fonctions effectuant des calculs dans=20
une requ=EAte. les r=E9sultats de cette requ=EAte sont ensuite=20
utilis=E9s pour =EAtre transf=E9r=E9s via une table dans un=20
fichier texte dans un format pr=E9d=E9fini. Il s'av=E8re que=20
c'est un peu lourd surtout au niveau des calculs.
=20
la m=E9thode qui semblerait la plus simple, =E0 savoir faire=20
une requ=EAte mise =E0 jour qui viendrait mettre les=20
enregistrements de la requ=EAte de calcul dans la table en=20
question ne fonctionne pas =E0 cause du volume de calcul.

il me semble que le plus judicieux serait d'executer du=20
code qui me permettra d'=E9viter la requ=EAte en allant=20
inscrire directement le r=E9sultat des calculs ou des=20
donn=E9es dans la table.

sauf qu'il doit me manquer des lignes de code...
suis-je sur la bonne piste et quelles sont dans les=20
grandes lignes la proc=E9dure ou les m=E9thodes =E0 employer?

Merci d'avance.

2 réponses

Avatar
Ilan
Bonsoir,
D'apres ce que je comprends tu veux transferer en VBA le contenu d'une requete
vers une table .
Tu as besoin de 2 DAO.RecordSet , 1 pour la requete + 1 pour la table
Exemple : L'exemple rajoute tous les enregistements de la requete dans la
table.

Function SetCalCul ()
Dim QCalcul As DAO.Recordset
Dim TResutat As DAO.Recordset

Set Qcalcul=CurrentDb.OpenRecorset("nomdelarequete")
Set TResultat=CurrentDb.OpenRecordset("Nomdelatable")

While NOT QCalcul.EOF 'Faire tant que la fin de la requete n'est pas atteinte
TResultat.AddNew 'Ajoute un nouvel enregistrement dans la table
TResultat!Nomduchamp1=Qcalcul!NomduChamp1
..
TResultat!NomduchampN=Qcalcul!NomduChampN
TResultat.Update 'Met a jour la table
QCalcul.MoveNext 'Pointer sur l'enregistrement suivant de la requete
Wend
Qcalcul.Close
TResultat.Close
End Function

Bien sur tu remplaceras NomduChamp1 et NomduChampN pour les vrais
noms de champ.


J'ai un second problème à vous soummettre:

j'execute plusieurs fonctions effectuant des calculs dans
une requête. les résultats de cette requête sont ensuite
utilisés pour être transférés via une table dans un
fichier texte dans un format prédéfini. Il s'avère que
c'est un peu lourd surtout au niveau des calculs.

la méthode qui semblerait la plus simple, à savoir faire
une requête mise à jour qui viendrait mettre les
enregistrements de la requête de calcul dans la table en
question ne fonctionne pas à cause du volume de calcul.

il me semble que le plus judicieux serait d'executer du
code qui me permettra d'éviter la requête en allant
inscrire directement le résultat des calculs ou des
données dans la table.

sauf qu'il doit me manquer des lignes de code...
suis-je sur la bonne piste et quelles sont dans les
grandes lignes la procédure ou les méthodes à employer?

Merci d'avance.




Avatar
ju04
merci pour la procédure cela fonctionne parfaitement et
m'aide beaucoup.
Ju