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

Macros et VBA Excel Discussion :

Remplir_listbox_avec requête SQL


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    gestion
    Inscrit en
    Mai 2017
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : gestion

    Informations forums :
    Inscription : Mai 2017
    Messages : 163
    Par défaut Remplir_listbox_avec requête SQL
    Salut à tous,

    Voilà j'essaie de créer une barre de recherche en VBA,
    Celle-ci chercherait ces informations dans une base de donnée

    J'ai donc dans un module standar:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public Const base As String = "UID=xxxxxxxxxxx;PWD=xxxxxxxxxxxxxxx;" & "Server=xxxxxxxxxxxxxxxx;"
    Ensuite dans l'userform1
    J'ai un textbox et une listbox
    Pour L'ouverture de la connexion:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub TextBox1_Change()
    Dim conxn As New ADODB.Connection
    Dim rqt As New ADODB.Recordset
    Dim SQL As String
    'pilote de connexion
    conxn.Provider = "SQLOLEDB"
    'chaîne de connexion
    conxn.ConnectionString = base
    'Ouverture bd
    conxn.Open
    ensuite

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    If TextBox1 = "" Then ListBox1.Visible = False
    If TextBox1 <> "" Then  (c'est ici que je souhaite alimenter la listbox)
     
    SQL = "SELECT CONCAT(ville, ' - ', 'numdep', ) FROM bdclient"
     
    ListBox1.AddItem = SQL
    cette dernière partie ne fonctionne pas.

    et enfin:
    Pouvez-vous m'éclairer svp parce que j'ai essayé des choses mais rien ne fonctionne.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    If TextBox1 = ""Then ListBox1.Visible = FalseIf TextBox1 <> "" Then  (c'est ici que je souhaite alimenter la listbox)
     
    SQL = "SELECT CONCAT(ville, ' - ', 'numdep', ) FROM bdclient"
      ListBox1.list= application.transpose(conxn.execute(SQL).getrows)
    
    

  3. #3
    Membre confirmé
    Homme Profil pro
    gestion
    Inscrit en
    Mai 2017
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : gestion

    Informations forums :
    Inscription : Mai 2017
    Messages : 163
    Par défaut
    Salut,

    Merci dysorthographie.

    J'ai voulu récupérer le résultat de la requête dans le textbox1 après un click sur un élément de listbox:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub ListBox1_Click()
    Alpha = ListBox1.ListIndex
    For i = 0 To ListBox1.ColumnCount - 1
    Me.Controls("TextBox1") = ListBox1.List(Alpha, i)
    Next
    End Sub
    Cela fonctionne, mais si je souhaite en plus de cela placé l'élément sélectionné dans la dernière cellule non vide de la feuille 2 colonne "A",

    cela ne fonctionne pas:
    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
     
    Private Sub ListBox1_Click()
     
    Dim Lig As Long
    Alpha = ListBox1.ListIndex
     
    For i = 0 To ListBox1.ColumnCount - 1
     
    Me.Controls("TextBox1") = ListBox1.List(Alpha, i)
     
    Worksheets("Feuil2").Activate
    Worksheets("Feuil2").Range("A65536").End(xlUp).Row = ListBox1.List(Alpha, i)
     
    Next
    End Sub
    Savez-vous comment procéder svp ?

  4. #4
    Membre confirmé
    Homme Profil pro
    gestion
    Inscrit en
    Mai 2017
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : gestion

    Informations forums :
    Inscription : Mai 2017
    Messages : 163
    Par défaut
    Salut à tous

    J'ai aussi essayé ça mais ça ne fonctionne pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Private Sub ListBox1_Click()
    -------------------------------
    Dim derLig As Long
    derLig = Sheets("Feuil2").Cells(Rows.Count, 5).End(xlUp).Row + 1
    Me.Controls("TextBox1").Copy Destination:=derLig
    ---------------------------------------------------------
    Avez-vous des solutions svp ?

  5. #5
    Membre confirmé
    Homme Profil pro
    gestion
    Inscrit en
    Mai 2017
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : gestion

    Informations forums :
    Inscription : Mai 2017
    Messages : 163
    Par défaut
    Voilà ce que j'ai fait et ça l'air de fonctionner:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Worksheets("Feuil3").Activate
     
    dligne = Feuil3.Range("A" & Rows.Count).End(xlUp).Row
    If dligne < 5 Then dligne = 5
    Worksheets("Feuil3").Range("A" & dligne + 1).Value = TextBox1.Value

  6. #6
    Membre confirmé
    Homme Profil pro
    gestion
    Inscrit en
    Mai 2017
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : gestion

    Informations forums :
    Inscription : Mai 2017
    Messages : 163
    Par défaut
    Est-il possible de filtrer sur le listbox,

    pour qu'au fur et à mesure de la saisie dans le textbox,

    le listbox ne fasse apparaitre que les éléments saisis ?

    Avez-vous des idées parce ce que je suis un peu bloqué sur ce point ?

Discussions similaires

  1. Requête SQL
    Par Leludo dans le forum Langage SQL
    Réponses: 3
    Dernier message: 12/07/2024, 15h41
  2. [ DB2 ] [ AS400] requête sql
    Par zinaif dans le forum DB2
    Réponses: 6
    Dernier message: 23/08/2008, 19h42
  3. Utilisation de MAX dans une requête SQL
    Par Evil onE dans le forum Langage SQL
    Réponses: 7
    Dernier message: 15/06/2004, 18h38
  4. A propos d'une requête SQL sur plusieurs tables...
    Par ylebihan dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/09/2003, 16h26
  5. PB requète SQL avec Interbase
    Par missllyss dans le forum InterBase
    Réponses: 2
    Dernier message: 15/07/2003, 11h37

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