OVH Cloud OVH Cloud

Requête sans opération

7 réponses
Avatar
Luis
Bonjour,
J'ai un formulaire que jouvre en s=E9lectionnant par=20
MaxdeDate pour =E9viter d'avoir =E0 chercher parmis 10'000=20
enregistrements.
Mon probl=E8me est que sur ce m=EAme formulaire j'ai un champ=20
liste d=E9roulante avec le contenu d'une requ=EAte, dans ce=20
champ on modifie selon cette liste (nom d'une personne).
D'autre part je le redis, on ouvre ce formulaire avec une=20
s=E9lection MaxdeDate, mais je ne peux pas avoir une requ=EAte=20
avec op=E9ration et au m=EAme temps pouvoir modifier le champs=20
de la liste lors que le formulaire est ouvert.
Comment faire?
Luis

7 réponses

Avatar
gazelle
En effet une requete opération (appelée requete Regroupement) est forcément
en lecture seule,
il faut utiliser des formules de contournement, par exemple :
- copier le résultat de la requere Regroupement dans une table temporaire et
utiliser cette table temporaire dans la source du formulaire (Assez lourd
comme solution)
- Utiliser une fonction VBA dans la requete, qui effectue les calculs de la
requete regroupement (un peu plus complexe a programmer mais tres puissant ,
un peu plu lent aussi)
- Utiliser la fonction Dmax (Tres simple a mettre en oeuvre, Attention ca
peut etre beaucoup plus lent, a tester en fonction de ton cas particulier)
- Stocker ton calcul de regroupement dans un champ de la table qui ne sert
qu'a ça et le mettre a jour par VBA avant d'ouvrir le formulaire (ca ne
convient pas dans tous les cas de figure, a voir en fonction de ton besoin)
- mettre le champ liste déroulantre en champ indépendant, quitte a mettre a
jour dans l'evenement 'Apres MAJ' le champ qui aurait du etre lié,
directement dans la table par VBA ou SQL

ce n'est pas exaustif, il existe toujours des dizaines de moyens d'obtenir
la meme fonctionnalité, peut-etre meme sans avoir a faire de regroupement

"Luis" a écrit dans le message de
news:8ec701c3e9b5$3f4ab980$
Bonjour,
J'ai un formulaire que jouvre en sélectionnant par
MaxdeDate pour éviter d'avoir à chercher parmis 10'000
enregistrements.
Mon problème est que sur ce même formulaire j'ai un champ
liste déroulante avec le contenu d'une requête, dans ce
champ on modifie selon cette liste (nom d'une personne).
D'autre part je le redis, on ouvre ce formulaire avec une
sélection MaxdeDate, mais je ne peux pas avoir une requête
avec opération et au même temps pouvoir modifier le champs
de la liste lors que le formulaire est ouvert.
Comment faire?
Luis
Avatar
Luis
Bonjour,
Si j'ai bien compris la dernière solution semble la plus
intérréssante, c'est-à-dire mettre le champ liste
déroulante en champ indépendant.
Donc il faut commencer, si j'ai bien compris, par
remplacer la liste déroulante par Zone texte.
Mais la ou ça coince que faut-il écrire dans "Après Maj"
du formulaire pour que cette zone texte devienne Liste
déroulante.
C'est là ou j'ai un problème.
Merci si tu pouvais aller plus loin dans l'explication.
Luis
-----Message d'origine-----
En effet une requete opération (appelée requete
Regroupement) est forcément

en lecture seule,
il faut utiliser des formules de contournement, par
exemple :

- copier le résultat de la requere Regroupement dans une
table temporaire et

utiliser cette table temporaire dans la source du
formulaire (Assez lourd

comme solution)
- Utiliser une fonction VBA dans la requete, qui effectue
les calculs de la

requete regroupement (un peu plus complexe a programmer
mais tres puissant ,

un peu plu lent aussi)
- Utiliser la fonction Dmax (Tres simple a mettre en
oeuvre, Attention ca

peut etre beaucoup plus lent, a tester en fonction de ton
cas particulier)

- Stocker ton calcul de regroupement dans un champ de la
table qui ne sert

qu'a ça et le mettre a jour par VBA avant d'ouvrir le
formulaire (ca ne

convient pas dans tous les cas de figure, a voir en
fonction de ton besoin)

- mettre le champ liste déroulantre en champ indépendant,
quitte a mettre a

jour dans l'evenement 'Apres MAJ' le champ qui aurait du
etre lié,

directement dans la table par VBA ou SQL

ce n'est pas exaustif, il existe toujours des dizaines de
moyens d'obtenir

la meme fonctionnalité, peut-etre meme sans avoir a faire
de regroupement


"Luis" a écrit dans
le message de

news:8ec701c3e9b5$3f4ab980$
Bonjour,
J'ai un formulaire que jouvre en sélectionnant par
MaxdeDate pour éviter d'avoir à chercher parmis 10'000
enregistrements.
Mon problème est que sur ce même formulaire j'ai un champ
liste déroulante avec le contenu d'une requête, dans ce
champ on modifie selon cette liste (nom d'une personne).
D'autre part je le redis, on ouvre ce formulaire avec une
sélection MaxdeDate, mais je ne peux pas avoir une requête
avec opération et au même temps pouvoir modifier le champs
de la liste lors que le formulaire est ouvert.
Comment faire?
Luis


.



Avatar
gazelle
non, pas remplacer zone déroulante par zone texte,
Laisser la zone déroulante mais ne la lier a rien : laisser la propriété
ControleSource (= Source contrôle) vide
quand tu choisis un nom dans ta liste déroulante, ca ne met rien à jour dans
tes tables, tu dois 'a la main' dans l'evenement 'ApresMAJ' du controle
liste déroulante (pas du formulaire) effectuer une opération du genre
Dim RS as Recordset
Set RS = CurrentDb.OpenRecordset("Select * From MaTable Where MonCritere MaValeurDeCrietere")
RS.Edit
RS!ChampAmettreAjour = Me!NomDuChampListe
RS.Update

Mais il semble que tout cela est inutile et que ton probleme peut etre
résolu plus simplement :
Une opération MaxdeDate est-il vraiment nécessiare pour éviter d'avoir à
chercher parmis 10'000
enregistrements ?
Un critere simple ne pourrait suffire ?
S'il s'agit de filtrer sur la date du jour, un critere du genre
WHERE ChampDate = Dmax("ChampDate", "NomDeLaTable")
devrai amplement suffire

Bonne chance !

"Luis" a écrit dans le message de
news:91d801c3ea27$7cef0850$
Bonjour,
Si j'ai bien compris la dernière solution semble la plus
intérréssante, c'est-à-dire mettre le champ liste
déroulante en champ indépendant.
Donc il faut commencer, si j'ai bien compris, par
remplacer la liste déroulante par Zone texte.
Mais la ou ça coince que faut-il écrire dans "Après Maj"
du formulaire pour que cette zone texte devienne Liste
déroulante.
C'est là ou j'ai un problème.
Merci si tu pouvais aller plus loin dans l'explication.
Luis
-----Message d'origine-----
En effet une requete opération (appelée requete
Regroupement) est forcément

en lecture seule,
il faut utiliser des formules de contournement, par
exemple :

- copier le résultat de la requere Regroupement dans une
table temporaire et

utiliser cette table temporaire dans la source du
formulaire (Assez lourd

comme solution)
- Utiliser une fonction VBA dans la requete, qui effectue
les calculs de la

requete regroupement (un peu plus complexe a programmer
mais tres puissant ,

un peu plu lent aussi)
- Utiliser la fonction Dmax (Tres simple a mettre en
oeuvre, Attention ca

peut etre beaucoup plus lent, a tester en fonction de ton
cas particulier)

- Stocker ton calcul de regroupement dans un champ de la
table qui ne sert

qu'a ça et le mettre a jour par VBA avant d'ouvrir le
formulaire (ca ne

convient pas dans tous les cas de figure, a voir en
fonction de ton besoin)

- mettre le champ liste déroulantre en champ indépendant,
quitte a mettre a

jour dans l'evenement 'Apres MAJ' le champ qui aurait du
etre lié,

directement dans la table par VBA ou SQL

ce n'est pas exaustif, il existe toujours des dizaines de
moyens d'obtenir

la meme fonctionnalité, peut-etre meme sans avoir a faire
de regroupement


"Luis" a écrit dans
le message de

news:8ec701c3e9b5$3f4ab980$
Bonjour,
J'ai un formulaire que jouvre en sélectionnant par
MaxdeDate pour éviter d'avoir à chercher parmis 10'000
enregistrements.
Mon problème est que sur ce même formulaire j'ai un champ
liste déroulante avec le contenu d'une requête, dans ce
champ on modifie selon cette liste (nom d'une personne).
D'autre part je le redis, on ouvre ce formulaire avec une
sélection MaxdeDate, mais je ne peux pas avoir une requête
avec opération et au même temps pouvoir modifier le champs
de la liste lors que le formulaire est ouvert.
Comment faire?
Luis


.



Avatar
Luis
Bonjour,
Je te remercie.
Je pense que la première solution est plus facile à mettre
sur pied.
Alors j'ai essayé:
'ApresMAJ' du controle
liste déroulante (pas du formulaire) effectuer une
opération du genre
Dim RS as Recordset
Set RS = CurrentDb.OpenRecordset("Select * From MaTable
Where MonCritere =
MaValeurDeCrietere")
RS.Edit
RS!ChampAmettreAjour = Me!NomDuChampListe
RS.Update

Comme tu m'as donné (bien sur en remplaçant les noms),
mais j'ai une erreur d'exécution "3061" Trop peu de
paramètre. 1 attendu.
De quoi ça vient?
Luis
-----Message d'origine-----
non, pas remplacer zone déroulante par zone texte,
Laisser la zone déroulante mais ne la lier a rien :
laisser la propriété

ControleSource (= Source contrôle) vide
quand tu choisis un nom dans ta liste déroulante, ca ne
met rien à jour dans

tes tables, tu dois 'a la main' dans
l'evenement 'ApresMAJ' du controle

liste déroulante (pas du formulaire) effectuer une
opération du genre

Dim RS as Recordset
Set RS = CurrentDb.OpenRecordset("Select * From MaTable
Where MonCritere =

MaValeurDeCrietere")
RS.Edit
RS!ChampAmettreAjour = Me!NomDuChampListe
RS.Update

Mais il semble que tout cela est inutile et que ton
probleme peut etre

résolu plus simplement :
Une opération MaxdeDate est-il vraiment nécessiare pour
éviter d'avoir à

chercher parmis 10'000
enregistrements ?
Un critere simple ne pourrait suffire ?
S'il s'agit de filtrer sur la date du jour, un critere du
genre

WHERE ChampDate = Dmax("ChampDate", "NomDeLaTable")
devrai amplement suffire

Bonne chance !

"Luis" a écrit dans
le message de

news:91d801c3ea27$7cef0850$
Bonjour,
Si j'ai bien compris la dernière solution semble la plus
intérréssante, c'est-à-dire mettre le champ liste
déroulante en champ indépendant.
Donc il faut commencer, si j'ai bien compris, par
remplacer la liste déroulante par Zone texte.
Mais la ou ça coince que faut-il écrire dans "Après Maj"
du formulaire pour que cette zone texte devienne Liste
déroulante.
C'est là ou j'ai un problème.
Merci si tu pouvais aller plus loin dans l'explication.
Luis
-----Message d'origine-----
En effet une requete opération (appelée requete
Regroupement) est forcément

en lecture seule,
il faut utiliser des formules de contournement, par
exemple :

- copier le résultat de la requere Regroupement dans une
table temporaire et

utiliser cette table temporaire dans la source du
formulaire (Assez lourd

comme solution)
- Utiliser une fonction VBA dans la requete, qui effectue
les calculs de la

requete regroupement (un peu plus complexe a programmer
mais tres puissant ,

un peu plu lent aussi)
- Utiliser la fonction Dmax (Tres simple a mettre en
oeuvre, Attention ca

peut etre beaucoup plus lent, a tester en fonction de ton
cas particulier)

- Stocker ton calcul de regroupement dans un champ de la
table qui ne sert

qu'a ça et le mettre a jour par VBA avant d'ouvrir le
formulaire (ca ne

convient pas dans tous les cas de figure, a voir en
fonction de ton besoin)

- mettre le champ liste déroulantre en champ indépendant,
quitte a mettre a

jour dans l'evenement 'Apres MAJ' le champ qui aurait du
etre lié,

directement dans la table par VBA ou SQL

ce n'est pas exaustif, il existe toujours des dizaines de
moyens d'obtenir

la meme fonctionnalité, peut-etre meme sans avoir a faire
de regroupement


"Luis" a écrit dans
le message de

news:8ec701c3e9b5$3f4ab980$
Bonjour,
J'ai un formulaire que jouvre en sélectionnant par
MaxdeDate pour éviter d'avoir à chercher parmis 10'000
enregistrements.
Mon problème est que sur ce même formulaire j'ai un champ
liste déroulante avec le contenu d'une requête, dans ce
champ on modifie selon cette liste (nom d'une personne).
D'autre part je le redis, on ouvre ce formulaire avec une
sélection MaxdeDate, mais je ne peux pas avoir une
requête


avec opération et au même temps pouvoir modifier le
champs


de la liste lors que le formulaire est ouvert.
Comment faire?
Luis


.




.




Avatar
gazelle
Les noms de tables et de champs doivent etre entre cochets si ils
contiennent des caracteres étendus ou des espaces

"Luis" a écrit dans le message de
news:910701c3ea4d$d8bbe600$
Bonjour,
Je te remercie.
Je pense que la première solution est plus facile à mettre
sur pied.
Alors j'ai essayé:
'ApresMAJ' du controle
liste déroulante (pas du formulaire) effectuer une
opération du genre
Dim RS as Recordset
Set RS = CurrentDb.OpenRecordset("Select * From MaTable
Where MonCritere MaValeurDeCrietere")
RS.Edit
RS!ChampAmettreAjour = Me!NomDuChampListe
RS.Update

Comme tu m'as donné (bien sur en remplaçant les noms),
mais j'ai une erreur d'exécution "3061" Trop peu de
paramètre. 1 attendu.
De quoi ça vient?
Luis
-----Message d'origine-----
non, pas remplacer zone déroulante par zone texte,
Laisser la zone déroulante mais ne la lier a rien :
laisser la propriété

ControleSource (= Source contrôle) vide
quand tu choisis un nom dans ta liste déroulante, ca ne
met rien à jour dans

tes tables, tu dois 'a la main' dans
l'evenement 'ApresMAJ' du controle

liste déroulante (pas du formulaire) effectuer une
opération du genre

Dim RS as Recordset
Set RS = CurrentDb.OpenRecordset("Select * From MaTable
Where MonCritere >MaValeurDeCrietere")

RS.Edit
RS!ChampAmettreAjour = Me!NomDuChampListe
RS.Update

Mais il semble que tout cela est inutile et que ton
probleme peut etre

résolu plus simplement :
Une opération MaxdeDate est-il vraiment nécessiare pour
éviter d'avoir à

chercher parmis 10'000
enregistrements ?
Un critere simple ne pourrait suffire ?
S'il s'agit de filtrer sur la date du jour, un critere du
genre

WHERE ChampDate = Dmax("ChampDate", "NomDeLaTable")
devrai amplement suffire

Bonne chance !

"Luis" a écrit dans
le message de

news:91d801c3ea27$7cef0850$
Bonjour,
Si j'ai bien compris la dernière solution semble la plus
intérréssante, c'est-à-dire mettre le champ liste
déroulante en champ indépendant.
Donc il faut commencer, si j'ai bien compris, par
remplacer la liste déroulante par Zone texte.
Mais la ou ça coince que faut-il écrire dans "Après Maj"
du formulaire pour que cette zone texte devienne Liste
déroulante.
C'est là ou j'ai un problème.
Merci si tu pouvais aller plus loin dans l'explication.
Luis
-----Message d'origine-----
En effet une requete opération (appelée requete
Regroupement) est forcément

en lecture seule,
il faut utiliser des formules de contournement, par
exemple :

- copier le résultat de la requere Regroupement dans une
table temporaire et

utiliser cette table temporaire dans la source du
formulaire (Assez lourd

comme solution)
- Utiliser une fonction VBA dans la requete, qui effectue
les calculs de la

requete regroupement (un peu plus complexe a programmer
mais tres puissant ,

un peu plu lent aussi)
- Utiliser la fonction Dmax (Tres simple a mettre en
oeuvre, Attention ca

peut etre beaucoup plus lent, a tester en fonction de ton
cas particulier)

- Stocker ton calcul de regroupement dans un champ de la
table qui ne sert

qu'a ça et le mettre a jour par VBA avant d'ouvrir le
formulaire (ca ne

convient pas dans tous les cas de figure, a voir en
fonction de ton besoin)

- mettre le champ liste déroulantre en champ indépendant,
quitte a mettre a

jour dans l'evenement 'Apres MAJ' le champ qui aurait du
etre lié,

directement dans la table par VBA ou SQL

ce n'est pas exaustif, il existe toujours des dizaines de
moyens d'obtenir

la meme fonctionnalité, peut-etre meme sans avoir a faire
de regroupement


"Luis" a écrit dans
le message de

news:8ec701c3e9b5$3f4ab980$
Bonjour,
J'ai un formulaire que jouvre en sélectionnant par
MaxdeDate pour éviter d'avoir à chercher parmis 10'000
enregistrements.
Mon problème est que sur ce même formulaire j'ai un champ
liste déroulante avec le contenu d'une requête, dans ce
champ on modifie selon cette liste (nom d'une personne).
D'autre part je le redis, on ouvre ce formulaire avec une
sélection MaxdeDate, mais je ne peux pas avoir une
requête


avec opération et au même temps pouvoir modifier le
champs


de la liste lors que le formulaire est ouvert.
Comment faire?
Luis


.




.




Avatar
Luis
Bonjour,
Comme visiblement je ne m'en sort pas voilà ce que j'ai
fait et tu me diras où est-ce que ça coince:

Dim RS As Recordset
Set RS = CurrentDb.OpenRecordset("Select * From
[Visiteurs] Where Intervenant = [INTERVENANTRequête]")
RS.Edit
RS!INTERVENANT = Me!INTERVENANT
RS.Update

"Visiteurs" est le nom de la table
"Intervenant" est le champ à modifier de la table de la
table
[INTERVENANTRequête] est le nom de la requête liée au
champ liste
"INTERVENANT" sont une fois le nom du champs à mettre à
jour et le nom du champ liste.

Aide-moi car je nage, et très mal.
Merci.
Luis


-----Message d'origine-----
Les noms de tables et de champs doivent etre entre
cochets si ils

contiennent des caracteres étendus ou des espaces

"Luis" a écrit dans
le message de

news:910701c3ea4d$d8bbe600$
Bonjour,
Je te remercie.
Je pense que la première solution est plus facile à mettre
sur pied.
Alors j'ai essayé:
'ApresMAJ' du controle
liste déroulante (pas du formulaire) effectuer une
opération du genre
Dim RS as Recordset
Set RS = CurrentDb.OpenRecordset("Select * From MaTable
Where MonCritere =
MaValeurDeCrietere")
RS.Edit
RS!ChampAmettreAjour = Me!NomDuChampListe
RS.Update

Comme tu m'as donné (bien sur en remplaçant les noms),
mais j'ai une erreur d'exécution "3061" Trop peu de
paramètre. 1 attendu.
De quoi ça vient?
Luis
-----Message d'origine-----
non, pas remplacer zone déroulante par zone texte,
Laisser la zone déroulante mais ne la lier a rien :
laisser la propriété

ControleSource (= Source contrôle) vide
quand tu choisis un nom dans ta liste déroulante, ca ne
met rien à jour dans

tes tables, tu dois 'a la main' dans
l'evenement 'ApresMAJ' du controle

liste déroulante (pas du formulaire) effectuer une
opération du genre

Dim RS as Recordset
Set RS = CurrentDb.OpenRecordset("Select * From MaTable
Where MonCritere =

MaValeurDeCrietere")
RS.Edit
RS!ChampAmettreAjour = Me!NomDuChampListe
RS.Update

Mais il semble que tout cela est inutile et que ton
probleme peut etre

résolu plus simplement :
Une opération MaxdeDate est-il vraiment nécessiare pour
éviter d'avoir à

chercher parmis 10'000
enregistrements ?
Un critere simple ne pourrait suffire ?
S'il s'agit de filtrer sur la date du jour, un critere du
genre

WHERE ChampDate = Dmax("ChampDate", "NomDeLaTable")
devrai amplement suffire

Bonne chance !

"Luis" a écrit dans
le message de

news:91d801c3ea27$7cef0850$
Bonjour,
Si j'ai bien compris la dernière solution semble la plus
intérréssante, c'est-à-dire mettre le champ liste
déroulante en champ indépendant.
Donc il faut commencer, si j'ai bien compris, par
remplacer la liste déroulante par Zone texte.
Mais la ou ça coince que faut-il écrire dans "Après Maj"
du formulaire pour que cette zone texte devienne Liste
déroulante.
C'est là ou j'ai un problème.
Merci si tu pouvais aller plus loin dans l'explication.
Luis
-----Message d'origine-----
En effet une requete opération (appelée requete
Regroupement) est forcément

en lecture seule,
il faut utiliser des formules de contournement, par
exemple :

- copier le résultat de la requere Regroupement dans une
table temporaire et

utiliser cette table temporaire dans la source du
formulaire (Assez lourd

comme solution)
- Utiliser une fonction VBA dans la requete, qui
effectue



les calculs de la
requete regroupement (un peu plus complexe a programmer
mais tres puissant ,

un peu plu lent aussi)
- Utiliser la fonction Dmax (Tres simple a mettre en
oeuvre, Attention ca

peut etre beaucoup plus lent, a tester en fonction de
ton



cas particulier)
- Stocker ton calcul de regroupement dans un champ de la
table qui ne sert

qu'a ça et le mettre a jour par VBA avant d'ouvrir le
formulaire (ca ne

convient pas dans tous les cas de figure, a voir en
fonction de ton besoin)

- mettre le champ liste déroulantre en champ
indépendant,



quitte a mettre a
jour dans l'evenement 'Apres MAJ' le champ qui aurait du
etre lié,

directement dans la table par VBA ou SQL

ce n'est pas exaustif, il existe toujours des dizaines
de



moyens d'obtenir
la meme fonctionnalité, peut-etre meme sans avoir a
faire



de regroupement

"Luis" a écrit
dans



le message de
news:8ec701c3e9b5$3f4ab980$
Bonjour,
J'ai un formulaire que jouvre en sélectionnant par
MaxdeDate pour éviter d'avoir à chercher parmis 10'000
enregistrements.
Mon problème est que sur ce même formulaire j'ai un
champ



liste déroulante avec le contenu d'une requête, dans ce
champ on modifie selon cette liste (nom d'une personne).
D'autre part je le redis, on ouvre ce formulaire avec
une



sélection MaxdeDate, mais je ne peux pas avoir une
requête


avec opération et au même temps pouvoir modifier le
champs


de la liste lors que le formulaire est ouvert.
Comment faire?
Luis


.




.




.





Avatar
gazelle
Le probleme semble la :
Where Intervenant = [INTERVENANTRequête]")
Il manque quelque chose dans ton SQL mais comme je n'ai pas compris ce que
tu veux faire je ne peut pas répondre précisément.

il ne faut pas indiquer un nom de requete pour filtrer , mais une valeur
- un nom de Champ présent dans la requete-> [Table].[Champ]
- un littéral ->'ABC'
- une référence à un formulauire ouvert -> [Formulaire]![NomDuControle]
- ou un appel de fonction -> MaFonction()

"Luis" a écrit dans le message de
news:98ba01c3ea6e$792d7430$
Bonjour,
Comme visiblement je ne m'en sort pas voilà ce que j'ai
fait et tu me diras où est-ce que ça coince:

Dim RS As Recordset
Set RS = CurrentDb.OpenRecordset("Select * From
[Visiteurs] Where Intervenant = [INTERVENANTRequête]")
RS.Edit
RS!INTERVENANT = Me!INTERVENANT
RS.Update

"Visiteurs" est le nom de la table
"Intervenant" est le champ à modifier de la table de la
table
[INTERVENANTRequête] est le nom de la requête liée au
champ liste
"INTERVENANT" sont une fois le nom du champs à mettre à
jour et le nom du champ liste.

Aide-moi car je nage, et très mal.
Merci.
Luis


-----Message d'origine-----
Les noms de tables et de champs doivent etre entre
cochets si ils

contiennent des caracteres étendus ou des espaces

"Luis" a écrit dans
le message de

news:910701c3ea4d$d8bbe600$
Bonjour,
Je te remercie.
Je pense que la première solution est plus facile à mettre
sur pied.
Alors j'ai essayé:
'ApresMAJ' du controle
liste déroulante (pas du formulaire) effectuer une
opération du genre
Dim RS as Recordset
Set RS = CurrentDb.OpenRecordset("Select * From MaTable
Where MonCritere >MaValeurDeCrietere")
RS.Edit
RS!ChampAmettreAjour = Me!NomDuChampListe
RS.Update

Comme tu m'as donné (bien sur en remplaçant les noms),
mais j'ai une erreur d'exécution "3061" Trop peu de
paramètre. 1 attendu.
De quoi ça vient?
Luis
-----Message d'origine-----
non, pas remplacer zone déroulante par zone texte,
Laisser la zone déroulante mais ne la lier a rien :
laisser la propriété

ControleSource (= Source contrôle) vide
quand tu choisis un nom dans ta liste déroulante, ca ne
met rien à jour dans

tes tables, tu dois 'a la main' dans
l'evenement 'ApresMAJ' du controle

liste déroulante (pas du formulaire) effectuer une
opération du genre

Dim RS as Recordset
Set RS = CurrentDb.OpenRecordset("Select * From MaTable
Where MonCritere >>MaValeurDeCrietere")

RS.Edit
RS!ChampAmettreAjour = Me!NomDuChampListe
RS.Update

Mais il semble que tout cela est inutile et que ton
probleme peut etre

résolu plus simplement :
Une opération MaxdeDate est-il vraiment nécessiare pour
éviter d'avoir à

chercher parmis 10'000
enregistrements ?
Un critere simple ne pourrait suffire ?
S'il s'agit de filtrer sur la date du jour, un critere du
genre

WHERE ChampDate = Dmax("ChampDate", "NomDeLaTable")
devrai amplement suffire

Bonne chance !

"Luis" a écrit dans
le message de

news:91d801c3ea27$7cef0850$
Bonjour,
Si j'ai bien compris la dernière solution semble la plus
intérréssante, c'est-à-dire mettre le champ liste
déroulante en champ indépendant.
Donc il faut commencer, si j'ai bien compris, par
remplacer la liste déroulante par Zone texte.
Mais la ou ça coince que faut-il écrire dans "Après Maj"
du formulaire pour que cette zone texte devienne Liste
déroulante.
C'est là ou j'ai un problème.
Merci si tu pouvais aller plus loin dans l'explication.
Luis
-----Message d'origine-----
En effet une requete opération (appelée requete
Regroupement) est forcément

en lecture seule,
il faut utiliser des formules de contournement, par
exemple :

- copier le résultat de la requere Regroupement dans une
table temporaire et

utiliser cette table temporaire dans la source du
formulaire (Assez lourd

comme solution)
- Utiliser une fonction VBA dans la requete, qui
effectue



les calculs de la
requete regroupement (un peu plus complexe a programmer
mais tres puissant ,

un peu plu lent aussi)
- Utiliser la fonction Dmax (Tres simple a mettre en
oeuvre, Attention ca

peut etre beaucoup plus lent, a tester en fonction de
ton



cas particulier)
- Stocker ton calcul de regroupement dans un champ de la
table qui ne sert

qu'a ça et le mettre a jour par VBA avant d'ouvrir le
formulaire (ca ne

convient pas dans tous les cas de figure, a voir en
fonction de ton besoin)

- mettre le champ liste déroulantre en champ
indépendant,



quitte a mettre a
jour dans l'evenement 'Apres MAJ' le champ qui aurait du
etre lié,

directement dans la table par VBA ou SQL

ce n'est pas exaustif, il existe toujours des dizaines
de



moyens d'obtenir
la meme fonctionnalité, peut-etre meme sans avoir a
faire



de regroupement

"Luis" a écrit
dans



le message de
news:8ec701c3e9b5$3f4ab980$
Bonjour,
J'ai un formulaire que jouvre en sélectionnant par
MaxdeDate pour éviter d'avoir à chercher parmis 10'000
enregistrements.
Mon problème est que sur ce même formulaire j'ai un
champ



liste déroulante avec le contenu d'une requête, dans ce
champ on modifie selon cette liste (nom d'une personne).
D'autre part je le redis, on ouvre ce formulaire avec
une



sélection MaxdeDate, mais je ne peux pas avoir une
requête


avec opération et au même temps pouvoir modifier le
champs


de la liste lors que le formulaire est ouvert.
Comment faire?
Luis


.




.




.