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

Access Discussion :

Access - création d'une zone de texte Recherche


Sujet :

Access

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    juriste
    Inscrit en
    Juillet 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : juriste
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2017
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Access - création d'une zone de texte Recherche
    Bonjour,

    Help!

    Je suis en train de créer une base access professionnelle, pour faire simple:
    - Table contenant les champs suivants : Numéro de dossier; Nom de navire; numéro de conteneur
    - Formulaire avec les données de la table
    - Formulaire d'accueil, avec un bouton donnant accès au formulaire avec les données de la table,

    Je souhaite créer dans le Formulaire d'accueil un bouton "Recherche", en cliquant dessus une zone de texte apparait, je note le numéro de dossier don't j'ai besoin, le formulaire avec les données de la table s'ouvre à la page concernant mon dossier.

    Sachant que j'utilise Access 2016 en anglais

    Merci

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 359
    Points : 23 829
    Points
    23 829
    Par défaut
    Bonjour.

    1. Il te faut créer un formulaire avec une zone de texte et un bouton "Rechercher".
      Je vais supposer qu'il s'appelle frmRecherche.
    2. Dans le code du bouton (procédure événementielle) il faut mettre :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      call docmd.OpenForm("frmAffichage", , , "[NumDossier]=" & me.NumDossier) 'Suppose que NumDossier est un nombre pas du texte composer de chiffres


    Deux remarques :
    Pour les noms internes (utilisés par le programme mais invisibles pour l'utilisateur) je recommande vivement de se limiter à
    • Lettres majuscules ou minuscules non accentuées et non "décorées" (pas de ç)
    • Chiffres
    • Le souligné (_)


    Pas d'espace ( ), de tiret (-) ni d'autres caractères non alphanumériques comme le dièse (#).

    Cela évite des bugs vicieux et sournois notamment quand tu essayes d'échanger des données avec d'autres systèmes.

    Si tu as besoin de textes plus agréables pour un être humain, utilises un formulaire et des étiquettes. Ils sont là pour cela.
    Les objets internes ne devraient jamais être vus par les utilisateurs.

    Un autre point, sais-tu que Access
    • vient avec un menu contextuel qui te permet de filtrer directement dans un champ à l'écran ?
    • dispose d'écran "double affichage" (splited screen en anglais ?) qui te permettent d'avoir un liste ET un "fiche" dans le même écran ?
      Quand tu changes de ligne, Access met les données de la fiche à jour en conséquence.
    • vient avec une fonction de recherche accessible par l'appuis sur les touches [Ctrl][f] ?
    • dispose dans les formulaires en mode feuille de données (qui ressemble à une feuille Excel) de filtre et de tri dans l'entête des colonnes ?


    Ces fonctionnalités évitent d'avoir à le redevelopper soi-même.

    A+

  3. #3
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 359
    Points : 23 829
    Points
    23 829
    Par défaut
    Re-bonjour.

    Ceci n'est pas dans ta question mais à moins que tu n'ai toujours qu'un seul conteneur par navire et dossier je te suggère l'architecture suivante :

    tblConteneur
    ClefConteneur (NumAuto, ClefPrimaire)
    IdConteneur (Texte, 255 carcatères, Identifiant "hunain" du conteneur, ex : ZXR21458ABC)
    Autres infos sur le conteneur (ex : Compagnie propriétaire, dimension, ...)

    tblNavire
    ClefNavire (NumAuto, ClefPrimaire)
    NomNavire
    Autres infos sur le navire (ex : Armateur, Tonnage, ...)

    tblDossier
    ClefDossier (NumAuto, ClefPrimaire)
    IdDossier (Texte, 255 carcatères, Identifiant "hunain" du dossier, ex : ALPHA4)
    NomDossier (Texte, 255 carcatères)
    ClefNavire (entier long, en relation avec la table tblNavire, suppose un seul navire par dossier)

    tblDossierConteneur
    ClefDossierConteneur (NumAuto, ClefPrimaire)
    ClefDossier (entier long, en relation avec tblDossier)
    ClefConteneur (entier long, en relation avec tblConteneur)

    Cette architecture est ce qu'on appelle la 3ième forme normale et est celle qui est recommandée pour les bases de données relationnelles.
    Elle permet d'avoir l'information à une et une seule place (ex : le nom du navire est dans tblNavire) et de s'y référer quand on en a besoin (clefNavire dans tblDossier).

    Sur le long terme cette architecture est plus payante que ta 1ère idée qui est typique d'une solution Excel et parfaitement adaptée à Excel.
    Elle permet de supporter des modifications plus facilement en minimisant les modifications à l'interface et en améliorant la qualité des données.
    Par exemple, là tu ne peux pas assigner un navire qui n'existe pas dans la liste des navires.

    Si tu peux avoir :
    • plusieurs navires pour un même dossier
    • ou plusieurs navires pour un même conteneur pour un même dossier

    il faudra faire une architecture un peu différente,

    A+

  4. #4
    Nouveau Candidat au Club
    Femme Profil pro
    juriste
    Inscrit en
    Juillet 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : juriste
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2017
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Merci pour ta réponse marot_r

    Je travaillais auparavant sous EXCEL et j'ai importé mon fichier dans access et j'ai créé ma base de donnée avec des données déjà existentes donc pour la seconde solution que tu me proposes, je ne pense pas que ce soit jouable
    J'ai tenté la 1ere solution propose en créant un formulaire recherché que j'ai appelé FrmSearch. J'ai donc appliqué le code comme suit (on numéro de dossier s'appelle Number) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    call docmd.OpenForm("FrmSearch", , , "[Number]=" & Me.Number)
    Je reçois le message d'erreur suivant : Compile error : Method or data member not found

    Sais-tu ou est mon erreur?

  5. #5
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 359
    Points : 23 829
    Points
    23 829
    Par défaut
    Bonjour.

    Pourrais-tu poster l'ensemble du code du Subau End Sub ?

    Je travaillais auparavant sous EXCEL et j'ai importé mon fichier dans Access et j'ai créé ma base de donnée avec des données déjà existantes donc pour la seconde solution que tu me proposes, je ne pense pas que ce soit jouable
    C'est possible mais cela demande un peu de travail.
    Il faut prendre tes données actuelles et les répartir et regrouper dans les différentes tables.

    La TRÈS grosse différence entre Access et Excel c'est que Access marche avec des "listes" (les tables) alors qu'Excel marche avec des tableaux à 2 dimensions (les feuilles).
    Cela implique un mode de conception assez différent.

    Par exemple en Excel il est très simple de faire un total quotidien en ajoutant les données du jour au cumul de la veille (Si A est ta colonne de données et B est ta colonne total, B2=B1+A2).
    En Access c'est une autre histoire, pour avoir le total à une date donnée, il faut additionner toutes les informations jusqu'à la date voulue (TotalQuotidien:DSum("A"; "UnNomDeTable"; "[B]<=#" & [B] & "#").
    Il est très pénible de faire une somme de colonne en Access alors qu'en Excel cela prend quelques seconde.

    A+

  6. #6
    Nouveau Candidat au Club
    Femme Profil pro
    juriste
    Inscrit en
    Juillet 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : juriste
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2017
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Command2_Click()
    Call DoCmd.OpenForm("FrmSearch", , , "[Number]=" & Me.NUMBER)
    End Sub
    Merci pour ces infos, je vais créer des tables comme conseillé

  7. #7
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 359
    Points : 23 829
    Points
    23 829
    Par défaut
    Bonjour.

    Je ne vois pas et je me suis peut-être mal exprimé

    Je vais supposer que tu as :

    1. frmMenu (Ton formulaire d'accueil)
    2. frmSearch (ton formulaire où tu vas saisir le numéro)
    3. frmDonnees (ton formulaire où tu affiches tes données)


    frmMenu appelle frmSeach qui lui-même appelle frrmDonnees.

    Donc la syntaxe dans le bouton de frmSearch c'est quelques choses comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Call DoCmd.OpenForm("FrmDonnees", , , "[Number]=" & Me.NmDuChamp)
    A+

  8. #8
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 359
    Points : 23 829
    Points
    23 829
    Par défaut
    Merci pour ces infos, je vais créer des tables comme conseillé
    Avant de te lancer, je te recommande de faire un ou deux tutoriaux sur comment créer une base Access (il y en a plusieurs sur ce site).
    Cela va te donner les bases et éviter certaines frustrations car même si Access est assez facile d'accès, il peut être TRÈS énervant et contre intuitif parfois.
    Si il est relativement simple d'obtenir ce que Access fait "naturellement" comme il le fait, il peut être plus délicat d'obtenir ce que tu veux de la façon dont tu le veux.

    A+

  9. #9
    Nouveau Candidat au Club
    Femme Profil pro
    juriste
    Inscrit en
    Juillet 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : juriste
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2017
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    ça fonctionne !!
    merci beaucoup!

  10. #10
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 359
    Points : 23 829
    Points
    23 829
    Par défaut
    Si tu considères le sujet clos, merci d'appuyer sur le bouton en bas de discussion.

    A+

Discussions similaires

  1. [Toutes versions] Création d'une zone de texte modifiable à partir du masque
    Par bendesarts dans le forum Powerpoint
    Réponses: 1
    Dernier message: 26/04/2016, 21h50
  2. Réponses: 1
    Dernier message: 28/06/2013, 20h35
  3. Création d'une zone de texte
    Par Jay-P dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/04/2010, 16h51
  4. [PHP 5.4] Création d'une zone de texte type word
    Par toinou62 dans le forum Langage
    Réponses: 1
    Dernier message: 05/06/2009, 10h58
  5. [OCaml] Création d'une zone de texte
    Par Camstyles dans le forum Caml
    Réponses: 5
    Dernier message: 07/03/2007, 09h59

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