Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Execution de requete plusieurs fois

12 réponses
Avatar
maxben
Bonsoir à tous,

Est il possible avec du code de faire exécuter une requête plusieurs fois de
suite tant qu'elle trouve un résultat > à 0
Merci beaucoup
mon code actuel est
Private Sub Commande18_Click()
If [Quantité] > [Vente1] Then

DoCmd.OpenQuery "Ajout_VenteVMP_1ere Requete (NV)"

DoCmd.OpenQuery "Ajout_VenteVMP 2eme Cession"

10 réponses

1 2
Avatar
Gilbert
Bonjour,

Je ne sais pas ce que tu entends par un résultat > à 0 mais tu peux faire
quelque chose comme

Dim ResultatPositif as boolean
ResultatPositif =true 'Pour la première exécution
Do While ResultatPositif
DoCmd.OpenQuery "Ajout_VenteVMP_1ere Requete (NV)"
DoCmd.OpenQuery "Ajout_VenteVMP 2eme Cession"

ResultatPositif =??? 'Là c'est à toi de mettre la condition qui va bien
Loop

--
Cordialement,

Gilbert


"maxben" a écrit dans le message de
news:
Bonsoir à tous,

Est il possible avec du code de faire exécuter une requête plusieurs fois


de
suite tant qu'elle trouve un résultat > à 0
Merci beaucoup
mon code actuel est
Private Sub Commande18_Click()
If [Quantité] > [Vente1] Then

DoCmd.OpenQuery "Ajout_VenteVMP_1ere Requete (NV)"

DoCmd.OpenQuery "Ajout_VenteVMP 2eme Cession"





Avatar
maxben
Merci, e, fait c'est dans la 2eme requete, elle doit s'executer tant qu'un
champ calculé est > à 0.
Je comprends pas trop ce que tu m'as dit de faire

"Gilbert" a écrit :

Bonjour,

Je ne sais pas ce que tu entends par un résultat > à 0 mais tu peux faire
quelque chose comme

Dim ResultatPositif as boolean
ResultatPositif =true 'Pour la première exécution
Do While ResultatPositif
DoCmd.OpenQuery "Ajout_VenteVMP_1ere Requete (NV)"
DoCmd.OpenQuery "Ajout_VenteVMP 2eme Cession"

ResultatPositif =??? 'Là c'est à toi de mettre la condition qui va bien
Loop

--
Cordialement,

Gilbert


"maxben" a écrit dans le message de
news:
> Bonsoir à tous,
>
> Est il possible avec du code de faire exécuter une requête plusieurs fois
de
> suite tant qu'elle trouve un résultat > à 0
> Merci beaucoup
> mon code actuel est
> Private Sub Commande18_Click()
> If [Quantité] > [Vente1] Then
>
> DoCmd.OpenQuery "Ajout_VenteVMP_1ere Requete (NV)"
>
> DoCmd.OpenQuery "Ajout_VenteVMP 2eme Cession"
>
>
>





Avatar
Fabien
maxben a écrit :
Merci, e, fait c'est dans la 2eme requete, elle doit s'executer tant qu'un
champ calculé est > à 0.
Je comprends pas trop ce que tu m'as dit de faire

"Gilbert" a écrit :

Bonjour,

Je ne sais pas ce que tu entends par un résultat > à 0 mais tu peux faire
quelque chose comme

Dim ResultatPositif as boolean
ResultatPositif =true 'Pour la première exécution
Do While ResultatPositif
DoCmd.OpenQuery "Ajout_VenteVMP_1ere Requete (NV)"
DoCmd.OpenQuery "Ajout_VenteVMP 2eme Cession"

ResultatPositif =??? 'Là c'est à toi de mettre la condition qui va bien
Loop

--
Cordialement,

Gilbert


"maxben" a écrit dans le message de
news:
Bonsoir à tous,

Est il possible avec du code de faire exécuter une requête plusieurs fois


de
suite tant qu'elle trouve un résultat > à 0
Merci beaucoup
mon code actuel est
Private Sub Commande18_Click()
If [Quantité] > [Vente1] Then

DoCmd.OpenQuery "Ajout_VenteVMP_1ere Requete (NV)"

DoCmd.OpenQuery "Ajout_VenteVMP 2eme Cession"











Salut,
si je comprend bien tu veux que la requete "Ajout ventevmp 2eme cession"
s'execute tant que le resultat d'un champ calculé (lequel?) contenu dans
cette requete est >0 ?
@+
Avatar
maxben
Oui c'est exactement ça

"Fabien" a écrit :

maxben a écrit :
> Merci, e, fait c'est dans la 2eme requete, elle doit s'executer tant qu'un
> champ calculé est > à 0.
> Je comprends pas trop ce que tu m'as dit de faire
>
> "Gilbert" a écrit :
>
>> Bonjour,
>>
>> Je ne sais pas ce que tu entends par un résultat > à 0 mais tu peux faire
>> quelque chose comme
>>
>> Dim ResultatPositif as boolean
>> ResultatPositif =true 'Pour la première exécution
>> Do While ResultatPositif
>> DoCmd.OpenQuery "Ajout_VenteVMP_1ere Requete (NV)"
>> DoCmd.OpenQuery "Ajout_VenteVMP 2eme Cession"
>>
>> ResultatPositif =??? 'Là c'est à toi de mettre la condition qui va bien
>> Loop
>>
>> --
>> Cordialement,
>>
>> Gilbert
>>
>>
>> "maxben" a écrit dans le message de
>> news:
>>> Bonsoir à tous,
>>>
>>> Est il possible avec du code de faire exécuter une requête plusieurs fois
>> de
>>> suite tant qu'elle trouve un résultat > à 0
>>> Merci beaucoup
>>> mon code actuel est
>>> Private Sub Commande18_Click()
>>> If [Quantité] > [Vente1] Then
>>>
>>> DoCmd.OpenQuery "Ajout_VenteVMP_1ere Requete (NV)"
>>>
>>> DoCmd.OpenQuery "Ajout_VenteVMP 2eme Cession"
>>>
>>>
>>>
>>
>>
Salut,
si je comprend bien tu veux que la requete "Ajout ventevmp 2eme cession"
s'execute tant que le resultat d'un champ calculé (lequel?) contenu dans
cette requete est >0 ?
@+



Avatar
Fabien
maxben a écrit :
Oui c'est exactement ça

"Fabien" a écrit :

maxben a écrit :
Merci, e, fait c'est dans la 2eme requete, elle doit s'executer tant qu'un
champ calculé est > à 0.
Je comprends pas trop ce que tu m'as dit de faire

"Gilbert" a écrit :

Bonjour,

Je ne sais pas ce que tu entends par un résultat > à 0 mais tu peux faire
quelque chose comme

Dim ResultatPositif as boolean
ResultatPositif =true 'Pour la première exécution
Do While ResultatPositif
DoCmd.OpenQuery "Ajout_VenteVMP_1ere Requete (NV)"
DoCmd.OpenQuery "Ajout_VenteVMP 2eme Cession"

ResultatPositif =??? 'Là c'est à toi de mettre la condition qui va bien
Loop

--
Cordialement,

Gilbert


"maxben" a écrit dans le message de
news:
Bonsoir à tous,

Est il possible avec du code de faire exécuter une requête plusieurs fois


de
suite tant qu'elle trouve un résultat > à 0
Merci beaucoup
mon code actuel est
Private Sub Commande18_Click()
If [Quantité] > [Vente1] Then

DoCmd.OpenQuery "Ajout_VenteVMP_1ere Requete (NV)"

DoCmd.OpenQuery "Ajout_VenteVMP 2eme Cession"










Salut,
si je comprend bien tu veux que la requete "Ajout ventevmp 2eme cession"
s'execute tant que le resultat d'un champ calculé (lequel?) contenu dans
cette requete est >0 ?
@+





Ok:
Mais alors cette requete traite plus d'un enregistrement ?
Le resultat que tu cherche à analyser est lié a l'enregistrement ?
Que faire si pour l'un des enregistrements le resultat est <=0 ?
Que fait exactement cette requete d'ajout et quel est ce calcul ?
Peux tu nous donner le source SQL de la requete ?
@+
Avatar
maxben
Voilà la source
SELECT [Forms_Stock_Pour_Cession Requête (NV)].PremierDeN°Registre,
[Forms_Stock_Pour_Cession Requête (NV)].PremierDeDate,
[Forms_Stock_Pour_Cession Requête (NV)].Forms_Stock_Pour_Cession.N°Auto_VMP,
[Forms_Stock_Pour_Cession Requête (NV)].PremierDeStock AS Stock,
[Forms_Stock_Pour_Cession Requête (NV)].N°Opération,
[Forms_Stock_Pour_Cession Requête (NV)].Date, [Forms_Stock_Pour_Cession
Requête (NV)].Quantité, [Forms_Stock_Pour_Cession Requête
(NV)].Saisie_Vente_VMP.N°Auto_VMP, [Forms_Stock_Pour_Cession Requête
(NV)].[Montant Unitaire], [Selection_ajout_vente VMP 1ere requete (2eme
cession)].N°Opération AS N°vente, [Selection_ajout_vente VMP 1ere requete
(2eme cession)].N°Auto_VMP, [Selection_ajout_vente VMP 1ere requete (2eme
cession)].Date AS DateVente, [Selection_ajout_vente VMP 1ere requete (2eme
cession)].SommeDeQuantité_Vente, [Selection_ajout_vente VMP 1ere requete
(2eme cession)].Montant_Unitaire_Vente, [Quantité]-[SommeDeQuantité_Vente] AS
StockPartiel, IIf([StockPartiel]>[Stock],[Stock],[StockPartiel]) AS
VentePartielle
FROM [Forms_Stock_Pour_Cession Requête (NV)], [Selection_ajout_vente VMP
1ere requete (2eme cession)]
WHERE ((([Quantité]-[SommeDeQuantité_Vente])>0));

"Fabien" a écrit :

maxben a écrit :
> Oui c'est exactement ça
>
> "Fabien" a écrit :
>
>> maxben a écrit :
>>> Merci, e, fait c'est dans la 2eme requete, elle doit s'executer tant qu'un
>>> champ calculé est > à 0.
>>> Je comprends pas trop ce que tu m'as dit de faire
>>>
>>> "Gilbert" a écrit :
>>>
>>>> Bonjour,
>>>>
>>>> Je ne sais pas ce que tu entends par un résultat > à 0 mais tu peux faire
>>>> quelque chose comme
>>>>
>>>> Dim ResultatPositif as boolean
>>>> ResultatPositif =true 'Pour la première exécution
>>>> Do While ResultatPositif
>>>> DoCmd.OpenQuery "Ajout_VenteVMP_1ere Requete (NV)"
>>>> DoCmd.OpenQuery "Ajout_VenteVMP 2eme Cession"
>>>>
>>>> ResultatPositif =??? 'Là c'est à toi de mettre la condition qui va bien
>>>> Loop
>>>>
>>>> --
>>>> Cordialement,
>>>>
>>>> Gilbert
>>>>
>>>>
>>>> "maxben" a écrit dans le message de
>>>> news:
>>>>> Bonsoir à tous,
>>>>>
>>>>> Est il possible avec du code de faire exécuter une requête plusieurs fois
>>>> de
>>>>> suite tant qu'elle trouve un résultat > à 0
>>>>> Merci beaucoup
>>>>> mon code actuel est
>>>>> Private Sub Commande18_Click()
>>>>> If [Quantité] > [Vente1] Then
>>>>>
>>>>> DoCmd.OpenQuery "Ajout_VenteVMP_1ere Requete (NV)"
>>>>>
>>>>> DoCmd.OpenQuery "Ajout_VenteVMP 2eme Cession"
>>>>>
>>>>>
>>>>>
>>>>
>> Salut,
>> si je comprend bien tu veux que la requete "Ajout ventevmp 2eme cession"
>> s'execute tant que le resultat d'un champ calculé (lequel?) contenu dans
>> cette requete est >0 ?
>> @+
>>
Ok:
Mais alors cette requete traite plus d'un enregistrement ?
Le resultat que tu cherche à analyser est lié a l'enregistrement ?
Que faire si pour l'un des enregistrements le resultat est <=0 ?
Que fait exactement cette requete d'ajout et quel est ce calcul ?
Peux tu nous donner le source SQL de la requete ?
@+



Avatar
Fabien
maxben a écrit :
Voilà la source
SELECT [Forms_Stock_Pour_Cession Requête (NV)].PremierDeN°Registre,
[Forms_Stock_Pour_Cession Requête (NV)].PremierDeDate,
[Forms_Stock_Pour_Cession Requête (NV)].Forms_Stock_Pour_Cession.N°Auto_VMP,
[Forms_Stock_Pour_Cession Requête (NV)].PremierDeStock AS Stock,
[Forms_Stock_Pour_Cession Requête (NV)].N°Opération,
[Forms_Stock_Pour_Cession Requête (NV)].Date, [Forms_Stock_Pour_Cession
Requête (NV)].Quantité, [Forms_Stock_Pour_Cession Requête
(NV)].Saisie_Vente_VMP.N°Auto_VMP, [Forms_Stock_Pour_Cession Requête
(NV)].[Montant Unitaire], [Selection_ajout_vente VMP 1ere requete (2eme
cession)].N°Opération AS N°vente, [Selection_ajout_vente VMP 1ere requete
(2eme cession)].N°Auto_VMP, [Selection_ajout_vente VMP 1ere requete (2eme
cession)].Date AS DateVente, [Selection_ajout_vente VMP 1ere requete (2eme
cession)].SommeDeQuantité_Vente, [Selection_ajout_vente VMP 1ere requete
(2eme cession)].Montant_Unitaire_Vente, [Quantité]-[SommeDeQuantité_Vente] AS
StockPartiel, IIf([StockPartiel]>[Stock],[Stock],[StockPartiel]) AS
VentePartielle
FROM [Forms_Stock_Pour_Cession Requête (NV)], [Selection_ajout_vente VMP
1ere requete (2eme cession)]
WHERE ((([Quantité]-[SommeDeQuantité_Vente])>0));

"Fabien" a écrit :

maxben a écrit :
Oui c'est exactement ça

"Fabien" a écrit :

maxben a écrit :
Merci, e, fait c'est dans la 2eme requete, elle doit s'executer tant qu'un
champ calculé est > à 0.
Je comprends pas trop ce que tu m'as dit de faire

"Gilbert" a écrit :

Bonjour,

Je ne sais pas ce que tu entends par un résultat > à 0 mais tu peux faire
quelque chose comme

Dim ResultatPositif as boolean
ResultatPositif =true 'Pour la première exécution
Do While ResultatPositif
DoCmd.OpenQuery "Ajout_VenteVMP_1ere Requete (NV)"
DoCmd.OpenQuery "Ajout_VenteVMP 2eme Cession"

ResultatPositif =??? 'Là c'est à toi de mettre la condition qui va bien
Loop

--
Cordialement,

Gilbert


"maxben" a écrit dans le message de
news:
Bonsoir à tous,

Est il possible avec du code de faire exécuter une requête plusieurs fois


de
suite tant qu'elle trouve un résultat > à 0
Merci beaucoup
mon code actuel est
Private Sub Commande18_Click()
If [Quantité] > [Vente1] Then

DoCmd.OpenQuery "Ajout_VenteVMP_1ere Requete (NV)"

DoCmd.OpenQuery "Ajout_VenteVMP 2eme Cession"









Salut,
si je comprend bien tu veux que la requete "Ajout ventevmp 2eme cession"
s'execute tant que le resultat d'un champ calculé (lequel?) contenu dans
cette requete est >0 ?
@+





Ok:
Mais alors cette requete traite plus d'un enregistrement ?
Le resultat que tu cherche à analyser est lié a l'enregistrement ?
Que faire si pour l'un des enregistrements le resultat est <=0 ?
Que fait exactement cette requete d'ajout et quel est ce calcul ?
Peux tu nous donner le source SQL de la requete ?
@+





Ok donc l'idée c'est de faire tourner cette requete jusqu'a ce qu'elle
ne retourne plus d'info?
Il faudrait donc deux versions de cette requete : une de Selection et
d'ajout.
Tu pourrais faire quelque chose comme

resultatÜount("[PremierDeN°Registre]","Selection VenteVmp 2eme cession")
While not resultat=0
Docmd.openquery "Ajout VenteVmp 2eme cession"
resultatÜount("[PremierDeN°Registre]","Selection VenteVmp 2eme cession")
Whend
Avatar
maxben
Merci, je vais tester, je donnerai le résultat
encore merci

"Fabien" a écrit :

maxben a écrit :
> Voilà la source
> SELECT [Forms_Stock_Pour_Cession Requête (NV)].PremierDeN°Registre,
> [Forms_Stock_Pour_Cession Requête (NV)].PremierDeDate,
> [Forms_Stock_Pour_Cession Requête (NV)].Forms_Stock_Pour_Cession.N°Auto_VMP,
> [Forms_Stock_Pour_Cession Requête (NV)].PremierDeStock AS Stock,
> [Forms_Stock_Pour_Cession Requête (NV)].N°Opération,
> [Forms_Stock_Pour_Cession Requête (NV)].Date, [Forms_Stock_Pour_Cession
> Requête (NV)].Quantité, [Forms_Stock_Pour_Cession Requête
> (NV)].Saisie_Vente_VMP.N°Auto_VMP, [Forms_Stock_Pour_Cession Requête
> (NV)].[Montant Unitaire], [Selection_ajout_vente VMP 1ere requete (2eme
> cession)].N°Opération AS N°vente, [Selection_ajout_vente VMP 1ere requete
> (2eme cession)].N°Auto_VMP, [Selection_ajout_vente VMP 1ere requete (2eme
> cession)].Date AS DateVente, [Selection_ajout_vente VMP 1ere requete (2eme
> cession)].SommeDeQuantité_Vente, [Selection_ajout_vente VMP 1ere requete
> (2eme cession)].Montant_Unitaire_Vente, [Quantité]-[SommeDeQuantité_Vente] AS
> StockPartiel, IIf([StockPartiel]>[Stock],[Stock],[StockPartiel]) AS
> VentePartielle
> FROM [Forms_Stock_Pour_Cession Requête (NV)], [Selection_ajout_vente VMP
> 1ere requete (2eme cession)]
> WHERE ((([Quantité]-[SommeDeQuantité_Vente])>0));
>
> "Fabien" a écrit :
>
>> maxben a écrit :
>>> Oui c'est exactement ça
>>>
>>> "Fabien" a écrit :
>>>
>>>> maxben a écrit :
>>>>> Merci, e, fait c'est dans la 2eme requete, elle doit s'executer tant qu'un
>>>>> champ calculé est > à 0.
>>>>> Je comprends pas trop ce que tu m'as dit de faire
>>>>>
>>>>> "Gilbert" a écrit :
>>>>>
>>>>>> Bonjour,
>>>>>>
>>>>>> Je ne sais pas ce que tu entends par un résultat > à 0 mais tu peux faire
>>>>>> quelque chose comme
>>>>>>
>>>>>> Dim ResultatPositif as boolean
>>>>>> ResultatPositif =true 'Pour la première exécution
>>>>>> Do While ResultatPositif
>>>>>> DoCmd.OpenQuery "Ajout_VenteVMP_1ere Requete (NV)"
>>>>>> DoCmd.OpenQuery "Ajout_VenteVMP 2eme Cession"
>>>>>>
>>>>>> ResultatPositif =??? 'Là c'est à toi de mettre la condition qui va bien
>>>>>> Loop
>>>>>>
>>>>>> --
>>>>>> Cordialement,
>>>>>>
>>>>>> Gilbert
>>>>>>
>>>>>>
>>>>>> "maxben" a écrit dans le message de
>>>>>> news:
>>>>>>> Bonsoir à tous,
>>>>>>>
>>>>>>> Est il possible avec du code de faire exécuter une requête plusieurs fois
>>>>>> de
>>>>>>> suite tant qu'elle trouve un résultat > à 0
>>>>>>> Merci beaucoup
>>>>>>> mon code actuel est
>>>>>>> Private Sub Commande18_Click()
>>>>>>> If [Quantité] > [Vente1] Then
>>>>>>>
>>>>>>> DoCmd.OpenQuery "Ajout_VenteVMP_1ere Requete (NV)"
>>>>>>>
>>>>>>> DoCmd.OpenQuery "Ajout_VenteVMP 2eme Cession"
>>>>>>>
>>>>>>>
>>>>>>>
>>>> Salut,
>>>> si je comprend bien tu veux que la requete "Ajout ventevmp 2eme cession"
>>>> s'execute tant que le resultat d'un champ calculé (lequel?) contenu dans
>>>> cette requete est >0 ?
>>>> @+
>>>>
>> Ok:
>> Mais alors cette requete traite plus d'un enregistrement ?
>> Le resultat que tu cherche à analyser est lié a l'enregistrement ?
>> Que faire si pour l'un des enregistrements le resultat est <=0 ?
>> Que fait exactement cette requete d'ajout et quel est ce calcul ?
>> Peux tu nous donner le source SQL de la requete ?
>> @+
>>
Ok donc l'idée c'est de faire tourner cette requete jusqu'a ce qu'elle
ne retourne plus d'info?
Il faudrait donc deux versions de cette requete : une de Selection et
d'ajout.
Tu pourrais faire quelque chose comme

resultatÜount("[PremierDeN°Registre]","Selection VenteVmp 2eme cession")
While not resultat=0
Docmd.openquery "Ajout VenteVmp 2eme cession"
resultatÜount("[PremierDeN°Registre]","Selection VenteVmp 2eme cession")
Whend



Avatar
maxben
Mon code ressemble à cela, ça fonctionne bien,
Est ce que ça te paraît convenable?
encore merci

Private Sub Commande18_Click()
If [Quantité] > [Vente1] Then
DoCmd.OpenQuery "Ajout_VenteVMP_1ere Requete (NV)"

resultat = DCount("[StockPartiel]", "Selection_ajout_vente VMP 2eme
requete (2eme cession)")
While resultat > 0
DoCmd.OpenQuery "Ajout_VenteVMP 2eme Cession"
resultat = DCount("[StockPartiel]", "Selection_ajout_vente VMP 2eme
requete (2eme cession)")
Wend
DoCmd.OpenQuery "Suppression Saisie_VenteVMP(NV)"

DoCmd.Requery

Else

DoCmd.OpenQuery "Ajout_VenteVMP_1ere Requete (NV)"
DoCmd.OpenQuery "Suppression Saisie_VenteVMP(NV)"

DoCmd.Requery

End If

End Sub

"Fabien" a écrit :

maxben a écrit :
> Voilà la source
> SELECT [Forms_Stock_Pour_Cession Requête (NV)].PremierDeN°Registre,
> [Forms_Stock_Pour_Cession Requête (NV)].PremierDeDate,
> [Forms_Stock_Pour_Cession Requête (NV)].Forms_Stock_Pour_Cession.N°Auto_VMP,
> [Forms_Stock_Pour_Cession Requête (NV)].PremierDeStock AS Stock,
> [Forms_Stock_Pour_Cession Requête (NV)].N°Opération,
> [Forms_Stock_Pour_Cession Requête (NV)].Date, [Forms_Stock_Pour_Cession
> Requête (NV)].Quantité, [Forms_Stock_Pour_Cession Requête
> (NV)].Saisie_Vente_VMP.N°Auto_VMP, [Forms_Stock_Pour_Cession Requête
> (NV)].[Montant Unitaire], [Selection_ajout_vente VMP 1ere requete (2eme
> cession)].N°Opération AS N°vente, [Selection_ajout_vente VMP 1ere requete
> (2eme cession)].N°Auto_VMP, [Selection_ajout_vente VMP 1ere requete (2eme
> cession)].Date AS DateVente, [Selection_ajout_vente VMP 1ere requete (2eme
> cession)].SommeDeQuantité_Vente, [Selection_ajout_vente VMP 1ere requete
> (2eme cession)].Montant_Unitaire_Vente, [Quantité]-[SommeDeQuantité_Vente] AS
> StockPartiel, IIf([StockPartiel]>[Stock],[Stock],[StockPartiel]) AS
> VentePartielle
> FROM [Forms_Stock_Pour_Cession Requête (NV)], [Selection_ajout_vente VMP
> 1ere requete (2eme cession)]
> WHERE ((([Quantité]-[SommeDeQuantité_Vente])>0));
>
> "Fabien" a écrit :
>
>> maxben a écrit :
>>> Oui c'est exactement ça
>>>
>>> "Fabien" a écrit :
>>>
>>>> maxben a écrit :
>>>>> Merci, e, fait c'est dans la 2eme requete, elle doit s'executer tant qu'un
>>>>> champ calculé est > à 0.
>>>>> Je comprends pas trop ce que tu m'as dit de faire
>>>>>
>>>>> "Gilbert" a écrit :
>>>>>
>>>>>> Bonjour,
>>>>>>
>>>>>> Je ne sais pas ce que tu entends par un résultat > à 0 mais tu peux faire
>>>>>> quelque chose comme
>>>>>>
>>>>>> Dim ResultatPositif as boolean
>>>>>> ResultatPositif =true 'Pour la première exécution
>>>>>> Do While ResultatPositif
>>>>>> DoCmd.OpenQuery "Ajout_VenteVMP_1ere Requete (NV)"
>>>>>> DoCmd.OpenQuery "Ajout_VenteVMP 2eme Cession"
>>>>>>
>>>>>> ResultatPositif =??? 'Là c'est à toi de mettre la condition qui va bien
>>>>>> Loop
>>>>>>
>>>>>> --
>>>>>> Cordialement,
>>>>>>
>>>>>> Gilbert
>>>>>>
>>>>>>
>>>>>> "maxben" a écrit dans le message de
>>>>>> news:
>>>>>>> Bonsoir à tous,
>>>>>>>
>>>>>>> Est il possible avec du code de faire exécuter une requête plusieurs fois
>>>>>> de
>>>>>>> suite tant qu'elle trouve un résultat > à 0
>>>>>>> Merci beaucoup
>>>>>>> mon code actuel est
>>>>>>> Private Sub Commande18_Click()
>>>>>>> If [Quantité] > [Vente1] Then
>>>>>>>
>>>>>>> DoCmd.OpenQuery "Ajout_VenteVMP_1ere Requete (NV)"
>>>>>>>
>>>>>>> DoCmd.OpenQuery "Ajout_VenteVMP 2eme Cession"
>>>>>>>
>>>>>>>
>>>>>>>
>>>> Salut,
>>>> si je comprend bien tu veux que la requete "Ajout ventevmp 2eme cession"
>>>> s'execute tant que le resultat d'un champ calculé (lequel?) contenu dans
>>>> cette requete est >0 ?
>>>> @+
>>>>
>> Ok:
>> Mais alors cette requete traite plus d'un enregistrement ?
>> Le resultat que tu cherche à analyser est lié a l'enregistrement ?
>> Que faire si pour l'un des enregistrements le resultat est <=0 ?
>> Que fait exactement cette requete d'ajout et quel est ce calcul ?
>> Peux tu nous donner le source SQL de la requete ?
>> @+
>>
Ok donc l'idée c'est de faire tourner cette requete jusqu'a ce qu'elle
ne retourne plus d'info?
Il faudrait donc deux versions de cette requete : une de Selection et
d'ajout.
Tu pourrais faire quelque chose comme

resultatÜount("[PremierDeN°Registre]","Selection VenteVmp 2eme cession")
While not resultat=0
Docmd.openquery "Ajout VenteVmp 2eme cession"
resultatÜount("[PremierDeN°Registre]","Selection VenteVmp 2eme cession")
Whend



Avatar
Fabien
maxben a écrit :
Mon code ressemble à cela, ça fonctionne bien,
Est ce que ça te paraît convenable?
encore merci

Private Sub Commande18_Click()
If [Quantité] > [Vente1] Then
DoCmd.OpenQuery "Ajout_VenteVMP_1ere Requete (NV)"

resultat = DCount("[StockPartiel]", "Selection_ajout_vente VMP 2eme
requete (2eme cession)")
While resultat > 0
DoCmd.OpenQuery "Ajout_VenteVMP 2eme Cession"
resultat = DCount("[StockPartiel]", "Selection_ajout_vente VMP 2eme
requete (2eme cession)")
Wend
DoCmd.OpenQuery "Suppression Saisie_VenteVMP(NV)"

DoCmd.Requery

Else

DoCmd.OpenQuery "Ajout_VenteVMP_1ere Requete (NV)"
DoCmd.OpenQuery "Suppression Saisie_VenteVMP(NV)"

DoCmd.Requery

End If

End Sub

"Fabien" a écrit :

maxben a écrit :
Voilà la source
SELECT [Forms_Stock_Pour_Cession Requête (NV)].PremierDeN°Registre,
[Forms_Stock_Pour_Cession Requête (NV)].PremierDeDate,
[Forms_Stock_Pour_Cession Requête (NV)].Forms_Stock_Pour_Cession.N°Auto_VMP,
[Forms_Stock_Pour_Cession Requête (NV)].PremierDeStock AS Stock,
[Forms_Stock_Pour_Cession Requête (NV)].N°Opération,
[Forms_Stock_Pour_Cession Requête (NV)].Date, [Forms_Stock_Pour_Cession
Requête (NV)].Quantité, [Forms_Stock_Pour_Cession Requête
(NV)].Saisie_Vente_VMP.N°Auto_VMP, [Forms_Stock_Pour_Cession Requête
(NV)].[Montant Unitaire], [Selection_ajout_vente VMP 1ere requete (2eme
cession)].N°Opération AS N°vente, [Selection_ajout_vente VMP 1ere requete
(2eme cession)].N°Auto_VMP, [Selection_ajout_vente VMP 1ere requete (2eme
cession)].Date AS DateVente, [Selection_ajout_vente VMP 1ere requete (2eme
cession)].SommeDeQuantité_Vente, [Selection_ajout_vente VMP 1ere requete
(2eme cession)].Montant_Unitaire_Vente, [Quantité]-[SommeDeQuantité_Vente] AS
StockPartiel, IIf([StockPartiel]>[Stock],[Stock],[StockPartiel]) AS
VentePartielle
FROM [Forms_Stock_Pour_Cession Requête (NV)], [Selection_ajout_vente VMP
1ere requete (2eme cession)]
WHERE ((([Quantité]-[SommeDeQuantité_Vente])>0));

"Fabien" a écrit :

maxben a écrit :
Oui c'est exactement ça

"Fabien" a écrit :

maxben a écrit :
Merci, e, fait c'est dans la 2eme requete, elle doit s'executer tant qu'un
champ calculé est > à 0.
Je comprends pas trop ce que tu m'as dit de faire

"Gilbert" a écrit :

Bonjour,

Je ne sais pas ce que tu entends par un résultat > à 0 mais tu peux faire
quelque chose comme

Dim ResultatPositif as boolean
ResultatPositif =true 'Pour la première exécution
Do While ResultatPositif
DoCmd.OpenQuery "Ajout_VenteVMP_1ere Requete (NV)"
DoCmd.OpenQuery "Ajout_VenteVMP 2eme Cession"

ResultatPositif =??? 'Là c'est à toi de mettre la condition qui va bien
Loop

--
Cordialement,

Gilbert


"maxben" a écrit dans le message de
news:
Bonsoir à tous,

Est il possible avec du code de faire exécuter une requête plusieurs fois


de
suite tant qu'elle trouve un résultat > à 0
Merci beaucoup
mon code actuel est
Private Sub Commande18_Click()
If [Quantité] > [Vente1] Then

DoCmd.OpenQuery "Ajout_VenteVMP_1ere Requete (NV)"

DoCmd.OpenQuery "Ajout_VenteVMP 2eme Cession"









Salut,
si je comprend bien tu veux que la requete "Ajout ventevmp 2eme cession"
s'execute tant que le resultat d'un champ calculé (lequel?) contenu dans
cette requete est >0 ?
@+





Ok:
Mais alors cette requete traite plus d'un enregistrement ?
Le resultat que tu cherche à analyser est lié a l'enregistrement ?
Que faire si pour l'un des enregistrements le resultat est <=0 ?
Que fait exactement cette requete d'ajout et quel est ce calcul ?
Peux tu nous donner le source SQL de la requete ?
@+





Ok donc l'idée c'est de faire tourner cette requete jusqu'a ce qu'elle
ne retourne plus d'info?
Il faudrait donc deux versions de cette requete : une de Selection et
d'ajout.
Tu pourrais faire quelque chose comme

resultatÜount("[PremierDeN°Registre]","Selection VenteVmp 2eme cession")
While not resultat=0
Docmd.openquery "Ajout VenteVmp 2eme cession"
resultatÜount("[PremierDeN°Registre]","Selection VenteVmp 2eme cession")
Whend






Re
Juste parceque ...
Utilise l'"option explicit" dans tes modules comme ça pas de risque
d'avoir des variables non déclarées qui se balladent
Option explicit

du coup il faut déclarer les variable que tu utilises ;-)
Private Sub Commande18_Click()
Dim Resultat as integer

met
DoCmd.OpenQuery "Ajout_VenteVMP_1ere Requete (NV)"
avant le If, comme çà tu n'en a plus besoin dans le cas else ni dans la
suite du If

le
DoCmd.OpenQuery "Suppression Saisie_VenteVMP(NV)
DoCmd.Requery
met le une seule fois après le End if puisque dans tous les cas tu dois
y passer ;-)

Ton code devient
Private Sub Commande18_Click()
Dim Resultat as Integer
DoCmd.OpenQuery "Ajout_VenteVMP_1ere Requete (NV)"
> If [Quantité] > [Vente1] Then
> resultat = DCount("[StockPartiel]", "Selection_ajout_vente VMP 2eme
> requete (2eme cession)")
> While resultat > 0
> DoCmd.OpenQuery "Ajout_VenteVMP 2eme Cession"
> resultat = DCount("[StockPartiel]", "Selection_ajout_vente VMP 2eme
> requete (2eme cession)")
> Wend
>
End if

DoCmd.OpenQuery "Suppression Saisie_VenteVMP(NV)"
DoCmd.Requery
End Sub

Derniére chose : prend l'habitude de nommé commerctement tes objets dans
les formulaire, n'utilise pas le nom par défaut. Commande18 aujourd'hui
tu sais ce qu'elle fait mais dans un mois ....
Ci cette commande ajoute des ventes alors nomme la Ajout_de_vente et du
coup ta procédure devient : Private sub Ajout_de_vente_Click()
voilà
@+
1 2