Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1127 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  programme en VB qui coince

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

programme en VB qui coince

n°1837305
eglantine ​cent
Posté le 13-01-2009 à 14:03:21  profilanswer
 

j'ai fait un petit traitement pour comparer un a un les champs de 2 tables sous Access , le premier enregistrement commun est marque avec la valeur 1 dans un champ par contre le test ne se continue pas pour les enregistrements suivants
 
je suis paumée
merci de toute aide

mood
Publicité
Posté le 13-01-2009 à 14:03:21  profilanswer
 

n°1837342
olivthill
Posté le 13-01-2009 à 14:46:44  profilanswer
 

Sans le code, c'est un petit peu difficile de voir ce qui ne va pas.
 
Autrement, il y a la solution d'une requête SQL :

Select t1.champ1
  From la_table1 t1, la_table2 t2
 Where t1.champ1 = t2.champ1

n°1837537
eglantine ​cent
Posté le 13-01-2009 à 18:24:38  profilanswer
 

merci de ton intervention .en fait il s'agit de comparer plusieurs tables de differents champs a une table de référence et valider par 1 si les enregistrements sont identiques
or le programme qui est fait provoque le marquage d'un premier champ et c'est tout ....même quand le laisse mouliner 2 heures et plus   il doit y avoir une erreur de boucle ou autre et en plus c'est très lourdcomme écriture . je peux te copier le prog si tu es dispo
de toutes facons je te remercie

n°1838098
tegu
Posté le 15-01-2009 à 10:40:08  profilanswer
 

Si tu veux des réponses, pose ton code sur le forum.

n°1838271
eglantine ​cent
Posté le 15-01-2009 à 13:32:24  profilanswer
 

voila le petit programme qui ne marche pas et ou le compteur ne s"affiche pas ( sur ACCESS )
 
but:
il s'agit de comparer 4 champs "promo1,2,3,4 " d'une table PROMO1 avec 4 champs "A,B,C,D, de la table ANALYSE " et si les 4 champs sont identiques , il faut marquer 1 (nombre) dans le champ CRIT4 de la table ANALYSE avec un compteur pour suivre le traitement
 
 
option Compare Database
Dim MonCompteur
 
Sub LanceTrtPromoParTable()
' PROCEDURE QUI EFFECTUE LE TRAITEMENT PROMO en FONCTION DU PARAMETRE NonTable QUI EST LE NOM DE TABLE QUI CONTIENT LES VALEURS PROMO
'garde
 
Dim MaBase
Dim nbChampsPromoDansTable As Integer
Set MaBase = CurrentDb()
 
    Set MaTablePromo = MaBase.OpenRecordset("table promo4" )
       
    If Not MaTablePromo.EOF Then
        MaTablePromo.MoveFirst
    End If
 
   
        Do Until (MaTablePromo.EOF)
            ' on valorise les variables
            promo1 = MaTablePromo("promo1" )
            promo2 = MaTablePromo("promo2" )
            promo3 = MaTablePromo("promo3" )
            promo4 = MaTablePromo("promo4" )
            ' on lance la procedure qui parcour la table achat
     MonCompteur = MonCompteur + 1
     Form("Deroulement" ).Value = CStr(Date) + "(" + CStr(Time) + " )" + ": " + "Compteur = " + CStr(MonCompteur) + " ; " + vbCrLf + Form("Deroulement" ).Value
     
       SQLUPDATE = "UPDATE ANALYSE SET CRIT4=1 WHERE ((ANALYSE.A = " + CStr(promo1) + " AND ANALYSE.B = " + CStr(promo2) + " AND ANALYSE.C = " + CStr(promo3) + " AND ANALYSE.D = " + CStr(promo4) + " ) OR (ANALYSE.B = " + CStr(promo1) + " AND ANALYSE.C = " + CStr(promo2) + " AND ANALYSE.D = " + CStr(promo3) + " AND ANALYSE.E = " + CStr(promo4) + " ))"
        MaBase.Execute (SQLUPDATE)
     
        MaTablePromo.MoveNext
        Loop
       
End Sub
 
 
 
Private Sub LancePromo_Click()
Call LanceTrtPromoParTable
 
End Sub
 
 
merci pour toute aide
 
Eglantine

n°1838344
tegu
Posté le 15-01-2009 à 14:29:02  profilanswer
 

As-tu tracé ton programme en mode debogage pour voir si ta boucle fonctionne correctement ?
 
Est-ce que tu peux nous copier le contenu de SQLUPDATE après son remplissage lors d'une itération ?
 
Si tes champs sont alphanumériques, je pense qu'il faut mettre des quotes dans ta concaténation de variables pour la jointure :
[...] ANALYSE.A = '" & CStr(promo1) & "' AND [...]
 
Je conseille aussi généralement d'utiliser l'opérateur & plutôt que + pour les concaténations de variables.

n°1838446
eglantine ​cent
Posté le 15-01-2009 à 15:40:26  profilanswer
 

merci de ta reponse
ce n'est pas moi qui ai ecrit ce code
je le trouve tres lourd j'aurai plus ecrit  
 if promo1 ="A" and promo2 ="B" and promo3 ="C" and promo4 ="D" or
    promo1 ="B" and  promo2 ="C" and promo3 = "D" and promo4 = "E" then
    ANALYSE(CRIT4) = 1
 
honnetement je suis completement paumee sur cette action je ne sais plus comment le rectifier
si tu sais   super  
 
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  programme en VB qui coince

 

Sujets relatifs
besoin d'aide pour ecrire un programme en cProbleme Ecriture base de registre VB
Requette Select dans VB et ACCESS[C]programme affichant la suite d'operation pour trier une liste.
Erreur dans un programme basique en CPause dans programme pour faire une action
[VB] utilisation d'une liste pour traiter des donnés[C# - VB.NET - SQL] arrondir un prix (sans virgule)!
[Résolu] [VB.NET] Récupérer le code de sortie d'un service Windows[VB.NET] Communiquer avec un service Windows par l'envoi de paramètres
Plus de sujets relatifs à : programme en VB qui coince


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR