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

Formulaire continu et requête

6 réponses
Avatar
Nathalie Lebas
Bonjour à tous,

Est-il possible de "charger" un formulaire en mode continu avec une requête
dans le code vba ?
Actuellement, je charge mon formulaire en mettant le nom de ma requête dans
propriété source de mon formulaire mais cela me pose un problème lorsque je
veux mettre à jour un des champs du formulaire.
Merci de votre aide.

--
Nathalie

6 réponses

Avatar
f_framZZ
Bonjour Nathalie,

Je ne saisis pas très bien.
Tu peux faire sur l'évènement Load de ton formulaire:
Private Sub Form_Load()
Me.recordsource="Select ..."
Me.requery
End Sub

ou encore si tu appelles le formulaire à partir d'un bouton de commande:

Dim strSQL as String
DoCmd.Openform "TonForm", acFormDS
strSQL="Select ..."
Forms("TonForm").Recordsource=strSQL
Forms("TonForm").Requery

A+
Eric



Bonjour à tous,

Est-il possible de "charger" un formulaire en mode continu avec une requête
dans le code vba ?
Actuellement, je charge mon formulaire en mettant le nom de ma requête dans
propriété source de mon formulaire mais cela me pose un problème lorsque je
veux mettre à jour un des champs du formulaire.
Merci de votre aide.

--
Nathalie


Avatar
Nathalie Lebas
Bonjour Eric,
Merci de me répondre.
En effet, je ne me suis pas expliquée sur le problème que je cherche à
résoudre.
J'ai un formulaire continu qui contient 4 champs dans sa ligne : référence
produit, coloris et prix, plus une case à cocher permettant de dire si
l'article/coloris va être sélectionné en commande.
Pour alimenter ce formulaire, j'ai une requête qui contient 3 tables : les
produits, les coloris et les prix. La coche O/N est un champ de la table
coloris. Lorsque ma requete contient seulement les tables coloris et produit
et que je coche dans le formulaire la case d'une référence/coloris, cela
fonctionne.
Si je rajoute ma table tarif, qui contient le tarif à la référence, cela ne
fonctionne plus, j'obtiens le message "Impossible de mettre à jour Recordset".
Je cherche donc une solution pour que cela fonctionne car mes utilisateurs
ont besoin de connaître le prix du vêtement avant de le sélectionner pour la
cde.
J'espère avoir été plus précise et surtout claire !
merci
--
Nathalie



Bonjour Nathalie,

Je ne saisis pas très bien.
Tu peux faire sur l'évènement Load de ton formulaire:
Private Sub Form_Load()
Me.recordsource="Select ..."
Me.requery
End Sub

ou encore si tu appelles le formulaire à partir d'un bouton de commande:

Dim strSQL as String
DoCmd.Openform "TonForm", acFormDS
strSQL="Select ..."
Forms("TonForm").Recordsource=strSQL
Forms("TonForm").Requery

A+
Eric



Bonjour à tous,

Est-il possible de "charger" un formulaire en mode continu avec une requête
dans le code vba ?
Actuellement, je charge mon formulaire en mettant le nom de ma requête dans
propriété source de mon formulaire mais cela me pose un problème lorsque je
veux mettre à jour un des champs du formulaire.
Merci de votre aide.

--
Nathalie




Avatar
f_fram
re,

La requête, seule, avec les 3 tables permet-elle une mise à jour ? Ne
s'agirait-il pas d'une requête avec regroupement ?

Eric


Bonjour Eric,
Merci de me répondre.
En effet, je ne me suis pas expliquée sur le problème que je cherche à
résoudre.
J'ai un formulaire continu qui contient 4 champs dans sa ligne : réfé rence
produit, coloris et prix, plus une case à cocher permettant de dire si
l'article/coloris va être sélectionné en commande.
Pour alimenter ce formulaire, j'ai une requête qui contient 3 tables : les
produits, les coloris et les prix. La coche O/N est un champ de la table
coloris. Lorsque ma requete contient seulement les tables coloris et prod uit
et que je coche dans le formulaire la case d'une référence/coloris, c ela
fonctionne.
Si je rajoute ma table tarif, qui contient le tarif à la référence, cela ne
fonctionne plus, j'obtiens le message "Impossible de mettre à jour Reco rdset".
Je cherche donc une solution pour que cela fonctionne car mes utilisateurs
ont besoin de connaître le prix du vêtement avant de le sélectionne r pour la
cde.
J'espère avoir été plus précise et surtout claire !
merci
--
Nathalie



Bonjour Nathalie,

Je ne saisis pas très bien.
Tu peux faire sur l'évènement Load de ton formulaire:
Private Sub Form_Load()
Me.recordsource="Select ..."
Me.requery
End Sub

ou encore si tu appelles le formulaire à partir d'un bouton de comman de:

Dim strSQL as String
DoCmd.Openform "TonForm", acFormDS
strSQL="Select ..."
Forms("TonForm").Recordsource=strSQL
Forms("TonForm").Requery

A+
Eric



Bonjour à tous,

Est-il possible de "charger" un formulaire en mode continu avec une r equête
dans le code vba ?
Actuellement, je charge mon formulaire en mettant le nom de ma requ ête dans
propriété source de mon formulaire mais cela me pose un problèm e lorsque je
veux mettre à jour un des champs du formulaire.
Merci de votre aide.

--
Nathalie






Avatar
Nathalie Lebas
re,
Non, il s'agit d'une requete simple sans regroupement. Je pensais que le
fait d'avoir plusieurs tarifs pour une référence posait le problème. J'ai
donc modifier la requête pour avoir un tarif et un seul par référence produit
mais cela ne change rien, j'ai toujours ce message "Impossible de mettre à
jour Recordset".
--
Nathalie



re,

La requête, seule, avec les 3 tables permet-elle une mise à jour ? Ne
s'agirait-il pas d'une requête avec regroupement ?

Eric


Bonjour Eric,
Merci de me répondre.
En effet, je ne me suis pas expliquée sur le problème que je cherche à
résoudre.
J'ai un formulaire continu qui contient 4 champs dans sa ligne : référence
produit, coloris et prix, plus une case à cocher permettant de dire si
l'article/coloris va être sélectionné en commande.
Pour alimenter ce formulaire, j'ai une requête qui contient 3 tables : les
produits, les coloris et les prix. La coche O/N est un champ de la table
coloris. Lorsque ma requete contient seulement les tables coloris et produit
et que je coche dans le formulaire la case d'une référence/coloris, cela
fonctionne.
Si je rajoute ma table tarif, qui contient le tarif à la référence, cela ne
fonctionne plus, j'obtiens le message "Impossible de mettre à jour Recordset".
Je cherche donc une solution pour que cela fonctionne car mes utilisateurs
ont besoin de connaître le prix du vêtement avant de le sélectionner pour la
cde.
J'espère avoir été plus précise et surtout claire !
merci
--
Nathalie



Bonjour Nathalie,

Je ne saisis pas très bien.
Tu peux faire sur l'évènement Load de ton formulaire:
Private Sub Form_Load()
Me.recordsource="Select ..."
Me.requery
End Sub

ou encore si tu appelles le formulaire à partir d'un bouton de commande:

Dim strSQL as String
DoCmd.Openform "TonForm", acFormDS
strSQL="Select ..."
Forms("TonForm").Recordsource=strSQL
Forms("TonForm").Requery

A+
Eric



Bonjour à tous,

Est-il possible de "charger" un formulaire en mode continu avec une requête
dans le code vba ?
Actuellement, je charge mon formulaire en mettant le nom de ma requête dans
propriété source de mon formulaire mais cela me pose un problème lorsque je
veux mettre à jour un des champs du formulaire.
Merci de votre aide.

--
Nathalie










Avatar
Eric
re,

Pas de jointure externe dans la requête ?
Postes ton SQL si tu peux.

re,
Non, il s'agit d'une requete simple sans regroupement. Je pensais que le
fait d'avoir plusieurs tarifs pour une référence posait le problème. J'ai
donc modifier la requête pour avoir un tarif et un seul par référence produit
mais cela ne change rien, j'ai toujours ce message "Impossible de mettre à
jour Recordset".


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Nathalie Lebas
Bonsoir Eric,

Voici le sql de la requête. Je n'ai pas écris le sql, j'ai fais la requête
avec l'assistant :
SELECT Produit.pr_code, [co_com] & " - " & [co_lib] AS coloris,
Produit.pr_reg, Produit.pr_sais, Produit.pr_des, Regcomms.regc_lib,
Coloris.co_col, Coloris.co_annul, Produit.pr_annul, Coloris.co_selec,
Tarifs.tar_prix, CdesEntete.cde_cli, CdesEntete.cde_cde
FROM Regcomms INNER JOIN ((Produit INNER JOIN Coloris ON Produit.pr_code =
Coloris.co_pro) INNER JOIN (CdesEntete INNER JOIN Tarifs ON
(CdesEntete.cde_tarif = Tarifs.tar_code) AND (CdesEntete.cde_sais =
Tarifs.tar_sais)) ON Produit.pr_code = Tarifs.tar_prod) ON Regcomms.regc_code
= Produit.pr_reg
WHERE (((Coloris.co_annul)=0) AND ((Produit.pr_annul)=0) AND
((CdesEntete.cde_cli)=[formulaires]![Commande]![cde_cli]) AND
((CdesEntete.cde_cde)=[formulaires]![Commande]![cde_cde]))
ORDER BY Produit.pr_code, [co_com] & " - " & [co_lib];
si tu veux y jeter un oeil.

Ce week-end, j'ai trouvé une solution à mon problème. Au lieu de mettre à
jour le champ co_selec (une zone O/N) directement dans le formulaire, j'ai
utilisé VBA.
Lorsque l'utilisateur clique sur une référence, sur l'évènement clic, je
mets à jour ma coche et je fais un requery. Cela peut paraître une usine à
gaz mais cela fonctionne puisque je n'ai pas su faire autrement.
Merci encore de ton aide.
--
Nathalie



re,

Pas de jointure externe dans la requête ?
Postes ton SQL si tu peux.

re,
Non, il s'agit d'une requete simple sans regroupement. Je pensais que le
fait d'avoir plusieurs tarifs pour une référence posait le problème. J'ai
donc modifier la requête pour avoir un tarif et un seul par référence produit
mais cela ne change rien, j'ai toujours ce message "Impossible de mettre à
jour Recordset".


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr