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 :

Récupération Sélection ListBox dans Requête [AC-2007]


Sujet :

VBA Access

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2012
    Messages : 49
    Points : 30
    Points
    30
    Par défaut Récupération Sélection ListBox dans Requête
    Bonjour,

    Je travaillle sur une formulaire Access 2007.

    Ma listbox contient les enregistrements de la colonne NOM_BANQUE de ma table Banque.

    Je souhaite récupérer la sélection sur NOM_BANQUE dans ma variable globale String txt

    ex : Si Sélection NOM_BANQUE = BANQUE1 alors txt = BANQUE1

    En effet, uen fois le nom de la banque récupérée dans ma variable txt, je souhaite l'utiliser dans une requête qui me permettra de trouver le CODE_BANQUE qui lui est associé dans ma table Banque.

    Je ne vois pas en quoi mon code est incorrect :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
     
    Sub InfosBanque(TypeAffich As Integer)
     
     Dim oDb As DAO.Database
        Dim oRst As DAO.Recordset
        Dim mySQL As String
        Dim str_Code_Banque As String  ' variable donnant le CIB d'une banque
     
        Dim i As Integer
     
        On Error GoTo Err_InfosTxt
     
        Set oDb = CurrentDb
     
        'Parcours de la listbox
     
        For i = 0 To Form_Formulaire1.ListBanque.ListCount - 1
     
            'Vérification que l'élement est sélectionné
            If Form_Formulaire1.ListBanque.Selected(i) = True Then
     
     
                'récupération d 'une nom de la banque sélectionnée
                txt = Form_Formulaire1.ListBanque.ItemData(i)
     
        'Nous fermons les connexions
           End If
         Next i
     
     
            mySQL = "SELECT CODE_BANQUE"
            mySQL = mySQL & " FROM BANQUE"
            mySQL = mySQL & " WHERE BANQUE.NOM_BANQUE Like '" & txt & "'"
     
     
    Set oRst = oDb.OpenRecordset(mySQL, dbOpenSnapshot)
    str_Code_Banque = oRst.Fields(0)
     
     oRst.Close
        oDb.Close
        Set oDb = Nothing
        Set oRst = Nothing
     
     
        'Nous pouvons maintenant attribuer à notre Label ou MsgBox le contenu de notre variable "str_Code_Banque "
         Select Case TypeAffich
                Case Is = -1       'met à jour le Label
     
                      Form_Formulaire1.Txt_Code_Banque.ControlSource = _
                     "=" & """" & str_Code_Banque & """"
     
                Case Is = 0
                       MsgBox str_Code_Banque  'Ouvre la MsgBox avec le même résultat
                End Select
     
     
     
    Exit_InfosTxt:
       Exit Sub
     
    Err_InfosTxt:
      MsgBox Err.Description
       Resume Exit_InfosTxt
     
    End Sub
    Je vous remercie pour votre aide.

    Cordialement,

  2. #2
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2012
    Messages : 191
    Points : 324
    Points
    324
    Par défaut
    Bonjour,

    Dans ta requête SQL qui te permet d'ouvrir ton recordset, il faut que tu précise le nom de la table dans lequel se trouve le champ à récupérer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "SELECT MaTable.MonChamp FROM MaTable WHERE MaTable.MonChamp like 'test'
    De plus, tu peux utiliser la fonction Dlookup si tu cherches à ne récupérer qu'un seul enregistrements à la place d'utiliser un recordset:

    http://office.microsoft.com/en-us/ac...001228825.aspx

    Cordialement.

  3. #3
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 094
    Points : 5 211
    Points
    5 211
    Par défaut
    Bonjour,

    Une listbox peut avoir plusieurs colonnes, par exemple le nom de la banque et son code. Une fois que l'utilisateur a fait un choix :
    listbanque.column(0) (ou listbanque) contient le nom de la banque choisie
    listbanque.column(1) contient son code

    Ainsi pas de vba donc pas de bug
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Le Like ne servira à rien sans caractère générique * : http://loufab.developpez.com/tutorie...operateurlike/

    Et de toute façon un = serait mieux qu'un Like, non ? Tu recherches plusieurs banques ?

    De plus il y a un tuto sur les fonctions de domaines en Français pour la fonction DLookup : http://starec.developpez.com/tuto/fonctionsdomaines/

    Philippe

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 64
    Points : 86
    Points
    86
    Par défaut
    Bonjour,

    Comme le dit Philippe, utilise "=" plutôt que LIKE. Sinon quelle erreur rencontres-tu ? Met un point d'arrêt quelque part et regarde les valeurs prisent par tes variables. Tient nous au courrant

  6. #6
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2012
    Messages : 49
    Points : 30
    Points
    30
    Par défaut
    Bonjour,

    Désolée pour ma réponse tardive...

    Je vous rermercie pour vos réponses Taylorised, Philippe JOCHMANS, nico84 et Mr.Mof !

    Comme ont pu le dire Taylorised, Philippe JOCHMANS et Mr. Mof, il fallait remplacer le 'LIKE' par un "=".

    nico84, ta solution avec "listbanque.column(n)" m'a été utile pour résoudre un autre problème.


    Cordialement,

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

Discussions similaires

  1. [Doctrine] Primary key et récupération des champs dans requête
    Par Fench dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 05/09/2012, 10h30
  2. Récupération du mois dans requête
    Par FIFI33160 dans le forum Modélisation
    Réponses: 1
    Dernier message: 03/09/2008, 04h45
  3. Réponses: 4
    Dernier message: 14/02/2008, 09h43
  4. [C# 2.0] Sélection obligatoire dans un ListBox
    Par oodini dans le forum Windows Forms
    Réponses: 1
    Dernier message: 12/07/2006, 18h37
  5. [Débutant] Sélection multiples dans une Listbox
    Par eraim dans le forum Access
    Réponses: 4
    Dernier message: 15/10/2005, 03h21

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