[VBA] Compter les lignes d'une requête SQL
Résolu
eXqO
Messages postés
49
Date d'inscription
Statut
Membre
Dernière intervention
-
parpins -
parpins -
A voir également:
- [VBA] Compter les lignes d'une requête SQL
- Excel compter cellule couleur sans vba - Guide
- Excel trier par ordre alphabétique en gardant les lignes - Guide
- Écrire plusieurs lignes dans une cellule excel mac - Guide
- Incompatibilité de type vba ✓ - Forum Programmation
- Créer un compte gmail pour une autre personne - Forum Gmail
5 réponses
Essayez ceci :
Dim i As Integer
Dim maCmd As New SqlCommand("VOTRE_REQUETE_ICI", Conn)
Conn.Open()
Dim monRead As SqlDataReader = maCmd.ExecuteReader() 'execution de la requete
While monRead.Read()
i = i + 1
End While
Conn.Close() 'fermeture de la connexion a la base
Et voila , maintenant i contient le nombre des lignes de votre requête ...
Dim i As Integer
Dim maCmd As New SqlCommand("VOTRE_REQUETE_ICI", Conn)
Conn.Open()
Dim monRead As SqlDataReader = maCmd.ExecuteReader() 'execution de la requete
While monRead.Read()
i = i + 1
End While
Conn.Close() 'fermeture de la connexion a la base
Et voila , maintenant i contient le nombre des lignes de votre requête ...
Bonjour
je cherche aussi la solution à ce problème
j'utilise vba sous excel pour me connecter à Oracle.
voici mon code (mon objet connection appartient déjà à ma classe):
'Déclaration des variables
Dim cmd As ADODB.Command
Dim rst As ADODB.Recordset
'Instanciation des variables
Set cmd = New ADODB.Command
Set rst = New ADODB.Recordset
'Préparation de l'objet Command
cmd.CommandText = "SELECT * FROM MA_TABLE"
cmd.ActiveConnection = mobjCon 'attribut de classe
'Exécution de la requête
Set rst = cmd.Execute
rst.MoveLast 'renvoi l'erreur "L'ensemble des lignes ne prend pas en charge les récupérations arrière"
rst.RecordCount 'renvoi toujours -1
Visiblement le problème viendrait du parametrage du recordset.
certains recordset n'acceptent pas cette méthode
d'ou ma question comment avoir le bon recordset?
merci d'avance
je cherche aussi la solution à ce problème
j'utilise vba sous excel pour me connecter à Oracle.
voici mon code (mon objet connection appartient déjà à ma classe):
'Déclaration des variables
Dim cmd As ADODB.Command
Dim rst As ADODB.Recordset
'Instanciation des variables
Set cmd = New ADODB.Command
Set rst = New ADODB.Recordset
'Préparation de l'objet Command
cmd.CommandText = "SELECT * FROM MA_TABLE"
cmd.ActiveConnection = mobjCon 'attribut de classe
'Exécution de la requête
Set rst = cmd.Execute
rst.MoveLast 'renvoi l'erreur "L'ensemble des lignes ne prend pas en charge les récupérations arrière"
rst.RecordCount 'renvoi toujours -1
Visiblement le problème viendrait du parametrage du recordset.
certains recordset n'acceptent pas cette méthode
d'ou ma question comment avoir le bon recordset?
merci d'avance
Bonjour,
J'aurai plutôt fait un rst.MoveLast avant le RecordCount et ensuite le MoveFirst.
D'autre part, il faut remplacer le "+" de ta requête par "&". Le signe "+" est l'opérateur de l'addition et non de la concaténation. Il peut être mal interprété dans la requête.
;o)
J'aurai plutôt fait un rst.MoveLast avant le RecordCount et ensuite le MoveFirst.
D'autre part, il faut remplacer le "+" de ta requête par "&". Le signe "+" est l'opérateur de l'addition et non de la concaténation. Il peut être mal interprété dans la requête.
;o)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question