boucles imbriquées - VB/VBA/VBS - Programmation
Marsh Posté le 13-03-2009 à 10:08:49
Il y a combien de record et ça prend combien de temps ?
Marsh Posté le 13-03-2009 à 17:00:18
Il a environ 400 000 enregistrements et au bout d'une nuit le dizieme de la table n'a pas été traite !
est ce que les boucles sont correctes ou doivent elles être imbriquées ?
dur dur mais il doit y avoir une solution
merci de ton aide
Marsh Posté le 13-03-2009 à 10:01:14
bonjour
j'ai un traitement par boucles qui est vraiment tres long, je pense qu'il ya une erreur que je ne trouve pas
voila le code
il s'agit de comparer 4 valeurs ( promo1 à 4 ) aux 4 valeurs d'une table analyse et s'ils sont identiques le champ est marqué 1
Sub LanceCHOIX1()
Dim MaBase
Dim nbChampsPromoDansTable As Integer
Set MaBase = CurrentDb()
Set MaTablePromo = MaBase.OpenRecordset("RESULTATA4" )
Set basetravail = MaBase.OpenRecordset("ANALYSE" )
If Not MaTablePromo.EOF Then
MaTablePromo.MoveFirst
End If
Do Until (MaTablePromo.EOF)
a01 = basetravail("A" ) ' on valorise les variables
a02 = basetravail("B" )
a03 = basetravail("C" )
a04 = basetravail("D" )
promo1 = MaTablePromo("promo1" )
promo2 = MaTablePromo("promo2" )
promo3 = MaTablePromo("promo3" )
promo4 = MaTablePromo("promo4" ) ' on lance la procedure qui parcourt la table ANALYSE
If a01 <> promo1 Then
basetravail.MoveNext
End If
If a02 <> promo2 Then
basetravail.MoveNext
End If
If a03 <> promo3 Then
basetravail.MoveNext
End If
If a04 <> promo4 Then
basetravail.MoveNext
End If
SQLUPDATE = "UPDATE ANALYSE SET CHOIX1=1 WHERE ((ANALYSE.A = " + CStr(promo1) + " AND ANALYSE.B = " + CStr(promo2) + " AND ANALYSE.C = " + CStr(promo3) + " AND ANALYSE.D = " + CStr(promo4) + " ))"
MaBase.Execute (SQLUPDATE)
MaTablePromo.MoveNext
Loop
End Sub
voila le probleme , ca tourne beaucoup et ca n'avance pas
merci d'avance à ceux qui peuvent trouver