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 :

Remplir Textbox en fonction de deux combobox


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Juillet 2010
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 9
    Par défaut Remplir Textbox en fonction de deux combobox
    Bonjour a tous !

    Je travaille actuellement sur une base de données de gestion de stock.
    La table (tbl_cable_drums) est constituée d'une colonne Item_code, d'une colonne description et d'une colonne par chantier (au nombre de 5).
    Ainsi sur chaque ligne on a le code de l'objet, sa description et la quantité présente sur chaque chantier.

    Je souhaite créer un formulaire d'ajout de matériel (pour représenter les livraisons).
    On choisi l'objet concerné dans la combo1 puis le site sur lequel la marchandise va être livrée dans la combo2 et on renseigne la quantité livrée dans la text1.
    Apres validation sur un bouton, la quantité livrée est ajoutée a la quantité initialement présente sur le chantier.

    Mon problème est que je souhaite créer un champ text2 qui affiche la quantité initialement présente sur le chantier (avant ajout) ce qui me permettrai de renseigner une text3 contenant la nouvelle quantité (text3 = text2 + text1). Ce champ text2 dépend donc des choix fait en combo1 et combo2.
    Malheureusement je n'arrive pas a écrire le code me permettant de remplir text2 ...

    Voici mon code actuel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     Private Sub Combo2_Change()
      If IsError(Evaluate("INDEX(fonction,MATCH(""" & Combo1.Value & Combo2.Value & """,tbl_CABLE_DRUMS,0))")) Then
          msg = "Unknown"
          Beep
       Else
          msg = Evaluate("INDEX(fonction,MATCH(""" & Combo1.Value & Combo2.Value & """,tbl_CABLE_DRUMS,0))")
       End If
      Text2.Value = msg
      End Sub
    L'erreur renvoyée concerne EVALUATE : Compile error Sub or Fonction not defined

    J'ai cherche la syntaxe access de la fonction evaluate mais sans succès ...

    Merci d'avance pour votre aide !

  2. #2
    Membre Expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Par défaut
    Bonjour,

    Regarde plutôt du côté de EVAL...et non EVALUATE..

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2010
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 9
    Par défaut
    Dieu que je suis bête

    Merci beaucoup

    J'ai corrigé comme suit (j'en ai également profite pour corriger "fonction" en 'function") :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub Combo4_Change()
      If IsError(EVAL("INDEX(function,MATCH(""" & Combo1.Value & Combo2.Value & """,tbl_CABLE_DRUMS,0))")) Then
          msg = "Unknown"
          Beep
       Else
          msg = EVAL("INDEX(function,MATCH(""" & Combo1.Value & Combo2.Value & """,tbl_CABLE_DRUMS,0))")
       End If
      Text2.Value = msg
      End Sub
    Mais ce n'est pas résolu pour autant ...
    J'ai maintenant droit a un magnifique :
    Run-Time error '2425'
    The expression you enterred has a function name that microsoft office access can't find


    Je penche pour le même genre d'erreur que précédemment.

  4. #4
    Membre Expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Par défaut
    msg = EVALl("INDEX(function,MATCH(""" & Combo1.Value & Combo4.Value & """,tbl_CABLE_DRUMS,0))")
    ..tu pourrais nous "traduire" ce que ton expression est censés faire
    C'est quoi MATCH.

    Sinon...
    ...Apres validation....la quantité livrée est ajoutée a la quantité initialement présente sur le chantier.
    Tu ne pense pense qu'une simple requête de mise à jour serait suffisante....

    [EDIT] Ton idée première allée dans le bon sens (ton post)

  5. #5
    Membre du Club
    Inscrit en
    Juillet 2010
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 9
    Par défaut
    Alors le but de ce code est d'aller chercher dans la table tbl_cable_drums la cellule correspondant a la ligne de l'objet ayant le code contenu dans combo1 et la colonne portant le nom du chantier sélectionné en combo2.

    Pour expliquer, voici la structure de la table :
    item_code | Description | chantier1 | chantier2 | chantier3 | chantier4 ...
    WE0056 | câble 20x5 | 90 | 67 | 134 | 126
    UZ656 | copper bar | 12 | 13 | 1 | 8


    Je souhaite donc si je sélectionne WE0056 dans ma combo1 et chantier2 dans ma combo2, que le champ text2 me retourne 67


    Pour ce qui est de faire l'update avec une requête, je n'ai pas reussi malgré pas mal de recherches et d'essais en tout genre, j'ai donc abandonné ...
    De toutes façons mon code fonctionne pour réaliser cette opération.

    EDIT: J'ai mis en ligne la base de données sur laquelle je travaille si cela peux aider ...
    http://www.cijoint.fr/cjlink.php?fil...cijgcBUMfm.zip

  6. #6
    Membre Expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Par défaut
    Heu....oui.......on ne peut pas dire que la structure de ta base est la meilleur..

    Maintenant, pourquoi faire si compliqué alors que tu ne souhaite que mettre à jour une quantité d'objets répartie sur différents chantiers...

    - création d'un formulaire basé sur la table tbl_cable_drums.
    - tu dispose tous les champs sur ce formulaire.
    - dans la partie en-tête du formulaire, tu place une ZdL indépendante. L'assistant va alors ouvrir une fenêtre ou tu aura 3 choix.
    - Tu sélectionne "Rechercher un enregistrement dans mon formulaire basé sur la valeur que j'ai sélectionnée......."

    A partir de là, un choix effectué dans cette ZdL va t'afficher directement l'objet recherché....ainsi que la répartition sur les différents chantiers.

    Il ne te reste plus qu'à changer les quantités.....

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

Discussions similaires

  1. [XL-2007] Filtrer deux listbox en fonction de deux combobox
    Par gaiaprof dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 27/07/2014, 13h36
  2. [VB.NET] Problème TextBox en fonction d'unE ComboBox
    Par nadong dans le forum Débuter
    Réponses: 2
    Dernier message: 04/04/2014, 16h35
  3. remplir textbox ou listbox d'après combobox
    Par babybell dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/12/2010, 20h59
  4. Remplir Textfield en fonction d'une comboBox
    Par BqiKo dans le forum Ext JS / Sencha
    Réponses: 5
    Dernier message: 06/05/2010, 11h25
  5. Associer résultat textbox en fonction de plusieurs combobox
    Par Albatros47 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 17/01/2010, 23h11

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