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 :

VBA & Transpose 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 VBA & Transpose SQL
    Salut à tous,

    J'utilise depuis peu la fonction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ListBox1.List = Application.Transpose(cnx.Execute(SQL).GetRows)
    La listebox est bien alimentée,
    Le problème c'est que lorsque j'essaie de boucler dans cette listbox par la suite:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    For i = 0 To ListBox1.ListCount - 1
    Debug.Print ListBox1.List(i)
    Next i
    J'ai ce message d'erreur: Erreur d'execution '70': Permission refusée.

    Je ne peux plus vider la listbox avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ListBox1.RowSource = ""
    Savez-vous de quoi il s'agit ?

  2. #2
    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,
    Quelqu'un pourrait me dire pourquoi lorsque je saisi une valeur dans le textbox,

    C'est l'ensemble du tableau qui est chargé dans le listbox. Alors que je voudrai que seul les données
    correspondantes à ma saisie soient affichées.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Dim SQL As String
    Dim vartab() As String
    Dim i As Integer
     
    SQL = "SELECT CONCAT(Pays,' - ',  departement,' - ',  commune,' - ',  véhicule,' - ',  démographie,' - ', pluviométrie) as indic FROM fiche_detail "
     
    Set req = cnx.Execute(SQL)

    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
     
    If ListBox1.Visible = False And TextBox1 <> "" Then
    If Not CBool(Not (Not vartab)) Then
    Erase vartab
     
    i = 0
    While Not req.EOF
        ReDim Preserve vartab(i)
        vartab(i) = req("indic")
        i = i + 1
        req.MoveNext
    Wend
            req.Close
        End If
    End If
     
     
    If TextBox1 = "" Then
        ListBox1.Visible = False
    Else
        ListBox1.Visible = True
        If CBool(Not (Not vartab)) Then
            For i = 0 To UBound(vartab)
                   If vartab(i) Like "*" & TextBox1 & "*" Then
                      ListBox1.AddItem vartab(i)
                   End If
                   If vartab(i) = TextBox1 Then
                      ListBox1.Visible = False
                   End If
            Next
        End If
    End If
    Je bloque dessus sans savoir d'où vient l'erreur, si vous avez une idée svp...

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    On privilégiera toujours le Sql au Vba dans la.mesure ou le traitement est possible par requête!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SQL = "SELECT * from(SELECT CONCAT(Pays,' - ',  departement,' - ',  commune,' - ',  véhicule,' - ',  démographie,' - ', pluviométrie) as indic FROM fiche_detail) where [indic] Like '%" & TextBox1  & "%'"
    ListBox1.List = Application.Transpose(cnx.Execute(SQL).GetRows)
    Je ne peux plus vider la listbox avec
    Dernière modification par Invité ; 27/10/2017 à 08h21.

  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
    Merci.

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

Discussions similaires

  1. [VBA-E] Requète SQL avec chemin de base de données variable
    Par Svart26 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/05/2006, 13h29
  2. [VBA-E] Requete SQL sous Excel
    Par climz dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 22/05/2006, 14h05
  3. [VBA-E] Requete SQL incluant des donnees provenant de cells
    Par Tartenpion dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 08/03/2006, 18h16
  4. [VBA-A] Requête SQL
    Par Berny03 dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 24/11/2005, 21h16
  5. Probléme VBA Word et SQL server
    Par andrau dans le forum VBA Word
    Réponses: 2
    Dernier message: 12/10/2005, 11h52

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