IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Exporter vers un état des enregistrements filtrés par menu contextuel


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2013
    Messages : 20
    Points : 11
    Points
    11
    Par défaut Exporter vers un état des enregistrements filtrés par menu contextuel
    Bonjour,

    Je fais appel à vos lumières sur un problème VBA. Pour info je travail sous access 2010.

    Pour vous exposer la base :

    J'ai une table (T1) avec champs "Nom" et "Montant".
    J'ai une requête (R1) de type sélection basée sur T1.
    J'ai un sous-formulaire (SF1) basé sur R1 et en mode feuille de données
    J'ai un état (E1) basé sur R1
    J'ai un formulaire principal (F1) accueillant SF1 et un bouton B1

    Question :

    Comment faire pour exporter les enregistrements filtrés par menu contextuel sur SF1, dans E1 lorsqu'on appuie sur B1 ?

    Pour info, j'ai essayé divers bout de code avec déterminant strfilter = Me.F1.SF1.Form.Filter que j'intègre dans un Docmd.openreport .... mais rien y fait.


    Pourriez-vous m'éclairer sur le sujet car là.... je sèche

    En vous remerciant d'avance pour le temps passé à ma demande.

    Cordialement

  2. #2
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut
    Bonjour,

    Si j'ai bien tout compris...

    Il faut que tu passes la condition dans l'argument WhereCondition de la méthode OpenReport, avec par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenReport "E1",acViewPreview, , "Nom='" & Me!Nom & "'"
    Je te déconseille aussi d'utiliser le mot "Nom" pour un champ ou un contrôle car il s'agit d'un mot réservé.

    A+
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2013
    Messages : 20
    Points : 11
    Points
    11
    Par défaut code OK mais ...
    Bonjour,

    Tout d'abord merci d'avoir pris de me répondre.

    J'ai testé ton code et il marche super ! J'ai juste rajouté le nom du sous-formulaire pour que ça tourne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenReport "E1", acViewPreview, , "Nom='" & Me!SF_R1!Nom & "'"
    Cependant quand j'essaye d'intégrer le deuxième champ (Montant) dans le code, il ne cesse de me remonter le message d'erreur "incompatibilité de type 13"

    J'ai essayé de jouer avec les guillemets ou les apostrophes, rien à faire.... Aurais-tu une idée ?

    voici un des codes que j'ai essayé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenReport "E1", acViewPreview, , "nom='" & Me!SF_R1!nom & "'" And "montant=" & Me.SF_R1!montant & ""
    Au passage, merci pour le conseil du nom de champs, je le change tout de suite après

    Cordialement,

    Galanix2046

  4. #4
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut
    bonsoir,

    Ton champ Montant est bien de type monétaire ?

    Si c'est le cas alors essaie ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenReport "E1", acViewPreview, , "nom='" & Me!SF_R1!nom & "' and montant=" & Me.SF_R1!montant
    a+
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2013
    Messages : 20
    Points : 11
    Points
    11
    Par défaut code suite
    Bonsoir,

    J'ai essayé ça ne marche pas, ça me prends que le premier enregistrement trouvé. De plus, j'ai trop rapidement testé le code précédent que tu m'as fournis. Si je coche plusieurs valeurs dans le filtre du menu contextuel, il me prends en compte qu'une seule valeur

    Je continue mes recherches... mais si tu as une autre solution je suis preneur

    Cordialement

    Galanix2046

  6. #6
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2013
    Messages : 20
    Points : 11
    Points
    11
    Par défaut Enfin trouvé !!!
    Re-bonsoir,

    Ca y est, après une multitude d'essai, j'ai enfin trouvé la bonne syntaxe

    Il faut en fait, récupérer la chaine SQL du filtre que l'on trouve dans la propriété "filtre" du sous-formulaire et la stocker dans une variable. Il suffit ensuite de répercuter cette variable en tant que paramètre de filtrage dans la fonction OpenReport.

    Voici le code abouti :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Commande1_Click()
     
    Dim strfilter As String
     
    strfilter = Me.SF_R1.Form.Filter
     
    DoCmd.OpenReport "E1", acViewPreview, , strfilter
     
    End Sub
    Même si le code ne fait que 3 lignes, il aura donné bien du mal au novice que je suis ! .... Mais il va être d'une grande utilité dans mon travail !

    Encore un Grand Merci à toi pour m'avoir mis sur la piste

    Cordialement

    Galanix2046

  7. #7
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 260
    Points : 19 423
    Points
    19 423
    Billets dans le blog
    63
    Par défaut
    de rien,

    bonnes fêtes..
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2010] Filtre par menu contextuel ou bouton
    Par electrosat03 dans le forum VBA Access
    Réponses: 2
    Dernier message: 13/10/2013, 22h45
  2. Réponses: 11
    Dernier message: 18/02/2009, 16h39
  3. Réponses: 1
    Dernier message: 16/09/2008, 14h35
  4. Restreindre aux enregistrements filtrés par sélection
    Par repijusore dans le forum Access
    Réponses: 5
    Dernier message: 21/01/2007, 19h43
  5. [VB6]Traiter des enregistrements recuperer par une recherche
    Par tamerlan dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 27/03/2006, 11h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo