Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Probleme ADO GetRows et resultat sur excel

6 réponses
Avatar
francisco
Bonjour tout le monde
comment puis je faire pour transorfer ce code pour renvoyer le resultat non
pas sur la fenetre execution mais sur une feuille exel Vous trouverez le
code en dessous
Amicalement Francisco
' ---
' GETROWS : EXEMPLE ADO
' ---
' La méthode GetRows transfère le contenu d'un Recordset
' dans un tableau de variants.Sub ADOGetRows()
'
Sub ADO_GetRows()
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim v As Variant
Dim lngLigne As Long, lngColonne As Long

' Ouverture de la table
Set cnn = CurrentProject.Connection
Set rst = New ADODB.Recordset
rst.Open "[tbl Villes]", cnn, adOpenDynamic, _
adLockOptimistic, adCmdTable

' Transfert de 5 lignes dans le tableau v
v = rst.GetRows(5)

' Affichage des lignes/colonnes
For lngLigne = 0 To UBound(v, 2)
For lngColonne = 0 To UBound(v, 1)
Debug.Print v(lngColonne, lngLigne),
Next
Debug.Print
Next

rst.Close
Set rst = Nothing
cnn.Close
Set cnn = Nothing
End Sub

6 réponses

Avatar
isabelle
bonjour francisco,

modifi la ligne :

Debug.Print v(lngColonne, lngLigne)

par

range("A" & lngLigne) = v(lngColonne, lngLigne)

isabelle


Bonjour tout le monde
comment puis je faire pour transorfer ce code pour renvoyer le resultat non
pas sur la fenetre execution mais sur une feuille exel Vous trouverez le
code en dessous
Amicalement Francisco
' ---
' GETROWS : EXEMPLE ADO
' ---
' La méthode GetRows transfère le contenu d'un Recordset
' dans un tableau de variants.Sub ADOGetRows()
'
Sub ADO_GetRows()
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim v As Variant
Dim lngLigne As Long, lngColonne As Long

' Ouverture de la table
Set cnn = CurrentProject.Connection
Set rst = New ADODB.Recordset
rst.Open "[tbl Villes]", cnn, adOpenDynamic, _
adLockOptimistic, adCmdTable

' Transfert de 5 lignes dans le tableau v
v = rst.GetRows(5)

' Affichage des lignes/colonnes
For lngLigne = 0 To UBound(v, 2)
For lngColonne = 0 To UBound(v, 1)
Debug.Print v(lngColonne, lngLigne),
Next
Debug.Print
Next

rst.Close
Set rst = Nothing
cnn.Close
Set cnn = Nothing
End Sub


Avatar
francisco
Merci Isabelle pour ta reponse mais je crois que je me suis mal expliqué
execuse moi ce programme il demarre de access et je voudrais renvoyer le
resultat du tableau sur excel Comment puis je faire si je demarre à partir
de access ?

Merci deja pour la reponse que tu m'as donné

Amicalement Francisco "isabelle" a écrit dans
le message de news:
bonjour francisco,

modifi la ligne :

Debug.Print v(lngColonne, lngLigne)

par

range("A" & lngLigne) = v(lngColonne, lngLigne)

isabelle


Bonjour tout le monde
comment puis je faire pour transorfer ce code pour renvoyer le resultat
non


pas sur la fenetre execution mais sur une feuille exel Vous trouverez le
code en dessous
Amicalement Francisco
' ---
' GETROWS : EXEMPLE ADO
' ---
' La méthode GetRows transfère le contenu d'un Recordset
' dans un tableau de variants.Sub ADOGetRows()
'
Sub ADO_GetRows()
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim v As Variant
Dim lngLigne As Long, lngColonne As Long

' Ouverture de la table
Set cnn = CurrentProject.Connection
Set rst = New ADODB.Recordset
rst.Open "[tbl Villes]", cnn, adOpenDynamic, _
adLockOptimistic, adCmdTable

' Transfert de 5 lignes dans le tableau v
v = rst.GetRows(5)

' Affichage des lignes/colonnes
For lngLigne = 0 To UBound(v, 2)
For lngColonne = 0 To UBound(v, 1)
Debug.Print v(lngColonne, lngLigne),
Next
Debug.Print
Next

rst.Close
Set rst = Nothing
cnn.Close
Set cnn = Nothing
End Sub




Avatar
Frédéric Sigonneau
Bonjour,

Vois si cette méthode peut te convenir :

'======================== ' ---
' GETROWS : EXEMPLE ADO
' ---
' La méthode GetRows transfère le contenu d'un Recordset
' dans un tableau de variants.Sub ADOGetRows()
'
Sub ADO_GetRows()
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim v As Variant
Dim lngLigne As Long, lngColonne As Long

' Ouverture de la table
Set cnn = CurrentProject.Connection
Set rst = New ADODB.Recordset
rst.Open "[tbl Villes]", cnn, adOpenDynamic, _
adLockOptimistic, adCmdTable

' Transfert de 5 lignes dans le tableau v
v = rst.GetRows(5)

' Affichage des lignes/colonnes
Set xl = CreateObject("Excel.Application")
Set wbk = xl.Workbooks.Add
xl.Visible = True
wbk.Sheets(1).Range("A1").Resize(UBound(Arr, 1), UBound(Arr, 2)).Value = v

' Affichage des lignes/colonnes
'For lngLigne = 0 To UBound(v, 2)
' For lngColonne = 0 To UBound(v, 1)
' Debug.Print v(lngColonne, lngLigne),
' Next
' Debug.Print
'Next

rst.Close
Set rst = Nothing
cnn.Close
Set cnn = Nothing
End Sub
'========================
Si Excel est déjà ouvert, avec le classeur de destination des données, tu peux
utiliser GetObject au lieu de CreateObject et assigner le nom du classeur à la
vriable wbk. Dans ce cas-là, tu n'as pas besoin non plus de rendre l'application
Visible.

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !

francisco a écrit:
Bonjour tout le monde
comment puis je faire pour transorfer ce code pour renvoyer le resultat non
pas sur la fenetre execution mais sur une feuille exel Vous trouverez le
code en dessous
Amicalement Francisco
' ---
' GETROWS : EXEMPLE ADO
' ---
' La méthode GetRows transfère le contenu d'un Recordset
' dans un tableau de variants.Sub ADOGetRows()
'
Sub ADO_GetRows()
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim v As Variant
Dim lngLigne As Long, lngColonne As Long

' Ouverture de la table
Set cnn = CurrentProject.Connection
Set rst = New ADODB.Recordset
rst.Open "[tbl Villes]", cnn, adOpenDynamic, _
adLockOptimistic, adCmdTable

' Transfert de 5 lignes dans le tableau v
v = rst.GetRows(5)

' Affichage des lignes/colonnes
For lngLigne = 0 To UBound(v, 2)
For lngColonne = 0 To UBound(v, 1)
Debug.Print v(lngColonne, lngLigne),
Next
Debug.Print
Next

rst.Close
Set rst = Nothing
cnn.Close
Set cnn = Nothing
End Sub




Avatar
francisco
Merci Frederic ta methode me convient et merci aussi à Isabbelle pour son
aide amicalement Francisco
"Frédéric Sigonneau" <frédé a écrit dans le
message de news:
Bonjour,

Vois si cette méthode peut te convenir :

'======================== > ' ---
' GETROWS : EXEMPLE ADO
' ---
' La méthode GetRows transfère le contenu d'un Recordset
' dans un tableau de variants.Sub ADOGetRows()
'
Sub ADO_GetRows()
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim v As Variant
Dim lngLigne As Long, lngColonne As Long

' Ouverture de la table
Set cnn = CurrentProject.Connection
Set rst = New ADODB.Recordset
rst.Open "[tbl Villes]", cnn, adOpenDynamic, _
adLockOptimistic, adCmdTable

' Transfert de 5 lignes dans le tableau v
v = rst.GetRows(5)

' Affichage des lignes/colonnes
Set xl = CreateObject("Excel.Application")
Set wbk = xl.Workbooks.Add
xl.Visible = True
wbk.Sheets(1).Range("A1").Resize(UBound(Arr, 1), UBound(Arr, 2)).Value
= v


' Affichage des lignes/colonnes
'For lngLigne = 0 To UBound(v, 2)
' For lngColonne = 0 To UBound(v, 1)
' Debug.Print v(lngColonne, lngLigne),
' Next
' Debug.Print
'Next

rst.Close
Set rst = Nothing
cnn.Close
Set cnn = Nothing
End Sub
'======================== >
Si Excel est déjà ouvert, avec le classeur de destination des données, tu
peux

utiliser GetObject au lieu de CreateObject et assigner le nom du classeur
à la

vriable wbk. Dans ce cas-là, tu n'as pas besoin non plus de rendre
l'application

Visible.

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !

francisco a écrit:
Bonjour tout le monde
comment puis je faire pour transorfer ce code pour renvoyer le resultat
non


pas sur la fenetre execution mais sur une feuille exel Vous trouverez le
code en dessous
Amicalement Francisco
' ---
' GETROWS : EXEMPLE ADO
' ---
' La méthode GetRows transfère le contenu d'un Recordset
' dans un tableau de variants.Sub ADOGetRows()
'
Sub ADO_GetRows()
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim v As Variant
Dim lngLigne As Long, lngColonne As Long

' Ouverture de la table
Set cnn = CurrentProject.Connection
Set rst = New ADODB.Recordset
rst.Open "[tbl Villes]", cnn, adOpenDynamic, _
adLockOptimistic, adCmdTable

' Transfert de 5 lignes dans le tableau v
v = rst.GetRows(5)

' Affichage des lignes/colonnes
For lngLigne = 0 To UBound(v, 2)
For lngColonne = 0 To UBound(v, 1)
Debug.Print v(lngColonne, lngLigne),
Next
Debug.Print
Next

rst.Close
Set rst = Nothing
cnn.Close
Set cnn = Nothing
End Sub







Avatar
Frédéric Sigonneau
Oups,

Je m'aperçois à la relecture que j'ai laissé traîner un tableau Arr destiné à
mes essais en lieu et place du tien qui s'appelle v. Il fallait lire

wbk.Sheets(1).Range("A1").Resize(UBound(v, 1), UBound(v, 2)).Value=v

mais je pense que tu auras corrigé cette étourderie de toi-même...

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !

francisco a écrit:
Merci Frederic ta methode me convient et merci aussi à Isabbelle pour son
aide amicalement Francisco
"Frédéric Sigonneau" <frédé a écrit dans le
message de news:

Bonjour,

Vois si cette méthode peut te convenir :

'======================== >>' ---
' GETROWS : EXEMPLE ADO
' ---
' La méthode GetRows transfère le contenu d'un Recordset
' dans un tableau de variants.Sub ADOGetRows()
'
Sub ADO_GetRows()
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim v As Variant
Dim lngLigne As Long, lngColonne As Long

' Ouverture de la table
Set cnn = CurrentProject.Connection
Set rst = New ADODB.Recordset
rst.Open "[tbl Villes]", cnn, adOpenDynamic, _
adLockOptimistic, adCmdTable

' Transfert de 5 lignes dans le tableau v
v = rst.GetRows(5)

' Affichage des lignes/colonnes
Set xl = CreateObject("Excel.Application")
Set wbk = xl.Workbooks.Add
xl.Visible = True
wbk.Sheets(1).Range("A1").Resize(UBound(Arr, 1), UBound(Arr, 2)).Value


= v

' Affichage des lignes/colonnes
'For lngLigne = 0 To UBound(v, 2)
' For lngColonne = 0 To UBound(v, 1)
' Debug.Print v(lngColonne, lngLigne),
' Next
' Debug.Print
'Next

rst.Close
Set rst = Nothing
cnn.Close
Set cnn = Nothing
End Sub
'======================== >>
Si Excel est déjà ouvert, avec le classeur de destination des données, tu


peux

utiliser GetObject au lieu de CreateObject et assigner le nom du classeur


à la

vriable wbk. Dans ce cas-là, tu n'as pas besoin non plus de rendre


l'application

Visible.

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !

francisco a écrit:

Bonjour tout le monde
comment puis je faire pour transorfer ce code pour renvoyer le resultat


non


pas sur la fenetre execution mais sur une feuille exel Vous trouverez le
code en dessous
Amicalement Francisco
' ---
' GETROWS : EXEMPLE ADO
' ---
' La méthode GetRows transfère le contenu d'un Recordset
' dans un tableau de variants.Sub ADOGetRows()
'
Sub ADO_GetRows()
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim v As Variant
Dim lngLigne As Long, lngColonne As Long

' Ouverture de la table
Set cnn = CurrentProject.Connection
Set rst = New ADODB.Recordset
rst.Open "[tbl Villes]", cnn, adOpenDynamic, _
adLockOptimistic, adCmdTable

' Transfert de 5 lignes dans le tableau v
v = rst.GetRows(5)

' Affichage des lignes/colonnes
For lngLigne = 0 To UBound(v, 2)
For lngColonne = 0 To UBound(v, 1)
Debug.Print v(lngColonne, lngLigne),
Next
Debug.Print
Next

rst.Close
Set rst = Nothing
cnn.Close
Set cnn = Nothing
End Sub











Avatar
francisco
Merci Frederic pour la petite correction que tu as apporté cela m'a evter
bien des soucis car je n'ai pas un super super niveau pour entreprendre ces
modifs j'apprends tout doucement grace à des gens comme toi qui consacre
une partie de leur temps à aider des gens comme moi
Merci
Amicalement Francisco
"Frédéric Sigonneau" <frédé a écrit dans le
message de news:
Oups,

Je m'aperçois à la relecture que j'ai laissé traîner un tableau Arr
destiné à

mes essais en lieu et place du tien qui s'appelle v. Il fallait lire

wbk.Sheets(1).Range("A1").Resize(UBound(v, 1), UBound(v, 2)).Value=v

mais je pense que tu auras corrigé cette étourderie de toi-même...

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !

francisco a écrit:
Merci Frederic ta methode me convient et merci aussi à Isabbelle pour
son


aide amicalement Francisco
"Frédéric Sigonneau" <frédé a écrit dans le
message de news:

Bonjour,

Vois si cette méthode peut te convenir :

'======================== > >>' ---
' GETROWS : EXEMPLE ADO
' ---
' La méthode GetRows transfère le contenu d'un Recordset
' dans un tableau de variants.Sub ADOGetRows()
'
Sub ADO_GetRows()
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim v As Variant
Dim lngLigne As Long, lngColonne As Long

' Ouverture de la table
Set cnn = CurrentProject.Connection
Set rst = New ADODB.Recordset
rst.Open "[tbl Villes]", cnn, adOpenDynamic, _
adLockOptimistic, adCmdTable

' Transfert de 5 lignes dans le tableau v
v = rst.GetRows(5)

' Affichage des lignes/colonnes
Set xl = CreateObject("Excel.Application")
Set wbk = xl.Workbooks.Add
xl.Visible = True
wbk.Sheets(1).Range("A1").Resize(UBound(Arr, 1), UBound(Arr,
2)).Value




= v

' Affichage des lignes/colonnes
'For lngLigne = 0 To UBound(v, 2)
' For lngColonne = 0 To UBound(v, 1)
' Debug.Print v(lngColonne, lngLigne),
' Next
' Debug.Print
'Next

rst.Close
Set rst = Nothing
cnn.Close
Set cnn = Nothing
End Sub
'======================== > >>
Si Excel est déjà ouvert, avec le classeur de destination des données,
tu




peux

utiliser GetObject au lieu de CreateObject et assigner le nom du
classeur




à la

vriable wbk. Dans ce cas-là, tu n'as pas besoin non plus de rendre


l'application

Visible.

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !

francisco a écrit:

Bonjour tout le monde
comment puis je faire pour transorfer ce code pour renvoyer le resultat


non


pas sur la fenetre execution mais sur une feuille exel Vous trouverez
le




code en dessous
Amicalement Francisco
' ---
' GETROWS : EXEMPLE ADO
' ---
' La méthode GetRows transfère le contenu d'un Recordset
' dans un tableau de variants.Sub ADOGetRows()
'
Sub ADO_GetRows()
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim v As Variant
Dim lngLigne As Long, lngColonne As Long

' Ouverture de la table
Set cnn = CurrentProject.Connection
Set rst = New ADODB.Recordset
rst.Open "[tbl Villes]", cnn, adOpenDynamic, _
adLockOptimistic, adCmdTable

' Transfert de 5 lignes dans le tableau v
v = rst.GetRows(5)

' Affichage des lignes/colonnes
For lngLigne = 0 To UBound(v, 2)
For lngColonne = 0 To UBound(v, 1)
Debug.Print v(lngColonne, lngLigne),
Next
Debug.Print
Next

rst.Close
Set rst = Nothing
cnn.Close
Set cnn = Nothing
End Sub