Saisie de données à partir d'une requête sélection

Le
moromain
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 !
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Thierry (ze Titi)
Le #6332521
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:

leChamp=DLookup("C5","T2","C6=" & [leChampContenantT1.C3])

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
Le #6331821
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)
Le #6331791
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:

=DLookup("[Unite]"; "T_Parametres_ListeParAlterationEtParMatrice";"[Parametre]=" & Forms![F_MG_1_321_sf]!NomParametre_PVB)

D'autre part, si tes critères sont de type alphanumérique, il faut les entourer par des apostrophes:

=DLookup("[Unite]"; "T_Parametres_ListeParAlterationEtParMatrice";"[Parametre]='" & Forms![F_MG_1_321_sf]!NomParametre_PVB & "'")


Message du lundi 05/11/2007

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
Le #6331731
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)
Le #6331141
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

moromain
Le #6330961
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
Le #6330951
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)
Le #6330451
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

Publicité
Poster une réponse
Anonyme