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 :

Importer des donnée dans une Zone de Texte [AC-2013]


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2014
    Messages : 16
    Points : 19
    Points
    19
    Par défaut Importer des donnée dans une Zone de Texte
    Bonjour,

    je travaille sous access 2013 en VBA ou j'ai une expérience de 4 jours . Je doit rajouter une fonctionnalité a un logiciel existant.

    Je cherche a afficher dans une "zone texte" le résultat d'une requête. En effet, j'ai besoin d’afficher dans la zone texte la quantité d'un logiciel disponible sur ma clé. quantité est donc un champ d'une association porteuse qui comporte comme clé primaire l'id de ma clé et l'id de mon logiciel. (Je ne sais pas si je suis très claire ^^')

    J'ai réussi a faire afficher mon résultat dans une "zone de liste" car la zone de liste permet l'utilisation de requêtes. Mais moi j'ai besoin d'une "zone de texte" car la valeur préalablement afficher doit être modifiable par l'utilisateur.

    J'ai également vu que le formulaire permet de faire une requête et que les valeurs présent dans le SELECT peuvent être attribuer aux "zone de texte" via l'option "Source contrôle". Mais de mon côté, je vais devoir faire une requête par "zone de texte" (entre 10 et 15 zone) donc il me parait compliquer d'utiliser le formulaire (surtout qu'il est déjà utilisé pour une autre requête).

    Donc j'ai plusieurs pistes que je vais vous présentez sous forme de questions :

    1/ J'ai penser a remplacer les "zones de texte" par des "zone de liste" (comme dit plus haut j'arrive a afficher mon résultat aisément avec les "zone de liste"), cependant il faut que l'utilisateur puisse changer la valeur donc qu'il puisse écrire dans la zone de liste.

    2/ Devrais-je utiliser les sous-formulaires ? J'ai tenter, mais je n'est pas totalement saisi le concept (sous formulaire lié au formulaire), et il ma semblé que se n'était pas fait pour mon problème.

    3/ Peut ont faire une requête directement depuis la "zone de texte"? Moi je n'est pas réussi, et la solution qui semble en découler me parait compliquer a mettre en oeuvre bien que j'ai crus comprendre que c'est la meilleurs solution (que je tenterais de mettre en oeuvre si il s'avère impossible de répondre positivement a ma question 1 et 2)
    => http://jdgayot.developpez.com/tutori...sultats-labels (solution que je voudrais éviter car non-aisé)

    4/ Pour se faire, je doit utiliser une requête. En sachant que le numéro de la clé reste fixe mais qu'il y a plusieurs logiciels, il me faudra crée autant de requêtes qu'il y a de logiciels ou je pourrais utiliser une seul requête que j'utiliserais pour chaque zone ?

    5/ Si vous avez une autre solution a me proposer, je suis ouvert.


    Je fait se post après une journée de recherche sur le sujet, je remercie a l'avance les personnes qui m'aiderons, et je m’excuse si je n'est pas était claire dans mon explication.

  2. #2
    Membre éclairé Avatar de pyloupylou
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Janvier 2012
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2012
    Messages : 438
    Points : 666
    Points
    666
    Par défaut
    heu ça paraît un rien nébuleux

    j'ai besoin d’afficher dans la zone texte la quantité d'un logiciel disponible sur ma clé. quantité est donc un champ d'une association porteuse qui comporte comme clé primaire l'id de ma clé et l'id de mon logiciel. (Je ne sais pas si je suis très claire ^^')
    je vais devoir faire une requête par "zone de texte" (entre 10 et 15 zone) donc il me parait compliquer d'utiliser le formulaire (surtout qu'il est déjà utilisé pour une autre requête).
    Commençons par le commencement
    si je récapitule,
    - tu as un écran, et tu veux y ajouter une série de zone de saisie que tu veux renseigner avec une valeur.
    - ces valeur tu vas les lire en faisant une interrogation sur une autre table mais tu veux que l'on puisse modifier les valeurs en saisie
    - et je suppose qu'une fois renseignées, les informations devront être sauvegardées quelque part.

    Pour moi cela ressemble à l'utilisation d'un sous formulaire mais pour en dire plus il faudrait que tu donnes un peu de visibilité sur le modèle de données
    ----
    Il ne s'agit pas de chercher à tout savoir mais de savoir où tout chercher

    merci de penser à
    Au fait.... je ne réponds pas, moi non plus, aux mp

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2014
    Messages : 16
    Points : 19
    Points
    19
    Par défaut
    Commençons par le commencement
    si je récapitule,
    - tu as un écran, et tu veux y ajouter une série de zone de saisie que tu veux renseigner avec une valeur.
    - ces valeur tu vas les lire en faisant une interrogation sur une autre table mais tu veux que l'on puisse modifier les valeurs en saisie
    - et je suppose qu'une fois renseignées, les informations devront être sauvegardées quelque part.
    Oui tu as tout compris, c'est tout a fait se que je recherche.


    Pour moi cela ressemble à l'utilisation d'un sous formulaire
    J'ai donc mal compris comment utiliser les sous-formulaire, je vais donc pencher mes futures recherche dessus, avec ton aide je l'espère.

    mais pour en dire plus il faudrait que tu donnes un peu de visibilité sur le modèle de données
    Le modèle de données, c'est a dire la base de donnée?
    Si oui voilà comment est constituer la partie qui nous intéresse (la totalité de la base de donnée est bien trop badasse pour être expliquer).

    J'ai comme tables :

    logiciels(id_log, numLog, nomLog ...) => numLog correspond au numéros de tel ou tel logiciel.

    cles(id_cle, #id_log, bit1, bit2, bit3, bit4, bit5 [...] bit64 [...autre champ]) => Les "bit" sont des booléens qui sont cocher si le logiciel est présent sur la clès. Moi, je ne m'occupe que des logiciels (donc des bit) allant de 32 a 48.

    Contenir(#id_cle, #id_log, quantité) => La table que j'ai rajouter sur la base de donnée, elle a pour but d'enregistré le nombre de logiciel présent sur chaque clés


    Je vais donc devoir, pour chaque "zone de texte", exécuter la requête :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT quantite
    FROM contenir 
    WHERE id_cle = (la clé ont est, qui ne change pas) 
    END id_log = (l'id du logiciel sur lequel je veut connaitre sa quantité, id qui changera 16 fois car je doit agir sur 16 logiciel différents)

    Bon j'ai pas non plus tout compris a la syntaxe exacte en VBA pour passer des paramètres, mais bon chaque question en sont temps

    Je ne sais pas si j'ai réussi a t’éclairai sur mon problème ou si au contraire je te perd .

  4. #4
    Membre éclairé Avatar de pyloupylou
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Janvier 2012
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2012
    Messages : 438
    Points : 666
    Points
    666
    Par défaut
    pour l'instant oublie le sql

    tu passes en mode création sur ton formulaire
    tu affiches dans le bandeau de gauche vertical les tables
    tu sélectionnes la table que tu as créé et tu la fait glisser dans ton écran
    normalement un popup va apparaitre te demandant le critère de jointure
    tu sélectionnes la clé id_cle

    cela devrait ressembler à ce que tu veux

    mais pour plus de détail prend un peu de temps pour regarder ça:
    http://claudeleloup.developpez.com/t...us-formulaire/
    ----
    Il ne s'agit pas de chercher à tout savoir mais de savoir où tout chercher

    merci de penser à
    Au fait.... je ne réponds pas, moi non plus, aux mp

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2014
    Messages : 16
    Points : 19
    Points
    19
    Par défaut
    Je n'est donc pas eu de problème pour faire se que tu m'as dit.

    Cependant, j'exploite mal ta solution. Je ne peut afficher dans mes cases que la Quantité de la premier ligne de ma table Contenir. Je ne comprend pas comment je peut "personnaliser" chaque zone de texte.

    Pour afficher la quantité de ma première colonne, j'ai utiliser se code (dans "source contrôle" : =[CONTENIRE sous-formulaire].[Formulaire]![QUANTITE])


    Note : Je ne sais pas si j'ai était claire, mais je veut afficher mes quantité dans le formulaire normal et pas dans un autre formulaire.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2014
    Messages : 16
    Points : 19
    Points
    19
    Par défaut
    Bon j'ai réussi avec mon premier petit test, j'ai eu du mal a trouver se petit bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim strSQL As String
       
        strSQL = "SELECT cli_cle_res.quantite FROM cli_cle_res WHERE cli_cle_res.id_cle = 634913480 AND cli_cle_res.id_log = 32"
        Me.BIT_32_Quantite = CurrentDb.OpenRecordset(strSQL).Fields(0).Value
    Du coup j'affiche bien le bon résultat dans mes cases, il me reste a réfléchir sur "comment ne pas faire planté l'appli quand le select retourne null, et reste a géré avec des valeurs rentré automatiquement (id_cle et id_log)

  7. #7
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2006
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Février 2006
    Messages : 70
    Points : 71
    Points
    71
    Par défaut [AC-2013] Importer des donnée dans une Zone de Texte
    Bonjour et BONNE ANNEE,

    Pour faire simple et comme tu ne ramènes qu'une seule information je te propose plutôt d'utiliser la fonction DLookup.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonText =  Nz(Dlookup("quantite","cli_cle_res","id_cle = " &  634913480 & " AND cli_cle_res.id_log = " & 32),0)
    Explications :
    Nz ( ..... ),0) --> si la quantité est nulle alors la fonction te renverra 0.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dlookup("Nom du Champs","Nom de la Table","Condition(s)")
    Recherche Dlookup dans Developpez.net
    Bon courage

    Farouk

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

Discussions similaires

  1. Enregistrement d'une donnée dans une Zone de Text
    Par faressam dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 01/05/2007, 18h58
  2. Séparation de données dans une zone de texte
    Par rantanplan81 dans le forum VBA Access
    Réponses: 2
    Dernier message: 11/04/2007, 15h23
  3. Empecher d'ecrire des espaces dans une zone de texte ?
    Par insane_80 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 02/03/2007, 18h32
  4. Autoriser la saisie des virgules dans une zone de texte
    Par griese dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 10/07/2006, 11h19
  5. affichage de données dans une zone de texte
    Par Lamie dans le forum Access
    Réponses: 2
    Dernier message: 06/07/2006, 15h31

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