-----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
.
-----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" <anonymous@discussions.microsoft.com> a écrit dans
le message de
news:8ec701c3e9b5$3f4ab980$a601280a@phx.gbl...
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
.
-----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
.
-----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
.
-----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" <anonymous@discussions.microsoft.com> a écrit dans
le message de
news:8ec701c3e9b5$3f4ab980$a601280a@phx.gbl...
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
.
-----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
.
-----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émenten lecture seule,
il faut utiliser des formules de contournement, par
exemple :- copier le résultat de la requere Regroupement dans une
table temporaire etutiliser cette table temporaire dans la source du
formulaire (Assez lourdcomme solution)
- Utiliser une fonction VBA dans la requete, qui effectue
les calculs de larequete 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 capeut 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 sertqu'a ça et le mettre a jour par VBA avant d'ouvrir le
formulaire (ca neconvient 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 ajour 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'obtenirla meme fonctionnalité, peut-etre meme sans avoir a faire
de regroupement
"Luis" a écrit dans
le message denews: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
.
.
-----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" <anonymous@discussions.microsoft.com> a écrit dans
le message de
news:91d801c3ea27$7cef0850$a501280a@phx.gbl...
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" <anonymous@discussions.microsoft.com> a écrit dans
le message de
news:8ec701c3e9b5$3f4ab980$a601280a@phx.gbl...
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
.
.
-----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émenten lecture seule,
il faut utiliser des formules de contournement, par
exemple :- copier le résultat de la requere Regroupement dans une
table temporaire etutiliser cette table temporaire dans la source du
formulaire (Assez lourdcomme solution)
- Utiliser une fonction VBA dans la requete, qui effectue
les calculs de larequete 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 capeut 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 sertqu'a ça et le mettre a jour par VBA avant d'ouvrir le
formulaire (ca neconvient 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 ajour 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'obtenirla meme fonctionnalité, peut-etre meme sans avoir a faire
de regroupement
"Luis" a écrit dans
le message denews: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
.
.
-----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émenten lecture seule,
il faut utiliser des formules de contournement, par
exemple :- copier le résultat de la requere Regroupement dans une
table temporaire etutiliser cette table temporaire dans la source du
formulaire (Assez lourdcomme solution)
- Utiliser une fonction VBA dans la requete, qui effectue
les calculs de larequete 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 capeut 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 sertqu'a ça et le mettre a jour par VBA avant d'ouvrir le
formulaire (ca neconvient 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 ajour 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'obtenirla meme fonctionnalité, peut-etre meme sans avoir a faire
de regroupement
"Luis" a écrit dans
le message denews: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
.
.
-----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" <anonymous@discussions.microsoft.com> a écrit dans
le message de
news:91d801c3ea27$7cef0850$a501280a@phx.gbl...
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" <anonymous@discussions.microsoft.com> a écrit dans
le message de
news:8ec701c3e9b5$3f4ab980$a601280a@phx.gbl...
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
.
.
-----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émenten lecture seule,
il faut utiliser des formules de contournement, par
exemple :- copier le résultat de la requere Regroupement dans une
table temporaire etutiliser cette table temporaire dans la source du
formulaire (Assez lourdcomme solution)
- Utiliser une fonction VBA dans la requete, qui effectue
les calculs de larequete 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 capeut 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 sertqu'a ça et le mettre a jour par VBA avant d'ouvrir le
formulaire (ca neconvient 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 ajour 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'obtenirla meme fonctionnalité, peut-etre meme sans avoir a faire
de regroupement
"Luis" a écrit dans
le message denews: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
.
.
-----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 danstes tables, tu dois 'a la main' dans
l'evenement 'ApresMAJ' du controleliste déroulante (pas du formulaire) effectuer une
opération du genreDim 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 etreré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
genreWHERE ChampDate = Dmax("ChampDate", "NomDeLaTable")
devrai amplement suffire
Bonne chance !
"Luis" a écrit dans
le message denews: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émenten lecture seule,
il faut utiliser des formules de contournement, par
exemple :- copier le résultat de la requere Regroupement dans une
table temporaire etutiliser cette table temporaire dans la source du
formulaire (Assez lourdcomme solution)
- Utiliser une fonction VBA dans la requete, qui
effectue
les calculs de larequete 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 capeut 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 sertqu'a ça et le mettre a jour par VBA avant d'ouvrir le
formulaire (ca neconvient 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 ajour 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'obtenirla meme fonctionnalité, peut-etre meme sans avoir a
faire
de regroupement
"Luis" a écrit
dans
le message denews: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êteavec opération et au même temps pouvoir modifier le
champsde la liste lors que le formulaire est ouvert.
Comment faire?
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" <anonymous@discussions.microsoft.com> a écrit dans
le message de
news:910701c3ea4d$d8bbe600$a001280a@phx.gbl...
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" <anonymous@discussions.microsoft.com> a écrit dans
le message de
news:91d801c3ea27$7cef0850$a501280a@phx.gbl...
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" <anonymous@discussions.microsoft.com> a écrit
dans
le message de
news:8ec701c3e9b5$3f4ab980$a601280a@phx.gbl...
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
.
.
.
-----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 danstes tables, tu dois 'a la main' dans
l'evenement 'ApresMAJ' du controleliste déroulante (pas du formulaire) effectuer une
opération du genreDim 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 etreré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
genreWHERE ChampDate = Dmax("ChampDate", "NomDeLaTable")
devrai amplement suffire
Bonne chance !
"Luis" a écrit dans
le message denews: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émenten lecture seule,
il faut utiliser des formules de contournement, par
exemple :- copier le résultat de la requere Regroupement dans une
table temporaire etutiliser cette table temporaire dans la source du
formulaire (Assez lourdcomme solution)
- Utiliser une fonction VBA dans la requete, qui
effectue
les calculs de larequete 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 capeut 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 sertqu'a ça et le mettre a jour par VBA avant d'ouvrir le
formulaire (ca neconvient 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 ajour 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'obtenirla meme fonctionnalité, peut-etre meme sans avoir a
faire
de regroupement
"Luis" a écrit
dans
le message denews: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êteavec opération et au même temps pouvoir modifier le
champsde la liste lors que le formulaire est ouvert.
Comment faire?
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 danstes tables, tu dois 'a la main' dans
l'evenement 'ApresMAJ' du controleliste déroulante (pas du formulaire) effectuer une
opération du genreDim 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 etreré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
genreWHERE ChampDate = Dmax("ChampDate", "NomDeLaTable")
devrai amplement suffire
Bonne chance !
"Luis" a écrit dans
le message denews: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émenten lecture seule,
il faut utiliser des formules de contournement, par
exemple :- copier le résultat de la requere Regroupement dans une
table temporaire etutiliser cette table temporaire dans la source du
formulaire (Assez lourdcomme solution)
- Utiliser une fonction VBA dans la requete, qui
effectue
les calculs de larequete 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 capeut 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 sertqu'a ça et le mettre a jour par VBA avant d'ouvrir le
formulaire (ca neconvient 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 ajour 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'obtenirla meme fonctionnalité, peut-etre meme sans avoir a
faire
de regroupement
"Luis" a écrit
dans
le message denews: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êteavec opération et au même temps pouvoir modifier le
champsde la liste lors que le formulaire est ouvert.
Comment faire?
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" <anonymous@discussions.microsoft.com> a écrit dans
le message de
news:910701c3ea4d$d8bbe600$a001280a@phx.gbl...
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" <anonymous@discussions.microsoft.com> a écrit dans
le message de
news:91d801c3ea27$7cef0850$a501280a@phx.gbl...
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" <anonymous@discussions.microsoft.com> a écrit
dans
le message de
news:8ec701c3e9b5$3f4ab980$a601280a@phx.gbl...
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
.
.
.
-----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 danstes tables, tu dois 'a la main' dans
l'evenement 'ApresMAJ' du controleliste déroulante (pas du formulaire) effectuer une
opération du genreDim 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 etreré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
genreWHERE ChampDate = Dmax("ChampDate", "NomDeLaTable")
devrai amplement suffire
Bonne chance !
"Luis" a écrit dans
le message denews: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émenten lecture seule,
il faut utiliser des formules de contournement, par
exemple :- copier le résultat de la requere Regroupement dans une
table temporaire etutiliser cette table temporaire dans la source du
formulaire (Assez lourdcomme solution)
- Utiliser une fonction VBA dans la requete, qui
effectue
les calculs de larequete 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 capeut 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 sertqu'a ça et le mettre a jour par VBA avant d'ouvrir le
formulaire (ca neconvient 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 ajour 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'obtenirla meme fonctionnalité, peut-etre meme sans avoir a
faire
de regroupement
"Luis" a écrit
dans
le message denews: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êteavec opération et au même temps pouvoir modifier le
champsde la liste lors que le formulaire est ouvert.
Comment faire?
Luis
.
.
.