Bonjour,
J'aimerais compter le nombre de resultat d'une requete SQL, mais j'ai toujours RecordCount = -1...
Pourtant la requete fonctionne car j'affiche le resultat sur une feuille...
Je n'arrive pas à régler ce problème.
Merci de m'aider.
Bonjour,
J'aimerais compter le nombre de resultat d'une requete SQL, mais j'ai toujours RecordCount = -1...
Pourtant la requete fonctionne car j'affiche le resultat sur une feuille...
Je n'arrive pas à régler ce problème.
Merci de m'aider.
Ok :-)
Merci d'avance !
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 Sub RequeteClasseurFerme() Dim Cn As New ADODB.Connection Dim Fichier As String Dim NomFeuille As String, texte_SQL1, texte_SQL2 As String Dim Rst As New ADODB.Recordset 'Définit le classeur fermé servant de base de données Fichier = ThisWorkbook.FullName 'Nom de la feuille dans le classeur fermé NomFeuille = "Feuil1" Set Cn = New ADODB.Connection '--- Connection --- With Cn .Provider = "Microsoft.Jet.OLEDB.4.0" .ConnectionString = "Data Source=" & Fichier & _ ";Extended Properties=Excel 8.0;" .Open (openstatic) End With '----------------- 'Définit la requête. '/!\ Attention à ne pas oublier le symbole $ après le nom de la feuille. texte_SQL1 = "SELECT * FROM [" & NomFeuille & "$] WHERE Nom = 'Beaulieu'" Set Rst = New ADODB.Recordset Set Rst = Cn.Execute(texte_SQL1) MsgBox Rst.RecordCount 'Ecrit le résultat de la requête dans la cellule A2 Range("D6").CopyFromRecordset Rst '--- Fermeture connexion --- Cn.Close Set Cn = Nothing End Sub
A noter que le souci est à la ligne en gras, j'éssaye d'afficher le RecordCount.
Donc :
Code : Sélectionner tout - Visualiser dans une fenêtre à part MsgBox Rst.RecordCount
Hmm.. Je crois qu'il faut que tu fasses d'abord un moveLast et ensuite un moveFirst de ton recordset pour initialiser ton recordCount![]()
Oui je sais c'est ce qui ce dit sur le net...
Sauf que quand je le fait j'ai une erreur et notement sur le MoveLast...
Le message dit :
"L'ensemble des lignes ne prend pas en charge les récupérations arrière."
Cela ressemble assez à un mauvais choix de curseur.
Où se situe exactement le classeur dont tu parles ici :
?la feuille dans le classeur fermé
Partager