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 :

Intégration d'un champ d'une autre table dans un formulaire


Sujet :

IHM

  1. #1
    Futur Membre du Club
    Homme Profil pro
    consultant
    Inscrit en
    Janvier 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : consultant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 14
    Points : 6
    Points
    6
    Par défaut Intégration d'un champ d'une autre table dans un formulaire
    Bonjour à tous,

    Je suis en train de développez une base Access oriente formulaire de saisi pour mon travail.

    Je suis bloqué sur un formulaire:

    Mon formulaire est liée a une table en mode feuille de données donc je peut modifier les champs de mon formulaire.

    Ensuite cela se complique pour moi j'ai un fichier Excel qui est liée a la base ce fichier est mise a jour tous les jours, je souhaite afficher un élément de mon fichier excel dans mon formulaires ( sans passer par un sous formulaires car il s'affiche sous les données en +) toujours en mode feuille de données en ayant toujours la possibilité de modifier mes autres champs

    Cela fait une semaine que je me casse la tête pour trouver une solution

    J’espère que vous pourrez m'aider

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour,

    La méthode la plus simple est d'utiliser TonChampExcel : DFirst("TonChampExcel";"TaTableExcel";"[TaCefinline]=" & [Clef]) (PremDom en français il me semble) dans un champ calculé dans une requête qui alimente ton formulaire.

    en sql cela ressemble à :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    select [TaTable].*, DFirst("TonChampExcel", "TaTableExcel", "[TaCef]=" & [Clef]) as TonChampExcel from TaTable

    L'utilisation de la virgule au lieu du point virgule dépend pour séparer les paramètres de DFirt() dépend de où tu es et de ta langue de travail.
    Dans l'éditeur de requête et si tu es en français, il faut utiliser le point-virgule.
    Dans l'éditeur de SQL ou de VBA, il faut toujours utiliser la virgule et les masques anglais.

    Là j'ai supposé ta clef numérique.
    Si c'est un texte il faut mettre DFirst("TonChampExcel", "TaTableExcel", "[TaCef]=""" & [Clef] & """").
    Si c'est une date il faut mettre des # autours et je préconise de formater la date pour éviter les erreurs d'interprétation. Cela donne DFirst("TonChampExcel", "TaTableExcel", "[TaCef]=#" & Format([Clef],"yyyy\-mm\-dd") & "#").

    Attention DFirst() n'est pas super rapide et cela peut se voir à l'affichage.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    consultant
    Inscrit en
    Janvier 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : consultant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    Merci beaucoup pour ta réponse

    Je suis pas un expert des codes donc je suis un peu perdu

    J'ai ma table access qui se nomme " Op" mon fichier excel liée se nommant " Ex"

    J'ai un formulaire qui reprend des informations de la table "Op" donc je peux modifier les champs dans mon formulaire

    Je souhaite intégrer dans ce formulaire un champ du fichier "EX" se nommant "Etat"

    Ou dois je utiliser la fonction dfirst ? Dans ma table "Op" ou dans mon formulaire .

    Merci d'avance

  4. #4
    Modérateur

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

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

    À mon avis, le plus simple est de créer une requête qui va alimenter ton formulaire. Voici comment :

    1. Va dans ton formulaire puis va dans la propriété Données. Appuis sur le bouton [...] à droite de la propriété.
    2. Quand Access te demande si tu veux créer une requête basée sur la table, répondre "oui".
    3. Ensuite le plus simple est de choisir l'Étoile (*) dans la liste des champs de la table et de la glisser dans une colonne en bas de l'écran.
      Cela indique que tu veux prendre tous les champs de la table quelque soit le nombre de champs qu'elle possède.
      Et l'intérêt suprême, d'après moi, c'est que si tu ajoutes un champ ou retire un champ de la table la requête fonctionne toujours, avec le champ en plus ou en moins sans que tu ai à la modifier.
    4. Demande à voir le résultat la requête pour savoir si cela fonctionne correctement
    5. Ensuite te mets dans la colonne d'à côté et tu tape : TonChampExcel : DFirst("TonChampExcel";"Ex";"[TaCef]=" & [Clef]) en remplaçant TonChampExcel, TaClef et Clef par les noms des champs que tu utilises.
    6. Demande à voir le résultat la requête pour savoir si cela fonctionne correctement.
    7. Sauvegarde.
    8. Dans le formulaire tu devras ajouter le champ [TonChampExcel] aux champs déjà affichés.


    Dans un formulaire unique tu aurais pu utiliser le DFirst() directement comme source du champ mais cela ne fonctionne pas correctement quand tu utilises un formulaire en mode feuille de données (ressemblant à Excel) ou en mode continu.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    consultant
    Inscrit en
    Janvier 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : consultant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    Merci beaucoup pour tes réponses j'ai l'impression de sortir du tunnel

    Comme je suis pas tres doué j'ai du mal écrire la formule :

    TonChampExcel : PremDom("etaphysique123"(Nom de mon champs dans excel);"extract"(Nom de mon fichier excel);"[Commission](Nom de ma cle dans excel)=" & [N° Commission](Nom de mon champ dans la table acces))

    Et la il m'affiche #Erreur et me dit erreur de syntaxe dans le nombre de l'expression <[commission]=0.4.59985)

    Je voulais te remercier car tu m’enlève une sacre épine de pied et des nœuds dans le cerveau

    Merci

  6. #6
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Est-ce que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    etaphysique123 : PremDom("etaphysique123";"extract";"[Commission]=" & [N° Commission])
    fonctionne ou c'est cela qui te donne une erreur ?

    Peux-tu poster une copie d'écran de la structure de ta table Access et Excel ? Ça va aider à trouver la bonne syntaxe.

    Aussi pour éviter des bugs étranges, il est recommandé de n'utiliser pour les noms d'objet que les lettres (majuscules, minucules), les chiffres et le _ (souligné) et d'éviter les caractères exotiques et les espaces même si Access les accepte. Par exemple [N° Commission] devient [NoCommission]. Si tu as besoin de textes plus "humain", utilise un formulaire et de contrôles étiquette. Tu peux mettre le texte que tu veux, Access ne s'en sert pas.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    consultant
    Inscrit en
    Janvier 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : consultant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    Nom : Table extract.png
Affichages : 143
Taille : 121,8 KoNom : Table Opac.png
Affichages : 116
Taille : 124,5 Ko

    Voici mes deux tables

    merci encore pour ton aide

  8. #8
    Futur Membre du Club
    Homme Profil pro
    consultant
    Inscrit en
    Janvier 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : consultant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    Ci joint l'écriture en SQL

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT Opac.*, DFirst("[Extract]![Etat physique]","[Extract]","[Extract]![Commission]=" & [Opac]![N° Commission]) AS et
    FROM Opac;

  9. #9
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Essaye

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT Opac.*, DFirst("[Etat physique]","[Extract]","[Commission]=" & [Opac].[N° Commission]) AS et
     FROM Opac;

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  10. #10
    Futur Membre du Club
    Homme Profil pro
    consultant
    Inscrit en
    Janvier 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : consultant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    bonjour,

    desole de pas avoir répondu avant.

    Cela ne fonctionne toujours pas

    je sais plus quoi faire

    A+

  11. #11
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Cela ne fonctionne toujours pas
    Comment Est-ce que cela ne fonctionne pas ?
    1. As-tu un message d'erreur ?
    2. N'as-tu pas de données ?
    3. N'as-tu pas les données que tu attends ?


    Un truc que tu peux essayer c'est d'aller dans un module, puis dans la fenêtre d'éxécution (si elle n'est pas visible faire [ctl][g]) puis d'y copier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DFirst("[Etat physique]","[Extract]","[Commission]=" & mettre ici une valeur valide)
    Puis de faire [enter].

    Comme cela Access va exécuter le DFirst et devrait te donner un message explicit sur le problème.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  12. #12
    Futur Membre du Club
    Homme Profil pro
    consultant
    Inscrit en
    Janvier 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : consultant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    merci pour ton aide désolé si je suis pas assez explicite

    voila le message d'erreur dans le module en jaune

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Détail_Click()
     
    DFirst("[Etat physique]","[Extract]","[Commission]= " & [Opac].[N° Commission])
     
     
    End Sub
    ---------------------------
    Microsoft Visual Basic pour Applications
    ---------------------------
    Erreur de compilation:
    
    Attendu : =
    ---------------------------
    OK   Aide   
    ---------------------------
    A+

  13. #13
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    OK, si tu veux procéder ainsi, il faut mettre quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Détail_Click()
     
       msgbox DFirst("[Etat physique]","[Extract]","[Commission]= " & [Opac].[N° Commission])
     
    End Sub
    Et désolé je m'étais trompé, pour le test dans la fenêtre d'exécution aurait fallu mettre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print DFirst("[Etat physique]","[Extract]","[Commission]= " & [Opac].[N° Commission])
    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

Discussions similaires

  1. Réponses: 4
    Dernier message: 02/05/2013, 14h24
  2. Réponses: 13
    Dernier message: 14/04/2008, 14h30
  3. Réponses: 1
    Dernier message: 20/12/2005, 15h56
  4. afficher un champ d'une autre table, Help!
    Par chakan dans le forum Langage SQL
    Réponses: 2
    Dernier message: 07/03/2004, 23h20
  5. [CR] Afficher un champs lié à un champs d'une autre table
    Par Madduck dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 17/09/2003, 11h48

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