requete sql sous vba excel

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

creal69360

XLDnaute Junior
Bonjour à tous,

je souhaiterai récupérer des donées excel selon différents critères ( date min et date max et unite ). on saisi ces critèrs dans un userform et j'utilise ensuite ce code pour faire la requete qui va me copier les données trouvées dans une nouvelle feuille:
Public Sub analyse_unite2(ByVal unite As String, ByVal datemin As Date, ByVal datemax As Date)
Dim Lig As Long
Dim Colunite As String
Dim NbrLig As Long
Dim NumLig As Long
Dim coldate As String

Sheets("analyse_unite").Activate ' feuille de destination
coldate = "x"
Colunite = "r" ' colonne de la donnée non vide à tester
NumLig = 1
With Sheets("BDD") ' feuille source
NbrLig = .Cells(65536, Colunite).End(xlUp).Row
For Lig = 1 To NbrLig
If .Cells(Lig, Colunite).Value = unite Then
If .Cells(Lig, coldate).Value >= datemin Then
If .Cells(Lig, coldate).Value <= datemax Then
.Cells(Lig, Colunite).EntireRow.Copy
NumLig = NumLig + 1
Cells(NumLig, 1).Select
ActiveSheet.Paste
End If
End If
End If

Next
End With
End Sub

unite datemin et datemax proviennent de mon userform.
Ce code fonctionne très bien sauf qu'il est longt ( il faut copier à des momments 5000 lignes) , c'est pourquoi je voudrais utiliser un recordset sauf que j'arrive pas à gérer le code sql sous vba excel:
Public Sub test_recup_données(ByVal unite As String, ByVal datemin As Date, ByVal datemax As Date)
Dim cncode As ADODB.Connection
Dim rstcode As ADODB.Recordset
Dim fichiercode As String
Dim sqlanalyse As String

fichiercode = "C:\Mathieu\code final.xlsm"
Set cncode = New ADODB.Connection
cncode.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=" & fichiercode & ";Extended Properties=Excel 8.0;"

sqlanalyse = "select* from [analyse_unite$] where [( libellé us =unite ) and ( datemin < date messa > datemax )]"
Set rstcode = New ADODB.Recordset
rstcode.CursorLocation = adUseClient
rstcode.Open sqlanalyse, cncode, adOpenForwardOnly, adLockReadOnly, adCmdText
Sheets("analyse_unite").Select
Range("A2").CopyFromRecordset rstcode


Set cncode = Nothing
cncode.Close


End Sub
il doit y avoir une erreur de syntaxe dans ma requete sql mais je vois pas laquelle, merci de m'aider.
 
Re : requete sql sous vba excel

Bonjour,

En effet, il manque un espace entre le SELECT et * et il y a une double comparaison :
Il faudrait mettre quelque chose comme :
sqlanalyse = "select * from [analyse_unite$] where [libellé us] = unite AND ( datemin < [date messa] AND [date messa]> datemax )]"

Caillou
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
363
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
80
Réponses
3
Affichages
241
  • Question Question
Microsoft 365 Excel VBA
Réponses
5
Affichages
355
Réponses
2
Affichages
410
Réponses
16
Affichages
1 K
Retour