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 :

"Valeur par défaut" pour champ dans onglet.


Sujet :

VBA Access

  1. #1
    Membre régulier
    Homme Profil pro
    informaticien retraité
    Inscrit en
    Mai 2017
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : informaticien retraité

    Informations forums :
    Inscription : Mai 2017
    Messages : 273
    Points : 109
    Points
    109
    Par défaut "Valeur par défaut" pour champ dans onglet.
    Bonjour,

    Depuis quelques jours je tente d'assigner une "valeur par défaut" à un champ situé dans un onglet qui est un sous-formulaire. Voici ma base de données.

    Base de données : GD

    Tables :
    Tables :
       TA_CLASSEMENT
          cla_identification, numéroAuto (Index)
          cla_code, string
       TA_DOCUMENT
          doc_identification, numéroAuto (Index)
          doc_ref_classement, numérique, en relation avec cla_identification
          doc_fichier, hyperlien
    Formulaire :
       FO_CLASSEMENT
          Onglets :
             Renseignements_de_base contenant tous les champs de la table TA_CLASSEMENT
             Documents contenant le sous-formulaire SF_DOCUMENT qui contient tous les champs de la table TA_DOCUMENT
    Je désire placer, dans le champ doc_fichier de l'onglet Documents sous-formulaire SF_DOCUMENT, comme "valeur par défaut" un nom de fichier (Chemin, fichier et extension) dans le champ doc_fichier avec les caractéristiques suivante :
    = "C:\XYZ\AA8888-99.pdf" où :
    AA8888 est le contenu du champ, déjà entré dans le premier onglet Renseignements_de_base, champ cla_code en tenant compte que celui-ci contient une valeur numérique en relation
    99 est le numéro de l'enregistrement qui est relié

    Exemples :
    cla_identification, valeur 87
    cla_code, valeur "AA0113"
    doc_identification, valeur 208
    doc_ref_classement, valeur 87 mais on voit dans l'onglet "AA0113"
    doc_fichier, deviendrait alors "C:\XYZ\AA0113-01.pdf" avec "-01" car c'est le premier enregistrement en relation avec cla_identification, valeur 87

    Si j'ajoute un deuxième enregistrement à l'onglet Documents
    doc_fichier, deviendrait alors "C:\XYZ\AA0113-02.pdf"
    Si j'ajoute un troisième enregistrement à l'onglet Documents
    doc_fichier, deviendrait alors "C:\XYZ\AA0113-03.pdf"
    Et ainsi de suite pour le reste.
    J'ai tout essayé ce que j'ai pu trouver dans toutes les références qui sont à ma portée mais en vain.

    Si quelqu'un peut m'aider j'apprécierais beaucoup et s'il manque des informations, je me ferai un plaisir de vous les fournir.

    Merci à l'avance pour vos efforts.

  2. #2
    Membre régulier
    Homme Profil pro
    informaticien retraité
    Inscrit en
    Mai 2017
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : informaticien retraité

    Informations forums :
    Inscription : Mai 2017
    Messages : 273
    Points : 109
    Points
    109
    Par défaut
    Bonjour,

    Au début je cherchais une solution à l'aide de la propriété Access, "Valeur par défaut" mais j'ai trouvé une solution temporaire qui nécessite l'utilisation du VBA,

    Voici ma solution temporaire :

    Dans l'onglet Documents, sous-formulaire SF_DOCUMENT, au bout du champ doc_fichier j'ai inséré un bouton et à l'événement Clic je réfère au code fich() dont voici le contenu :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Public Function Fich() As String
        Dim GesDoc                  As New ADODB.Connection
        Dim str_code As Variant
        Dim str_numero_enregistrement As Variant
        Set GesDoc = CurrentProject.Connection
        str_code = Forms!FO_CLASSEMENT!cla_code.Value
        str_numero_enregistrement = InputBox("Entrer le numéro du DOCUMENT à 2 chiffres", "DOCUMENT (Fichier)", "01")
        Forms!FO_CLASSEMENT!SF_DOCUMENT!doc_fichier = "#C:\XYZ\ & str_code & "-" & str_numero_enregistrement & ".pdf#"
     
    End Function
    Comme vous pouvez le constater, j'ai contourné le problème du numéro d'enregistrement en demandant à l'utilisateur le numéro qu'il désire utiliser. Ce n'est pas automatique mais ça fonctionne très bien.

    Merci à ceux qui on eu un intérêt pour cette discussion. Si je trouve la solution permanente qui automatise le tout, je vous le signalerai.

    Merci.

  3. #3
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 057
    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 057
    Points : 24 659
    Points
    24 659
    Par défaut
    Bonjour,
    je viens de lire tes messages. Ce tuto devrait t'éclairer sur la manipulation des appels formulaire/état.

    https://loufab.developpez.com/tutori...pelformulaire/

    Il y a un pense-bête sous la forme d'un tableau PDF.

    Je vois que tu utilises le ! comme séparateur de tes objets. Une petite lecture complémentaire qui devrait t'éclairer sur l'utilisation du . par rapport au !

    http://blogaccess.free.fr/?p=197

    Cordialement,

  4. #4
    Membre régulier
    Homme Profil pro
    informaticien retraité
    Inscrit en
    Mai 2017
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : informaticien retraité

    Informations forums :
    Inscription : Mai 2017
    Messages : 273
    Points : 109
    Points
    109
    Par défaut
    Bonjour,

    Je viens de lire la documentation suggérée et c'est extrêmement intéressant et bien conçu. Grand merci pour cette proposition.

    Merci aussi pour l'avoir déplacé dans un forum plus adéquat.

    Je donnerai un suivi.

    Bonne journée.

  5. #5
    Membre régulier
    Homme Profil pro
    informaticien retraité
    Inscrit en
    Mai 2017
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : informaticien retraité

    Informations forums :
    Inscription : Mai 2017
    Messages : 273
    Points : 109
    Points
    109
    Par défaut
    Bonjour,

    Toutefois il me reste encore à trouver la solution pour utiliser le numéro d'enregistrement du sous-formulaire, si quelqu'un a une idée. Je continue de chercher.

    Merci.

  6. #6
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 057
    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 057
    Points : 24 659
    Points
    24 659
    Par défaut
    Bonjour,

    J'appliquerais simplement le tuto en faisant :

    'à partir du sous-formulaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    me.doc_fichier.defaultvalue  = "#C:\XYZ\" & me.parent.form.controls("cla_code").Value & "-" & me.parent.form.controls("cla_identification").value & ".pdf#"
    'à partir du formulaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        me.sf_document.form.controls("doc_fichier").defaultvalue = "#C:\XYZ\" & me.cla_code.value & "-" & me.cla_identification.value & ".pdf#"
    Cordialement,

  7. #7
    Membre régulier
    Homme Profil pro
    informaticien retraité
    Inscrit en
    Mai 2017
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : informaticien retraité

    Informations forums :
    Inscription : Mai 2017
    Messages : 273
    Points : 109
    Points
    109
    Par défaut
    Bonjour,

    En fait cette solution serait parfaite si j'avais besoin du champ identification mais en l’occurrence c'est plutôt le numéro de l'enregistrement tel qu'inscrit au bas de la page du sous-formulaire indiquant quel est le numéro de l'enregistrement du SF_DOCUMENT à l'intérieur de FO_CLASSEMENT.

    En fait pour FO_CLASSEMENT numéro 87, le 1er document en lien a le numéro 1, le 2ième 2, etc... Si le FO_CLASSEMENT est numéro 101, on recommence la séquence au bas de la fenêtre du sous-formulaire soit 1, 2, 3, etc...

    Merci.

  8. #8
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 057
    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 057
    Points : 24 659
    Points
    24 659
    Par défaut
    Tu évoques celui-ci ?

    Nom : 2019-10-30_08h41_52.png
Affichages : 101
Taille : 2,0 Ko

  9. #9
    Membre régulier
    Homme Profil pro
    informaticien retraité
    Inscrit en
    Mai 2017
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : informaticien retraité

    Informations forums :
    Inscription : Mai 2017
    Messages : 273
    Points : 109
    Points
    109
    Par défaut
    Bonjour,

    C'est exactement ce que je désire pour mon sous-formulaire.

    Merci.

  10. #10
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 057
    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 057
    Points : 24 659
    Points
    24 659
    Par défaut
    Je te conseille d'utiliser l'id de la table mère et pas ce N° qui n'a aucune relation avec les enregistrements.
    sinon voici comment l'obtenir :


  11. #11
    Membre régulier
    Homme Profil pro
    informaticien retraité
    Inscrit en
    Mai 2017
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : informaticien retraité

    Informations forums :
    Inscription : Mai 2017
    Messages : 273
    Points : 109
    Points
    109
    Par défaut
    Bonjour,

    Avec toutes vos réponses, j'ai pu terminer mon projet de la façon que je désirais.

    Tout est maintenant fonctionnel et grâce à vous j'ai grandement amélioré mes connaissances Access VBA.

    Merci et je vais indiquer la discussion comme résolu.

    Bonne journée.

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

Discussions similaires

  1. [AC-2007] Modifier valeur par défaut d'un champ dans une table
    Par Tazzou dans le forum VBA Access
    Réponses: 5
    Dernier message: 09/07/2017, 21h12
  2. [AC-2007] Modifier la valeur par défaut d'un champs dans un sous-formulaire
    Par Mkl85 dans le forum VBA Access
    Réponses: 2
    Dernier message: 24/05/2017, 11h47
  3. [AC-2007] Modifier la valeur par défaut d'un champs dans un sous-formulaire
    Par Mkl85 dans le forum Macros Access
    Réponses: 1
    Dernier message: 24/04/2017, 18h02
  4. [AC-2003] Problème dans la définition de la valeur par défaut d'un champ
    Par Manhexter dans le forum VBA Access
    Réponses: 7
    Dernier message: 09/11/2010, 08h23

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