Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 VBA Requette SQL sur un autre fichier excel

Seb

XLDnaute Occasionnel
Bonjour a tous,

Je suis despéré, je n'arrive pas a effectuer une requette sur un autre fichier excel ! Je veux recuperer une valeur dans un classeur fermé mais j'ai une erreur de syntaxte.

'Définit le classeur fermé servant de base de données
Fichier = Sheets("Parametres").Range("A2")
'CONNECTION
Set Cn = New ADODB.Connection
With Cn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
& Fichier & ";Extended Properties=""Excel 12.0;HDR=YES;"""
.Open
End With

iValeur = "210013418"

NomFeuille = "Informations personnelles"
'Définit la requête

Texte_SQL2 = "Select * FROM [" & NomFeuille & "$] Where MATRICULE CEG = " & iValeurCegid

Set RST = New ADODB.Recordset
Set RST = Cn.Execute(Texte_SQL2) BUGGUE de SYNTAXE

Si il y a quelqu'un qui peu m'apporter une réponse.. CA fait plusieurs jours que je tourne en rond avec cette macro, je m'arrache les cheveux !

Merci beaucoup !
Seb
 

patricktoulon

XLDnaute Barbatruc
Bonsoir
ca v"a t'aider a y voir plus clair
VB:
Fichier = Sheets("Parametres").Range("A2") 'verifier si le chemin est bien complet  ici
'CONNECTION
Set Cn = New ADODB.Connection ' instanciation de l'object adodb.connection
With Cn
'.Provider = "Microsoft.Jet.OLEDB.4.0"' c'est certainnement pas le bon moteur (c'est pour 2003 ce moteur)

.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Fichier & ";Extended Properties=""Excel 12.0;HDR=YES;"""

.Open 'ouverture de la connection

iValeur = "210013418" 'valeur recherchée

NomFeuille = "Informations personnelles" 'verifier l'ortographe et la casse

'verifier MATRICULE CEG
Texte_SQL2 = "Select * FROM [" & NomFeuille & "$] Where MATRICULE CEG = " & iValeurCegid

'c'est quoi ça iValeurCegid !!!!!!!!!!!!!!

Set RST = New ADODB.Recordset 'instanciation de l'object recordset
Set RST = Cn.Execute(Texte_SQL2)  'BUGGUE de SYNTAXE

End With
 

Oneida

XLDnaute Impliqué
Bonjour,
Seb
Relisez ce qu'a ecrit patricktoulon a propos de deux variables:
ivaleur: a priori valeur recherchee
iValeurCegid: dans la requete SQL et qui n'a aucune valeur affectee
Ou est l'erreur!
Voir aussi pour les [ ] nom de champ.
Nom de champ avec espace ou accens a eviter
 
Dernière édition:

Seb

XLDnaute Occasionnel
Bonjour !

Desolé erreur de recopie de code
Texte_SQL2 = "Select * FROM [" & NomFeuille & "$] Where MATRICULE CEG = " & iValeur

Je fais des test pour voir si j'arrive à me depatouiller de ca.
 

patricktoulon

XLDnaute Barbatruc
re
j'ajouterais que pour une valeur autant faire un copyfromrecordset
et ne pas s'ennuyer a décortiquer le rst
VB:
Sub test()
    Dim Cn As Object, Rst As Object, Texte_SQL2$, NomFeuille$, iValeur,Destination as range
set destination=[A1]' a modifier  à  ton gré
    Fichier = Sheets("Parametres").Range("A2") 'verifier si le chemin est bien complet ici!!!!!!!!!!!!!!
    Set Cn = New ADODB.Connection ' instanciation de l'object adodb.connection
    On Error GoTo handler
    With Cn
        .ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Fichier & ";Extended Properties=""Excel 12.0;HDR=YES;"""
        .Open
        iValeur = "210013418"
        NomFeuille = "Informations personnelles" 'verifier l'ortographe et la casse
        Texte_SQL2 = "Select * FROM [" & NomFeuille & "$] Where [MATRICULE CEG] = " & iValeur
        Set Rst = New ADODB.Recordset 'instanciation de l'object recordset
        Set Rst = Cn.Execute(Texte_SQL2)
        Destination.CopyFromRecordset Rst
        '--- Fermeture connexion ---
        .Close
    End With
    'destruction variables object de connection
    Set Cn = Nothing: Set Rst = Nothing
handler:
    MsgBox Err.Number & vbCrLf & Err.description
    Err.Clear
    On Error GoTo 0
    Set Cn = Nothing: Set Rst = Nothing
End Sub
 
Réactions: Seb

Seb

XLDnaute Occasionnel
Bonjour Patrictoulon,

Super clair ! J’essaie demain ! J’ai beau chercher j’ai du mal à trouver des tutos,

En tout cas merci je reviens demain
 

dysorthographie

XLDnaute Accro
Bonjour,
Code:
    On Error GoTo handler
    With New ADODB.Connection ' instanciation de l'object adodb.connection
        .ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Fichier & ";Extended Properties=""Excel 12.0;HDR=YES;"""
        .Open
        iValeur = "210013418"
        NomFeuille = "Informations personnelles" 'verifier l'ortographe et la casse
        Texte_SQL2 = "Select * FROM [" & NomFeuille & "$] Where [MATRICULE CEG] = " & iValeur
        Destination.CopyFromRecordset .Execute(Texte_SQL2)
        '--- Fermeture connexion ---
        .Close
    End With
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…