IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Deux boucles while


Sujet :

VB 6 et antérieur

  1. #1
    Membre du Club
    Femme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2008
    Messages : 113
    Points : 48
    Points
    48
    Par défaut Deux boucles while
    Bonjour à tous
    je suis entrain de récupérer des enregistrement d'un recordset et comparer chaque enregistrement avec l'enregistrement suivant j'ai fait pour cela deux boucles while voilà une partie du code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    TxtSQLGlobal = "select * " & _
    "from  soldeTest where (DateFacture between '" & Date1 & "' and  '" & Date2 & "') and (CodeArticle between  '" & Article1 & "'and '" & Article2 & "')order by NDossier,DateFacture"
       TxtSQLGlobal2 = "select * " & _
    "from  soldeTest where (DateFacture between '" & Date1 & "' and  '" & Date2 & "') and (CodeArticle between  '" & Article1 & "'and '" & Article2 & "')order by NDossier,DateFacture"
     
       Set li = New ADODB.Recordset
       Set li2 = New ADODB.Recordset
       li.Open TxtSQLGlobal, ConnectionGlobal, adOpenStatic, adLockOptimistic
     
       li2.Open TxtSQLGlobal2, ConnectionGlobal, adOpenStatic, adLockOptimistic 
    li.MoveFirst
    'li2.MoveFirst
    While li.EOF = False
    li2.MoveFirst
    While li2.EOF = False
    li2.MoveNext
    'Array1 = li2.GetRows(j + 1)
    'typ = Array1(19, j + 1)
    'MsgBox (typ)
     
    If li.Fields("DateFacture") = li2.Fields("DateFacture") And li.Fields("NDossier") = li2.Fields("NDossier") And li.Fields("TypeFacture") = "Livraison Client" And li2.Fields("TypeFacture") = "Livraison Client" Then
    MsgBox ("oui")
    If (li.Fields("total02") <> 0) Then
     
    li.Fields("total03") = li.Fields("total03") - li.Fields("total02")
    End If
    End If
    Wend
      li.MoveNext
     
    Wend
    mais il m'affiche une erreur

    BOf ou EOF est égal à true ou l'enregistrement actuel a été supprimé. L'opération demandée nécessite un enregistrement actuel

    merciii pour vos aides

  2. #2
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 185
    Points
    17 185
    Par défaut
    Salut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    TxtSQLGlobal = "select * " & _
    "from  soldeTest where (DateFacture between '" & Date1 & "' and  '" & Date2 & "') and (CodeArticle between  '" & Article1 & "'and '" & Article2 & "')order by NDossier,DateFacture"
    TxtSQLGlobal2 = "select * " & _
    "from  soldeTest where (DateFacture between '" & Date1 & "' and  '" & Date2 & "') and (CodeArticle between  '" & Article1 & "'and '" & Article2 & "')order by NDossier,DateFacture"


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    TxtSQLGlobal = "select * " & _
    "from  soldeTest where (DateFacture between #" & Date1 & "# and #" & Date2 & "#) and (CodeArticle between '" & Article1 & "'and '" & Article2 & "')order by NDossier,DateFacture"
    TxtSQLGlobal2 = "select * " & _
    "from  soldeTest where (DateFacture between #" & Date1 & "# and #" & Date2 & "#) and (CodeArticle between  '" & Article1 & "'and '" & Article2 & "')order by NDossier,DateFacture"
    De plus, il n'est pas vraiment utile d'avoir 2 variables requêtes puisque quelles sont identiques.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
       li.Open TxtSQLGlobal, ConnectionGlobal, adOpenStatic, adLockOptimistic
     
       li2.Open TxtSQLGlobal, ConnectionGlobal, adOpenStatic, adLockOptimistic
    Que contient Article1 et Article2, car l'utilisation de between est délicat sur les types littéraux.
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Membre du Club
    Femme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2008
    Messages : 113
    Points : 48
    Points
    48
    Par défaut
    il m'affiche une erreur syntaxe incorrecte vers #

    je pense pas qu’il y a un problème dans la requete par ce que j'ai fait un test sur le nombre d'enregistrement et il retourne 23 enregistrements

  4. #4
    Membre du Club
    Femme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    113
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2008
    Messages : 113
    Points : 48
    Points
    48
    Par défaut
    J'ai réglé le problème, merci à tous, voilà une partie du code pour ceux qui ont le même problème
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    If (li.RecordCount > 0) Then
     
        For i = 0 To li.RecordCount - 2
            D1 = li.Fields("DateFacture")
     
            If Not IsNull(li.Fields("NDossier")) Then
                typ = li.Fields("NDossier")
            End If
            li2.MoveFirst
     
            For j = 1 To li2.RecordCount - 1
                D2 = li2.Fields("DateFacture")
                li2.MoveNext
                If (li.Fields("TypeFacture") = "Livraison Client" And li2.Fields("TypeFacture") = "Livraison Client") Then
                    If Not IsNull(li2.Fields("NDossier")) Then
                        Typ2 = li2.Fields("NDossier")
                    End If
                    If typ = Typ2 Then
                        If D1 = D2 Then
                            li.Fields("total03") = li.Fields("total03") - li.Fields("total02")
                            MsgBox (li.Fields("total03") + 1)
                        End If
                    End If
                End If
            Next
     
            li.MoveNext
        Next
    End If
    Bonne journée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. deux Boucles while
    Par zaynabing dans le forum C
    Réponses: 7
    Dernier message: 24/06/2014, 13h09
  2. [PHP 5.3] Parcourir deux array à la manière de deux boucle while
    Par jflorence dans le forum Langage
    Réponses: 8
    Dernier message: 23/03/2010, 17h35
  3. Arrêter deux boucles while
    Par ABN84 dans le forum LabVIEW
    Réponses: 4
    Dernier message: 30/04/2009, 10h51
  4. optimisation d'une requête+deux curseurs+deux boucles while
    Par jawadi95 dans le forum Développement
    Réponses: 1
    Dernier message: 10/07/2008, 10h59
  5. [MySQL] gestion d'affichage entre deux boucle while mysql_fetch_array()
    Par tkwleboss dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 29/11/2007, 21h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo