Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/08/2011, 22h54   #1
Invité régulier
 
Homme Marc
Gestionnaire
Inscription : avril 2010
Messages : 15
Détails du profil
Informations personnelles :
Nom : Homme Marc
Localisation : France

Informations professionnelles :
Activité : Gestionnaire
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : avril 2010
Messages : 15
Points : 7
Points : 7
Par défaut test if then else dans boucle for next

Bonjour à tous

Une petite question :Est-possible de d'avoir un test imbriqué dans une boucle for next dont l'une des alternative est next i
ci dessous mon bout de code qui me retourne une erreur "next sans for"
----------------------------------------------------------------------
Code :
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
Sub GestRappel()
    Dim RsImp As DAO.Recordset
    Dim Rappel(4) As String, i As Integer, nRapp As Integer
 
    Rappel(1) = "-"
    Rappel(2) = "1°"
    Rappel(3) = "2°"
    Rappel(4) = " Trans AC"
    Set RsImp = CurrentDb.OpenRecordset("SELECT * FROM [T_CRTL memoire]where reglement=0 AND edité", dbOpenDynaset)
       For i = 3 To 1 Step -1            RsImp.FindLast (IdDerRappel(Rappel(i - 1)))
                If RsImp.NoMatch = True Then
                    Next i '<- l'erreur est là 
               Else
                    nRapp = CreatNouveauRappel(Rappel(i))
Nrappel:         RsImp.Edit
                    RsImp("id rappel") = nRapp
                    RsImp.Update
                    RsImp.FindPrevious
                        If RsImp.NoMatch = False Then
                            GoTo Nrappel
                        Else
                            Next i '<-et surement là aussi
                        End If
                End If
     RsImp.Close
     Set RsImp = Nothing
End Sub
--------------------------------------------------------------------------

La question est tres simpliste mais je ne vois pas où mon erreur

Merci d'avance pour les réponses

Markuus
markuus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/08/2011, 06h08   #2
Rédacteur

 
Avatar de ClaudeLELOUP
 
Homme Claude LELOUP
Chercheur de loisirs (ayant trouvé !)
Inscription : novembre 2006
Messages : 5 242
Détails du profil
Informations personnelles :
Nom : Homme Claude LELOUP
Âge : 66
Localisation : Belgique

Informations professionnelles :
Activité : Chercheur de loisirs (ayant trouvé !)
Secteur : Finance

Informations forums :
Inscription : novembre 2006
Messages : 5 242
Points : 11 040
Points : 11 040
Bonjour,

À mon avis, pour le 1er, si tu inversais le sens de ton test "ai-je trouvé ?", tu éviterais le problème.

Quant au second, je ne comprends pas à quoi il sert.

Ton code deviendrait :

Code :
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
Sub GestRappel()
    Dim RsImp As DAO.Recordset
    Dim Rappel(4) As String, i As Integer, nRapp As Integer
 
    Rappel(1) = "-"
    Rappel(2) = "1°"
    Rappel(3) = "2°"
    Rappel(4) = " Trans AC"
    Set RsImp = CurrentDb.OpenRecordset("SELECT * FROM [T_CRTL memoire]where reglement=0 AND edité", dbOpenDynaset)
       For i = 3 To 1 Step -1
           RsImp.FindLast (IdDerRappel(Rappel(i - 1)))
                If RsImp.NoMatch = False Then
                    nRapp = CreatNouveauRappel(Rappel(i))
Nrappel:
                    RsImp.Edit
                    RsImp("id rappel") = nRapp
                    RsImp.Update
                    RsImp.FindPrevious
                        If RsImp.NoMatch = False Then
                            GoTo Nrappel
                        End If
                End If
     Next i
     RsImp.Close
     Set RsImp = Nothing
End Sub
ClaudeLELOUP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/08/2011, 11h41   #3
Invité régulier
 
Homme Marc
Gestionnaire
Inscription : avril 2010
Messages : 15
Détails du profil
Informations personnelles :
Nom : Homme Marc
Localisation : France

Informations professionnelles :
Activité : Gestionnaire
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : avril 2010
Messages : 15
Points : 7
Points : 7
Par défaut Test if then else dans boucle for next

Bonjour ClaudeLeloup

Merci pour le coup de pouce ,ca résoud mon problème .J'avais pris le problème à l envers dans ma réflexion .

Quant au deuxieme test ,l'argument du FindPrevious est le même que le premier (un oubli au moment de rédiger le msg).

Encore merci pour la solution

Markuus
markuus est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h33.


 
 
 
 
Partenaires

Hébergement Web