OVH Cloud OVH Cloud

Impossible d'ouvrir un formulaire avec une recherche

3 réponses
Avatar
Marie-Claire
Bonjour,
La je suis très ennuyée, car je n'arrive pas à trouver la solution.

Depuis un formulaire je demande l'ouverture d'un autre formulaire
"PRODUITSLIVRES" avec:

If "REPONSE" = DCount("NCLIENT", "LIVRAISONS", "NCLIENT = " & Me.NCLIENT =
2) Then
DoCmd.OpenForm "PRODUITSLIVRES", acNormal, , "[NCLIENT]=" & Me.NCLIENT

Else
msgbox "Il n'y a pas de livraisons chez ce client !!!@ @", vbExclamation
+ vbOKOnly

End If

Dans le formulaire "PRODUITSLIVRES" il y a un champ "REPONSE" (format
texte) dans lequel il y a la situation suite à une commande

"REPONSE" =1 une commande a été passée par le client

"REPONSE" =2 une livraison a été faite chez ce client

"REPONSE" =3 la livraison a été payée par le client


Dès que je clique sur le bouton pour ouvrir le formulaire, même si le champ
"REPONSE" de la table "LIVRAISONS" est 2 j'ai a chaque fois la Msgbox qui
s'ouvre.
Pourriez-vous m'aider à trouver la solution?
Merci beaucoup
--
Marie-Claire

3 réponses

Avatar
Marie-Claire
Bonjour Jimmy,
Mais là il y aura l'ouverture du formulaire "PRODUITSLIVRES" sans tenir
compte de la valeur de "REPONSE" de la table "LIVRAISONS".
Car dans le fond le formulaire "PRODUITSLIVRES" ne doit s'ouvrir que si au
client intérrogé la valeur du champ "REPONSE" est "2".

Marie-Claire

--
Marie-Claire



mer. 21 sept. 2005 15:20:03 =?Utf-8?B?TWFyaWUtQ2xhaXJl?= a écrit dans le
message de news <news:
:

Dès que je clique sur le bouton pour ouvrir le formulaire, même si le
champ "REPONSE" de la table "LIVRAISONS" est 2 j'ai a chaque fois la
Msgbox qui s'ouvre.
Pourriez-vous m'aider à trouver la solution?



Mettez ça dans votre votre code :

If DCount("NCLIENT", "LIVRAISONS", "NCLIENT = " & cstr(Me.NCLIENT) ) Then
DoCmd.OpenForm "PRODUITSLIVRES", acNormal, , "[NCLIENT]=" &
cstr(Me.NCLIENT)
Else
msgbox "Il n'y a pas de livraisons chez ce client !!!@ @", vbExclamation
+ vbOKOnly
End If

--
Quand Jimmy dit what'd I say
I love you baby
C'est comme qui dirait
Toute la province qui chante en anglais





Avatar
Marie-Claire
Bonjour Jimmy,
Avec ce code le formulaire "PRODUITSLIVRES" s'ouvre même s'il n'y a pas de
commandes pour le client, c'est a dire un formulaire blanc.

--
Marie-Claire



mer. 21 sept. 2005 16:39:03 =?Utf-8?B?TWFyaWUtQ2xhaXJl?= a écrit dans le
message de news <news: :

Mais là il y aura l'ouverture du formulaire "PRODUITSLIVRES" sans tenir
compte de la valeur de "REPONSE" de la table "LIVRAISONS".


Il faut rajouter le test sur [REPONSE] dans le paramètre Critère de la
fonction DCount :

DCount("NCLIENT", "LIVRAISONS", "NCLIENT = " & cstr(Me.NCLIENT) & " AND
[REPONSE] = 2")

Le premier argument compte pour du beurre dans votre cas, le deuxième précise
la table où il faut chercher, le troisième précise que seuls les
enregistrements correspondant aux commandes du client sélectionné dans votre
formulaire et pour lequel la réponse est 2 sont comptés.

Si la valeur retournée est différente de Zéro, le test est VRAI.

Car dans le fond le formulaire "PRODUITSLIVRES" ne doit s'ouvrir que si au
client intérrogé la valeur du champ "REPONSE" est "2".


La fonction DCount compte les enregistrements correspondant au critère
demandé.

Il y avait deux erreurs dans votre test.

Note : pour faciliter les échanges sur le groupe, prenez l'habitude
d'indiquer le nom des champs entre crochets [], les guillemets (") ont une
signification précise désignant le contenu d'un variable string.


--
Quand Jimmy dit what'd I say
I love you baby
C'est comme qui dirait
Toute la province qui chante en anglais





Avatar
Marie-Claire
Bonjour Jimmy,
Voilà, j'ai trouvé une solution en créant une requête "LIVRAISONS_Requete"
avec comme condition au Champ [REPONSE] "2".
Et le coce devient:

If DCount("NCLIENT", "LIVRAISONS_Requete", "NCLIENT = " & Me.NCLIENT) Then
DoCmd.OpenForm "PRODUITSLIVRES", acNormal, , "[NCLIENT]=" & Me.NCLIENT

--
Marie-Claire



Bonjour Jimmy,
Avec ce code le formulaire "PRODUITSLIVRES" s'ouvre même s'il n'y a pas de
commandes pour le client, c'est a dire un formulaire blanc.

--
Marie-Claire



mer. 21 sept. 2005 16:39:03 =?Utf-8?B?TWFyaWUtQ2xhaXJl?= a écrit dans le
message de news <news: :

Mais là il y aura l'ouverture du formulaire "PRODUITSLIVRES" sans tenir
compte de la valeur de "REPONSE" de la table "LIVRAISONS".


Il faut rajouter le test sur [REPONSE] dans le paramètre Critère de la
fonction DCount :

DCount("NCLIENT", "LIVRAISONS", "NCLIENT = " & cstr(Me.NCLIENT) & " AND
[REPONSE] = 2")

Le premier argument compte pour du beurre dans votre cas, le deuxième précise
la table où il faut chercher, le troisième précise que seuls les
enregistrements correspondant aux commandes du client sélectionné dans votre
formulaire et pour lequel la réponse est 2 sont comptés.

Si la valeur retournée est différente de Zéro, le test est VRAI.

Car dans le fond le formulaire "PRODUITSLIVRES" ne doit s'ouvrir que si au
client intérrogé la valeur du champ "REPONSE" est "2".


La fonction DCount compte les enregistrements correspondant au critère
demandé.

Il y avait deux erreurs dans votre test.

Note : pour faciliter les échanges sur le groupe, prenez l'habitude
d'indiquer le nom des champs entre crochets [], les guillemets (") ont une
signification précise désignant le contenu d'un variable string.


--
Quand Jimmy dit what'd I say
I love you baby
C'est comme qui dirait
Toute la province qui chante en anglais