[Access]problème liaison form/requete/etat?

Résolu/Fermé
Signaler
Messages postés
417
Date d'inscription
lundi 26 novembre 2007
Statut
Membre
Dernière intervention
21 janvier 2013
-
Messages postés
417
Date d'inscription
lundi 26 novembre 2007
Statut
Membre
Dernière intervention
21 janvier 2013
-
Bonjour, j'ai un petit problème en access
je dois sélectionner dans un formulaire des informations qui ne sont autres que celle ci

le nom de l'intervenant
un intervalle de date ( début et fin )
une ligne de production
un équipement et un sous équipement

pour optimiser la recherche on m'a poser plusieurs condition comme:

une recherche par ligne de production, par nom de l'intervenant ou alors par équipement

après avoir longtemps réfléchis sur la manière de ne sélectionner qu'un nom ( par exemple) ou tous les noms (voir mes discussion précédentes) j'ai décidé de mettre une condition dans le code de mon bouton "recherche" qui exécute une macro, en effet si je sélectionne "tout les noms" je ferais une recherche par intervenants, je disposerais donc d'une macro qui lancera une requête de sélection uniquement sur l'intervenant et la date, le reste doit s'afficher dans un état

il en va de même pour la ligne de production etc etc

mon problème est le suivant, l'exécution à part de mes macros fonctionne parfaitement seulement avec le formulaire rien ne s'affiche dans l'état!!

est ce parce qu'un formulaire ne peut être lié à plusieurs requête? est ce parce que mon formulaire n'est pas lié à mes requêtes?

je ne sais pas comment faire pour que mon formulaire décide d'envoyer les donnés saisie par l'utilisateur à mes différentes requête

merci de votre attention, merci de votre aide

13 réponses

Messages postés
18275
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 janvier 2022
998
Je pense que le VBA du formulaire doit associer la requête à l'état, ainsi :

Application.Reports.Item("nom de l etat").RecordSource = "texte de la requete"
0
Messages postés
417
Date d'inscription
lundi 26 novembre 2007
Statut
Membre
Dernière intervention
21 janvier 2013
27
d'accord et ce code je le place avant d'appelé la macro correspondante?
désoler de poser cette question mais comme je ne peux pas tester avant demain j'aimerais savoir tout de même

merci à toi yg_be
0
Messages postés
18275
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 janvier 2022
998
avant d'ouvrir l'état.

il est possible d'ouvrir l'état à partir du VBA.

à quoi sert la macro ?
0
Messages postés
417
Date d'inscription
lundi 26 novembre 2007
Statut
Membre
Dernière intervention
21 janvier 2013
27
la macro ouvre la requête qui exécute la la sélection en fonction des paramètres que le formulaire lui passe et ensuite la macro ouvre l'état, c'est pour ça je dois d'abord passer par la requête...
je vais test ton code je te redis quoi
0
Messages postés
417
Date d'inscription
lundi 26 novembre 2007
Statut
Membre
Dernière intervention
21 janvier 2013
27
en fait ma macro me permet d'ouvrir dans un premier temps une requête qui va exécuter une sélection en fonction des paramètres que lui passe mon formulaire, puis ensuite il va ouvrir mon état ou doit s'afficher toutes les informations nécésaire
0
Messages postés
417
Date d'inscription
lundi 26 novembre 2007
Statut
Membre
Dernière intervention
21 janvier 2013
27
la macro sert à ouvrir la requête pour qu'elle puisse exécuté une sélection sur les paramètres envoyé par le formulaire ( paramètres qui ne sont pas envoyés d'ailleurs) et après la sélection, cette même macro ouvre mon état ou doit s'afficher le résultat final
0
Messages postés
417
Date d'inscription
lundi 26 novembre 2007
Statut
Membre
Dernière intervention
21 janvier 2013
27
la macro sert à ouvrir la requête pour qu'elle puisse exécuté une sélection sur les paramètres envoyé par le formulaire ( paramètres qui ne sont pas envoyés d'ailleurs) et après la sélection, cette même macro ouvre mon état ou doit s'afficher le résultat final
0
Messages postés
18275
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 janvier 2022
998
Tu as écris :
"
la macro ouvre la requête qui exécute la la sélection en fonction des paramètres que le formulaire lui passe et ensuite la macro ouvre l'état, c'est pour ça je dois d'abord passer par la requête...
je vais test ton code je te redis quoi
"

Je pense que le VBA doit associer la commande SQL à l'état, puis ouvrir l'état.

Donc :
Application.Reports.Item("nom de l etat").RecordSource = "texte de la requete"
docmd.openreport "nom de l'etat"
0
Messages postés
18275
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 janvier 2022
998
test ccm
0
Messages postés
417
Date d'inscription
lundi 26 novembre 2007
Statut
Membre
Dernière intervention
21 janvier 2013
27
désoler de ne pas avoir répondu avant j'avais des problèmes de connexion au boulot, et je dois avouer que c'est plus amusant de se prendre la tête à résoudre ce problème que de se prendre la tête sur du access

je n'ai pas encore tester ton code je l'avoue je vais le faire juste après ce post, mais il y a quelque chose que je ne comprend pas.
la bdd que je modifie existait déjà auparavant mais on m'a demandé de l'améliorer, comme tu le sais on s'est pris la tête avec une histoire de sélection dans le formulaire et je pense avoir résolut le problème (voir code)
mais le type qui a créer cette bdd avant moi à une multitude de petit formulaire de recherche qui fonctionne très bien, tout ce que j'ai fait c'est de les compacter pour qu'il ne reste qu'un seul formulaire
Alors pourquoi ces requêtes à lui fonctionne avec le formulaire et pas les miennes?
impossible de voir ce type pour qu'il puisse m'aider...
tu es mon seul collègue de boulot ici yg_be^^
je test ton code je te redis quoi

voici le code pour éviter une sélection total et/ou partiel en même temps, il suffit d'utiliser plusieurs requête qui ont chacune des filtres différents

Private Sub rechercher_Click()
On Error GoTo Err_rechercher_Click

Dim stDocName As String
If (intervenant.Value = "<Tous>") Then
If (ligne.Value = "<Toutes>") Then
If (equipement.Value = "<Tout>") Then
flag = MsgBox("Veuillez ne sélectionner que deux critères de recherche au maximum")
stDocName = "M_ouvrir_recherche_total"
Else
stDocName = "M_recherche_equipement"
End If
Else
If (equipement.Value = "Tout") Then
stDocName = "M_recherche_ligne"
Else
stDocName = "M_recherche_ligne_equipement"
End If
End If
Else
If (ligne.Value = "Toutes") Then
If (equipement.Value = "Tout") Then
stDocName = "M_recherche_intervenant"
Else
stDocName = "M_recherche_intervenant_equipement"
End If
Else
stDocName = "M_Recherche_total"
End If
End If

DoCmd.RunMacro stDocName

Exit_rechercher_Click:
Exit Sub

Err_rechercher_Click:
MsgBox Err.Description
Resume Exit_rechercher_Click

End Sub

c'est mon bouton rechercher qui gère les différentes possibilité de recherche
0
Messages postés
18275
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 janvier 2022
998
Peux-tu m'expliquer ce que font les macros ?
0
Messages postés
18275
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
18 janvier 2022
998
Je pense que le plus simple est, dans le VBA, associer la commande SQL à l'état, puis ouvrir l'état.

Donc :
Application.Reports.Item("nom de l etat").RecordSource = "texte de la requete"
DoCmd.OpenReport "lenomdetonetat", acViewPreview

Je suis curieux de voir comment font les macros pour ouvrir l'état correctement.
0
Messages postés
417
Date d'inscription
lundi 26 novembre 2007
Statut
Membre
Dernière intervention
21 janvier 2013
27
le problème est résolut j'avais une erreur de syntaxe merci de ton aide yg_be je post aussi a solution que j'ai trouvé pour la sélection de toute une table dans mon premier topic http://www.commentcamarche.net/forum/affich 12598446 access qui est ce qui s y connait?page=2#33
0