Saisie de données à partir d'une requête sélection
8 réponses
moromain
Bonjour,
J'utilise la requ=EAte suivante, depuis un formulaire pour de la
saisie :
SELECT T1.C1, T1.C2, T1.C3, T1.C4
FROM T1
WHERE T1.C4 is NULL
Tout fonctionne normalement : je peux saisir des donn=E9es dans C4.
Par contre, si je rajoute un champs d'une table T2, pour faciliter la
saisie par l'op=E9rateur, je ne peux plus entrer de
donn=E9es dans le champs C4 :
SELECT T1.C1, T1.C2, T1.C3, T1.C4, T2.C5
FROM T1 INNER JOIN T2 ON T1.C3 =3D T2.C6
HAVING T1.C4 Is Null
Je pense que le probl=E8me vient du fait que la source du formulaire est
la requ=EAte et non la table T1.
Comment faire pour entrer des valeurs dans le formulaire ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Thierry (ze Titi)
Hello moromain !
A partir du moment où tu as une jointure dans la requête, le recordset est verrouillé, ce qui interdit la saisie. Dans ton cas, je te suggère de conserver la table T1 comme source du formulaire et d'importer le champ de la table T2 en "live", avec un DLookup par exemple:
En ce jour mémorable du dimanche 04/11/2007, tu as émis l'idée suivante:
Bonjour,
J'utilise la requête suivante, depuis un formulaire pour de la saisie :
SELECT T1.C1, T1.C2, T1.C3, T1.C4 FROM T1 WHERE T1.C4 is NULL
Tout fonctionne normalement : je peux saisir des données dans C4.
Par contre, si je rajoute un champs d'une table T2, pour faciliter la saisie par l'opérateur, je ne peux plus entrer de
données dans le champs C4 :
SELECT T1.C1, T1.C2, T1.C3, T1.C4, T2.C5 FROM T1 INNER JOIN T2 ON T1.C3 = T2.C6 HAVING T1.C4 Is Null
Je pense que le problème vient du fait que la source du formulaire est la requête et non la table T1. Comment faire pour entrer des valeurs dans le formulaire ?
Merci d'avance !
-- Cordialement, Thierry
Tout pour réussir avec Access : http://www.mpfa.info
Hello moromain !
A partir du moment où tu as une jointure dans la requête, le recordset
est verrouillé, ce qui interdit la saisie. Dans ton cas, je te suggère
de conserver la table T1 comme source du formulaire et d'importer le
champ de la table T2 en "live", avec un DLookup par exemple:
En ce jour mémorable du dimanche 04/11/2007, tu as émis l'idée
suivante:
Bonjour,
J'utilise la requête suivante, depuis un formulaire pour de la
saisie :
SELECT T1.C1, T1.C2, T1.C3, T1.C4
FROM T1
WHERE T1.C4 is NULL
Tout fonctionne normalement : je peux saisir des données dans C4.
Par contre, si je rajoute un champs d'une table T2, pour faciliter la
saisie par l'opérateur, je ne peux plus entrer de
données dans le champs C4 :
SELECT T1.C1, T1.C2, T1.C3, T1.C4, T2.C5
FROM T1 INNER JOIN T2 ON T1.C3 = T2.C6
HAVING T1.C4 Is Null
Je pense que le problème vient du fait que la source du formulaire est
la requête et non la table T1.
Comment faire pour entrer des valeurs dans le formulaire ?
Merci d'avance !
--
Cordialement,
Thierry
Tout pour réussir avec Access :
http://www.mpfa.info
A partir du moment où tu as une jointure dans la requête, le recordset est verrouillé, ce qui interdit la saisie. Dans ton cas, je te suggère de conserver la table T1 comme source du formulaire et d'importer le champ de la table T2 en "live", avec un DLookup par exemple:
En ce jour mémorable du dimanche 04/11/2007, tu as émis l'idée suivante:
Bonjour,
J'utilise la requête suivante, depuis un formulaire pour de la saisie :
SELECT T1.C1, T1.C2, T1.C3, T1.C4 FROM T1 WHERE T1.C4 is NULL
Tout fonctionne normalement : je peux saisir des données dans C4.
Par contre, si je rajoute un champs d'une table T2, pour faciliter la saisie par l'opérateur, je ne peux plus entrer de
données dans le champs C4 :
SELECT T1.C1, T1.C2, T1.C3, T1.C4, T2.C5 FROM T1 INNER JOIN T2 ON T1.C3 = T2.C6 HAVING T1.C4 Is Null
Je pense que le problème vient du fait que la source du formulaire est la requête et non la table T1. Comment faire pour entrer des valeurs dans le formulaire ?
Merci d'avance !
-- Cordialement, Thierry
Tout pour réussir avec Access : http://www.mpfa.info
moromain
Merci Thierry, C'est exactement ce que je recherchais ! J'ai repris ton exemple : erreur de synthaxe. Je reprends l'exemple de l'aide, que je suis à la loupe (c'est pourtant pas complexe) : erreur de synthaxe.
Dans le code source, j'ai mis : =DLookup("[Unite]", "T_Parametres_ListeParAlterationEtParMatrice", "[Parametre] =" & Forms![F_MG_1_321_sf]!NomParametre_PVB) J'ai essayé : =DLookup("[Unite]", "T_Parametres_ListeParAlterationEtParMatrice", "[Parametre] =" & NomParametre_PVB) avec crochets, sans crochets, avec ", sans ", sans rien. J'ai fait un papier collé des noms de champs et de formulaires. L'exemple de l'aide : =DLookup("[ProductName]", "Products", "[ProductID] =" & Forms![Order Details]!ProductID)
Qu'est-ce qui ne va pas ?!
Merci Thierry,
C'est exactement ce que je recherchais !
J'ai repris ton exemple : erreur de synthaxe.
Je reprends l'exemple de l'aide, que je suis à la loupe (c'est
pourtant pas complexe) : erreur de synthaxe.
Dans le code source, j'ai mis :
=DLookup("[Unite]", "T_Parametres_ListeParAlterationEtParMatrice",
"[Parametre] =" & Forms![F_MG_1_321_sf]!NomParametre_PVB)
J'ai essayé :
=DLookup("[Unite]", "T_Parametres_ListeParAlterationEtParMatrice",
"[Parametre] =" & NomParametre_PVB)
avec crochets, sans crochets, avec ", sans ", sans rien.
J'ai fait un papier collé des noms de champs et de formulaires.
L'exemple de l'aide :
=DLookup("[ProductName]", "Products", "[ProductID] =" & Forms![Order
Details]!ProductID)
Merci Thierry, C'est exactement ce que je recherchais ! J'ai repris ton exemple : erreur de synthaxe. Je reprends l'exemple de l'aide, que je suis à la loupe (c'est pourtant pas complexe) : erreur de synthaxe.
Dans le code source, j'ai mis : =DLookup("[Unite]", "T_Parametres_ListeParAlterationEtParMatrice", "[Parametre] =" & Forms![F_MG_1_321_sf]!NomParametre_PVB) J'ai essayé : =DLookup("[Unite]", "T_Parametres_ListeParAlterationEtParMatrice", "[Parametre] =" & NomParametre_PVB) avec crochets, sans crochets, avec ", sans ", sans rien. J'ai fait un papier collé des noms de champs et de formulaires. L'exemple de l'aide : =DLookup("[ProductName]", "Products", "[ProductID] =" & Forms![Order Details]!ProductID)
Qu'est-ce qui ne va pas ?!
Thierry (ze Titi)
Si tu mets tout ça directement dans la source des contrôles ou dans les zones critères de l'éditeur de requêtes, il faut remplacer les virgules par des point-virgules:
Merci Thierry, C'est exactement ce que je recherchais ! J'ai repris ton exemple : erreur de synthaxe. Je reprends l'exemple de l'aide, que je suis à la loupe (c'est pourtant pas complexe) : erreur de synthaxe.
Dans le code source, j'ai mis : =DLookup("[Unite]", "T_Parametres_ListeParAlterationEtParMatrice", "[Parametre] =" & Forms![F_MG_1_321_sf]!NomParametre_PVB) J'ai essayé : =DLookup("[Unite]", "T_Parametres_ListeParAlterationEtParMatrice", "[Parametre] =" & NomParametre_PVB) avec crochets, sans crochets, avec ", sans ", sans rien. J'ai fait un papier collé des noms de champs et de formulaires. L'exemple de l'aide : =DLookup("[ProductName]", "Products", "[ProductID] =" & Forms![Order Details]!ProductID)
Qu'est-ce qui ne va pas ?!
-- Cordialement, Thierry
Tout pour réussir avec Access : http://www.mpfa.info
Si tu mets tout ça directement dans la source des contrôles ou dans les zones critères de l'éditeur de requêtes, il faut remplacer les virgules par des point-virgules:
Merci Thierry,
C'est exactement ce que je recherchais !
J'ai repris ton exemple : erreur de synthaxe.
Je reprends l'exemple de l'aide, que je suis à la loupe (c'est
pourtant pas complexe) : erreur de synthaxe.
Dans le code source, j'ai mis :
=DLookup("[Unite]", "T_Parametres_ListeParAlterationEtParMatrice",
"[Parametre] =" & Forms![F_MG_1_321_sf]!NomParametre_PVB)
J'ai essayé :
=DLookup("[Unite]", "T_Parametres_ListeParAlterationEtParMatrice",
"[Parametre] =" & NomParametre_PVB)
avec crochets, sans crochets, avec ", sans ", sans rien.
J'ai fait un papier collé des noms de champs et de formulaires.
L'exemple de l'aide :
=DLookup("[ProductName]", "Products", "[ProductID] =" & Forms![Order
Details]!ProductID)
Qu'est-ce qui ne va pas ?!
--
Cordialement,
Thierry
Tout pour réussir avec Access :
http://www.mpfa.info
Si tu mets tout ça directement dans la source des contrôles ou dans les zones critères de l'éditeur de requêtes, il faut remplacer les virgules par des point-virgules:
Merci Thierry, C'est exactement ce que je recherchais ! J'ai repris ton exemple : erreur de synthaxe. Je reprends l'exemple de l'aide, que je suis à la loupe (c'est pourtant pas complexe) : erreur de synthaxe.
Dans le code source, j'ai mis : =DLookup("[Unite]", "T_Parametres_ListeParAlterationEtParMatrice", "[Parametre] =" & Forms![F_MG_1_321_sf]!NomParametre_PVB) J'ai essayé : =DLookup("[Unite]", "T_Parametres_ListeParAlterationEtParMatrice", "[Parametre] =" & NomParametre_PVB) avec crochets, sans crochets, avec ", sans ", sans rien. J'ai fait un papier collé des noms de champs et de formulaires. L'exemple de l'aide : =DLookup("[ProductName]", "Products", "[ProductID] =" & Forms![Order Details]!ProductID)
Qu'est-ce qui ne va pas ?!
-- Cordialement, Thierry
Tout pour réussir avec Access : http://www.mpfa.info
moromain
Merci ! Il n'empêche que l'aide n'est pas très clair au sujet des "," et des ";" :p
Question subsidiaire : est-il possible de faire un Dlookup à l'intérieur d'un DLookup ? Une requête serait plus utile, non ? J'avais essayé la requête. Je viens de tester DLookup. Même résultat : toutes les valeurs de mon champs sur lequel je fais un DLookup sont égaux (formulaire en mode Feuille de données et toutes les valeurs de la colonne sont égales) : =RechDom("[C1]";"T";"[C3]='" & RechDom("[C3]";"T";"[C2]='" & [C2duForm] & "'") & "'") c'est pas barbare comme synthaxe ?!!! Ou la requête : SELECT C1, C2, C3 FROM T WHERE C2=[C2duForm] AND C3=[C3duForm] (les noms des champs n'ont rien à voir avec ceux plus haut !)
Merci !
Il n'empêche que l'aide n'est pas très clair au sujet des "," et des
";" :p
Question subsidiaire : est-il possible de faire un Dlookup à
l'intérieur d'un DLookup ?
Une requête serait plus utile, non ? J'avais essayé la requête. Je
viens de tester DLookup. Même résultat : toutes les valeurs de mon
champs sur lequel je fais un DLookup sont égaux (formulaire en mode
Feuille de données et toutes les valeurs de la colonne sont égales) :
=RechDom("[C1]";"T";"[C3]='" & RechDom("[C3]";"T";"[C2]='" &
[C2duForm] & "'") & "'") c'est pas barbare comme synthaxe ?!!!
Ou la requête :
SELECT C1, C2, C3
FROM T
WHERE C2=[C2duForm] AND C3=[C3duForm]
(les noms des champs n'ont rien à voir avec ceux plus haut !)
Merci ! Il n'empêche que l'aide n'est pas très clair au sujet des "," et des ";" :p
Question subsidiaire : est-il possible de faire un Dlookup à l'intérieur d'un DLookup ? Une requête serait plus utile, non ? J'avais essayé la requête. Je viens de tester DLookup. Même résultat : toutes les valeurs de mon champs sur lequel je fais un DLookup sont égaux (formulaire en mode Feuille de données et toutes les valeurs de la colonne sont égales) : =RechDom("[C1]";"T";"[C3]='" & RechDom("[C3]";"T";"[C2]='" & [C2duForm] & "'") & "'") c'est pas barbare comme synthaxe ?!!! Ou la requête : SELECT C1, C2, C3 FROM T WHERE C2=[C2duForm] AND C3=[C3duForm] (les noms des champs n'ont rien à voir avec ceux plus haut !)
Thierry (ze Titi)
Hello moromain !
On peut très bien imbriquer plusieurs DLookup, c'est tout à fait possible. Mais ça rallonge d'autant la durée d'exécution. De toute façon, un DLookup n'est ni plus ni moins qu'une requête ne ramenant qu'une valeur, il n'est pas étonnant que tu retrouves les mêmes valeurs. Les fonctions de recherche de domaine (DLookup, DFirst, etc...) sont utiles en programmation VBA quand on cherche une valeur et une seule selon un nombre restreint de paramètres.
En ce jour mémorable du lundi 05/11/2007, tu as émis l'idée suivante:
Merci ! Il n'empêche que l'aide n'est pas très clair au sujet des "," et des ";" :p
Question subsidiaire : est-il possible de faire un Dlookup à l'intérieur d'un DLookup ? Une requête serait plus utile, non ? J'avais essayé la requête. Je viens de tester DLookup. Même résultat : toutes les valeurs de mon champs sur lequel je fais un DLookup sont égaux (formulaire en mode Feuille de données et toutes les valeurs de la colonne sont égales) : =RechDom("[C1]";"T";"[C3]='" & RechDom("[C3]";"T";"[C2]='" & [C2duForm] & "'") & "'") c'est pas barbare comme synthaxe ?!!! Ou la requête : SELECT C1, C2, C3 FROM T WHERE C2=[C2duForm] AND C3=[C3duForm] (les noms des champs n'ont rien à voir avec ceux plus haut !)
-- Cordialement, Thierry
Tout pour réussir avec Access : http://www.mpfa.info
Hello moromain !
On peut très bien imbriquer plusieurs DLookup, c'est tout à fait
possible. Mais ça rallonge d'autant la durée d'exécution. De toute
façon, un DLookup n'est ni plus ni moins qu'une requête ne ramenant
qu'une valeur, il n'est pas étonnant que tu retrouves les mêmes
valeurs.
Les fonctions de recherche de domaine (DLookup, DFirst, etc...) sont
utiles en programmation VBA quand on cherche une valeur et une seule
selon un nombre restreint de paramètres.
En ce jour mémorable du lundi 05/11/2007, tu as émis l'idée suivante:
Merci !
Il n'empêche que l'aide n'est pas très clair au sujet des "," et des
";" :p
Question subsidiaire : est-il possible de faire un Dlookup à
l'intérieur d'un DLookup ?
Une requête serait plus utile, non ? J'avais essayé la requête. Je
viens de tester DLookup. Même résultat : toutes les valeurs de mon
champs sur lequel je fais un DLookup sont égaux (formulaire en mode
Feuille de données et toutes les valeurs de la colonne sont égales) :
=RechDom("[C1]";"T";"[C3]='" & RechDom("[C3]";"T";"[C2]='" &
[C2duForm] & "'") & "'") c'est pas barbare comme synthaxe ?!!!
Ou la requête :
SELECT C1, C2, C3
FROM T
WHERE C2=[C2duForm] AND C3=[C3duForm]
(les noms des champs n'ont rien à voir avec ceux plus haut !)
--
Cordialement,
Thierry
Tout pour réussir avec Access :
http://www.mpfa.info
On peut très bien imbriquer plusieurs DLookup, c'est tout à fait possible. Mais ça rallonge d'autant la durée d'exécution. De toute façon, un DLookup n'est ni plus ni moins qu'une requête ne ramenant qu'une valeur, il n'est pas étonnant que tu retrouves les mêmes valeurs. Les fonctions de recherche de domaine (DLookup, DFirst, etc...) sont utiles en programmation VBA quand on cherche une valeur et une seule selon un nombre restreint de paramètres.
En ce jour mémorable du lundi 05/11/2007, tu as émis l'idée suivante:
Merci ! Il n'empêche que l'aide n'est pas très clair au sujet des "," et des ";" :p
Question subsidiaire : est-il possible de faire un Dlookup à l'intérieur d'un DLookup ? Une requête serait plus utile, non ? J'avais essayé la requête. Je viens de tester DLookup. Même résultat : toutes les valeurs de mon champs sur lequel je fais un DLookup sont égaux (formulaire en mode Feuille de données et toutes les valeurs de la colonne sont égales) : =RechDom("[C1]";"T";"[C3]='" & RechDom("[C3]";"T";"[C2]='" & [C2duForm] & "'") & "'") c'est pas barbare comme synthaxe ?!!! Ou la requête : SELECT C1, C2, C3 FROM T WHERE C2=[C2duForm] AND C3=[C3duForm] (les noms des champs n'ont rien à voir avec ceux plus haut !)
-- Cordialement, Thierry
Tout pour réussir avec Access : http://www.mpfa.info
moromain
Existe t'il alors un moyen de faire varier un champs selon 2 autres, dans une feuille de données ? L'opérateur doit saisir des valeurs. Selon 2 critères affichés dans la feuille de données, l'unité change. Si je n'ai pas le choix tant pis, mais j'aurai préféré ne pas laisser le choix à l'utilisateur de choisir lui-même l'unité (afin d'avoir des valeurs de même unité da ns la table et donc forcer l'utilisateur à modifier sa valeur en fonction de MON unité !).
Existe t'il alors un moyen de faire varier un champs selon 2 autres,
dans une feuille de données ?
L'opérateur doit saisir des valeurs. Selon 2 critères affichés dans la
feuille de données, l'unité change. Si je n'ai pas le choix tant pis,
mais j'aurai préféré ne pas laisser le choix à l'utilisateur de
choisir lui-même l'unité (afin d'avoir des valeurs de même unité da ns
la table et donc forcer l'utilisateur à modifier sa valeur en fonction
de MON unité !).
Existe t'il alors un moyen de faire varier un champs selon 2 autres, dans une feuille de données ? L'opérateur doit saisir des valeurs. Selon 2 critères affichés dans la feuille de données, l'unité change. Si je n'ai pas le choix tant pis, mais j'aurai préféré ne pas laisser le choix à l'utilisateur de choisir lui-même l'unité (afin d'avoir des valeurs de même unité da ns la table et donc forcer l'utilisateur à modifier sa valeur en fonction de MON unité !).
moromain
Et je rajoute une autre question (qu'est-ce qu'il nous emm... avec ses questions çuilà !). Comment se fait-il que, dans un formulaire, un controle texte (par exemple), dont la valeur (.value) dépend d'autres contrôles du même enregistrement (via une requête) conserve la première valeur, quel que soit l'enregistrement ? Vous allez peut-être me dire de faire un requery. Soit. Mais dans ce cas, comment fait-on un requery, en mode feuille de données, quand on passe à un autre enregistrement ?
Et je rajoute une autre question (qu'est-ce qu'il nous emm... avec ses
questions çuilà !).
Comment se fait-il que, dans un formulaire, un controle texte (par
exemple), dont la valeur (.value) dépend d'autres contrôles du même
enregistrement (via une requête) conserve la première valeur, quel que
soit l'enregistrement ?
Vous allez peut-être me dire de faire un requery. Soit. Mais dans ce
cas, comment fait-on un requery, en mode feuille de données, quand on
passe à un autre enregistrement ?
Et je rajoute une autre question (qu'est-ce qu'il nous emm... avec ses questions çuilà !). Comment se fait-il que, dans un formulaire, un controle texte (par exemple), dont la valeur (.value) dépend d'autres contrôles du même enregistrement (via une requête) conserve la première valeur, quel que soit l'enregistrement ? Vous allez peut-être me dire de faire un requery. Soit. Mais dans ce cas, comment fait-on un requery, en mode feuille de données, quand on passe à un autre enregistrement ?
Thierry (ze Titi)
Hello moromain !
En ce jour mémorable du mardi 06/11/2007, tu as émis l'idée suivante:
Et je rajoute une autre question (qu'est-ce qu'il nous emm... avec ses questions çuilà !). Comment se fait-il que, dans un formulaire, un controle texte (par exemple), dont la valeur (.value) dépend d'autres contrôles du même enregistrement (via une requête) conserve la première valeur, quel que soit l'enregistrement ? Vous allez peut-être me dire de faire un requery. Soit. Mais dans ce cas, comment fait-on un requery, en mode feuille de données, quand on passe à un autre enregistrement ? Avec l'évènement "Sur activation", comme dans un formulaire en mode
claissque...
-- Cordialement, Thierry
Tout pour réussir avec Access : http://www.mpfa.info
Hello moromain !
En ce jour mémorable du mardi 06/11/2007, tu as émis l'idée suivante:
Et je rajoute une autre question (qu'est-ce qu'il nous emm... avec ses
questions çuilà !).
Comment se fait-il que, dans un formulaire, un controle texte (par
exemple), dont la valeur (.value) dépend d'autres contrôles du même
enregistrement (via une requête) conserve la première valeur, quel que
soit l'enregistrement ?
Vous allez peut-être me dire de faire un requery. Soit. Mais dans ce
cas, comment fait-on un requery, en mode feuille de données, quand on
passe à un autre enregistrement ?
Avec l'évènement "Sur activation", comme dans un formulaire en mode
claissque...
--
Cordialement,
Thierry
Tout pour réussir avec Access :
http://www.mpfa.info
En ce jour mémorable du mardi 06/11/2007, tu as émis l'idée suivante:
Et je rajoute une autre question (qu'est-ce qu'il nous emm... avec ses questions çuilà !). Comment se fait-il que, dans un formulaire, un controle texte (par exemple), dont la valeur (.value) dépend d'autres contrôles du même enregistrement (via une requête) conserve la première valeur, quel que soit l'enregistrement ? Vous allez peut-être me dire de faire un requery. Soit. Mais dans ce cas, comment fait-on un requery, en mode feuille de données, quand on passe à un autre enregistrement ? Avec l'évènement "Sur activation", comme dans un formulaire en mode
claissque...
-- Cordialement, Thierry
Tout pour réussir avec Access : http://www.mpfa.info