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

IHM Discussion :

Ouverture d'un formulaire sur un enregistrement précis [AC-2003]


Sujet :

IHM

  1. #1
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Août 2008
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2008
    Messages : 152
    Points : 110
    Points
    110
    Par défaut Ouverture d'un formulaire sur un enregistrement précis
    Bonjour

    J'ai écrit quelques fonctions de recherche avec un poil de SQL, le resultat des recherches s'affiche sur un état avec le N° ID des l'enregistrements trouvés et les données bien sur de ces enregistrements.
    L'opérateur peut alors si il le veux aprés avoir saisie le N° de l'ID qui veut consulter et fermer l'etat ouvrir le formulaire de la fiche concernée en cliquant sur un bouton qui avant la recherche était Desactivé il peut alors visualisés les donnée que contient l'enregistrement qu'il a selectionné (N° ID). Je tourne un peu en rond et il n'y a rien dans la FAQ sur ce sujet, comment faire pour ouvrir ce satané formulaire avec le N° d'enregistrement défini . Un ptit coup de main siou plait !

    Merci d'avance

    Jean Pierre

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 028
    Points : 24 579
    Points
    24 579
    Par défaut
    Bonjour,

    Je suis très étonné que tu n'ais rien trouvé sur ce sujet éculé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    docmd.openform "monform",,,"id=" & me.zonetexteID
    ou zonetexteid est le controle zone de texte que l'utilisateur a saisi.

    Cordialement,

  3. #3
    Membre habitué
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Novembre 2009
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2009
    Messages : 97
    Points : 131
    Points
    131
    Par défaut
    Bonsoir Jean-Pierre,

    Si le VBA te donne des frissons, il existe la possibilité d'ouvrir ton Form par le biais d'une petite macro "OuvrirFomulaire" agrémentée d'une clause SQL WHERE du genre:
    Si je ne m'abuse
    Puis tu peux fermer ton état si tu le souhaite en ajoutant une seconde ligne "Fermer".

    Amicalement.
    Cédric

  4. #4
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Août 2008
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2008
    Messages : 152
    Points : 110
    Points
    110
    Par défaut
    Je suis désole loufab ta proposition ne fonctionne pas et claque une erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    Private Sub BtAccesFiche_Click()            ' clic sur le bouton acces fiche selectionnée
    On Error GoTo Err_BtAccesFiche_Click
        Dim stDocName As String
        Dim Convert As String
        Convert = CStr(ConsultFiche)
        stDocName = "FConsultStockRecherches"
        DoCmd.OpenForm stDocName, , , "id=" & Me.Convert
        Flag = False                                        ' bouton devient inactivé
        TestFlag                                            ' gestion activation desactivation du bouton acces fiches
    Exit_BtAccesFiche_Click:
        Exit Sub
     
    Err_BtAccesFiche_Click:
        MsgBox Err.Description
        Resume Exit_BtAccesFiche_Click
     
    End Sub
    La variable ConsultFiche est une variable long public déclaré dans un module ou sont regroupées les fonction et sub utilisées par plusieurs formulaires, elle contient le N° ID saisie par l'opérateur.
    Donc quand l'utilisateur visualise sur l'état la liste des enregistrements qui répondent aux critères de la recherche qu'il a demandé.
    Il a dans une colonne l'ID des l'enregistrements. Si il veut consulter cette fiche il saisie le N° ID de l'enregistrement qu'il veut consulter ou modifier. Après fermeture de l'état il clic sur un bouton [ACCÈS FICHE] dont la procédure est au dessus en code.
    Avec le debogage quand j'entre dans la subroutine ci-dessus j'ai bien le N° saisiede l'ID dans la variable ConsultFiche. Après j'ai sans doute fait une bêtise, mais le paramètre Convert dans la ligne DoCmd.OpenForm n'est pas du gout du compilateur et il me jette
    Tu en pense quoi de ma prose ?
    Merci a toi car je tourne en rond là et c'est l'un des dernier point qui me pose problème pour boucler mon projet, le reste fonctionne bien, il me reste la sécurisation et la gestion des accès et de débusquer les derniers bug.

  5. #5
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 028
    Points : 24 579
    Points
    24 579
    Par défaut
    C'est normal tu confonds controle et variable.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        Dim Convert As String
        Convert = CStr(ConsultFiche)
        stDocName = "FConsultStockRecherches"
        DoCmd.OpenForm stDocName, , , "id=" & Me.Convert
    Convert est une variable de type texte.
    Tu la "remplie" avec ConsultFiche, un controle probablement...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Convert = CStr(ConsultFiche)
    Ensuite tu crées ta clause Where
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm stDocName, , , "id=" & Me.Convert
    avec "Id=" et un mélange entre la syntaxe d'appel d'un controle et le nom de la variable.

    Soit tu utilises ton controle directement,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm stDocName, , , "id=" & Me.ConsultFiche
    Soit tu utilises ta variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm stDocName, , , "id=" & Convert
    Ici Id doit être le nom d'un champ de type numérique de la table source du formulaire FConsultStockRecherches si le type est texte alors tu devras l'écrire comme ceci.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm stDocName, , , "id=""" & Convert & """"
    Note que le passage par une variable est inutile. D'ailleurs je ne comprends pas pourquoi tu la "castes" en string.

    Beaucoup d'incohérences.

    Cordialement,

  6. #6
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Août 2008
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2008
    Messages : 152
    Points : 110
    Points
    110
    Par défaut
    Bonjour loufab

    Je suis désolé de nouveau de te dérangé encore une fois. J'ai lu avec beaucoup d'attention et d’intérêt ta réponse
    Le problème est que tu as mal lu ma demande tu base une bonne partie de ton analyse du problème en partant du principe que ConsultFiche est un contrôle alors que j'ai écrit dans ma demande qu'il s'agissait d'une variable de type Long qui contient le numéro ID de l'enregistrement que l'opérateur a saisie.
    J'ai essayer de trituré dans tous les sens ce que tu ma envoyer à chaque fois j'ai des messages erreur de type, erreur dans l'expression. Je pensais que ton dernière exemple en utilisant .
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm stDocName, , , "IDPieceStock""" & ConsultFiche & """"
    Cela marche toujours pas je te donne le code avec la référence de la table à mettre à la place de ID= dans ton exemple.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Private Sub BtAccesFiche_Click()            ' clic sur le bouton acces fiche selectionnée
    On Error GoTo Err_BtAccesFiche_Click
        Dim stDocName As String
        Dim Convert As String
        Convert = CStr(ConsultFiche)
        stDocName = "FConsultStockRecherches"
        DoCmd.OpenForm stDocName, , , IDPieceStock, "" & ConsultFiche
        Flag = False                                        ' bouton devient inactivé
        TestFlag                                            ' gestion activation desactivation du bouton acces fiches
    Exit_BtAccesFiche_Click:
        Exit Sub
    
    Err_BtAccesFiche_Click:
        MsgBox Err.Description
        Resume Exit_BtAccesFiche_Click
        
    End Sub
    IDPieceStock est le nom du champ dans la table qui est la clé primaire de la dite table (Numeroauto donc un Long) et accessoirement le numéro de l'enregistrement. C'est a cette table que le formulaire que je veux ouvrir fait référence.

    Pour ta remarque de la fin de ton message
    "Note que le passage par une variable est inutile. D'ailleurs je ne comprends pas pourquoi tu la "castes" en string.
    Beaucoup d'incohérences.
    "
    Je ne pratique Access que depuis mai 2011 avec 6 jours de stage. Mon truc c'est plutôt l'industriel Automates/interface homme machine/ supervision de process/SNCC/ etc. de l'industriel quoi. Mais je développe une base pour mon service pour faciliter le travail de tous. Mon chef de service m'a déja tracé du boulot sur Access pour l'année prochaine (Récupération de données dans des fichiers texte, a des fin d'analyses qu'il ne m'a pas encore précisé)
    Je te remercie encore pour ta patience vis à vis de moi

    Cordialement

    Jean Pierre

  7. #7
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 028
    Points : 24 579
    Points
    24 579
    Par défaut
    Et l'opérateur logique ?
    Avec le = il va mieux s'en sortir je pense
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm stDocName, , , "IDPieceStock=""" & ConsultFiche & """"
    Chaque , sépare un paramètre. Les clauses Where et Filter sont des clauses de type texte(string) elles doivent donc être entourés de "

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm stDocName, , , IDPieceStock, "" & ConsultFiche
    Dans cette ligne IDpiecestock va être considéré comme une variable ce qui n'est pas le cas. De plus "" & consultfiche ne sera pas inclus dans la clause where mais dans le paramètre suivant. Donc Erreur !

    Ce qu'il faut savoir c'est que Access, VBA, SQL c'est du précis. Pas d'invention ou d'approximation.
    Pas d'inquiètude on a tous débuté un jour. Le tout c'est d'être rigoureux et de ne pas mettre la charue avant les boeufs.

    Cordialement,

  8. #8
    Membre régulier
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Août 2008
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2008
    Messages : 152
    Points : 110
    Points
    110
    Par défaut
    Bonsoir loufab

    Derniere fois que je viens t'ennuyer Ton morceau de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm stDocName, , , "IDPieceStock=""" & ConsultFiche & """"
    Ne fonctionne pas. Le message action OpenForm a été annulée s'affiche, la base ne bloque pas mais le formulaire ne s'ouvre pas.

    J'ai ENFIN trouvée une solution si ! et cela marche bien, et même très bien Voila la formule magique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm stDocName, , , " [IDPieceStock] like '*" & ConsultFiche & "*'"
    Voila, je te remercie 1000 fois pour ton aide éclairée , en espérant ne plus venir hanter tes soirées

    Jean Pierre

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

Discussions similaires

  1. [AC-2010] Ouverture de formulaire sur un enregistrement précis
    Par theolivier dans le forum IHM
    Réponses: 20
    Dernier message: 24/09/2012, 18h40
  2. [Toutes versions] Probleme ouverture formulaire sur un enregistrement préci
    Par azur123 dans le forum VBA Access
    Réponses: 1
    Dernier message: 17/08/2012, 23h43
  3. Ouverture d'un formulaire sur un enregistrement précis
    Par Halzard dans le forum VBA Access
    Réponses: 2
    Dernier message: 05/06/2007, 14h36
  4. Réponses: 1
    Dernier message: 06/07/2006, 14h44
  5. Ouverture d'un formulaire sur un enregistrement défini
    Par Nabouille dans le forum Access
    Réponses: 10
    Dernier message: 23/03/2006, 23h46

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