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

getrows

2 réponses
Avatar
pierref
bonjour,

j'ai regard=E9 la m=E9thode getrows dans l'aide access mais=20
tout n'est pas clair pour moi.
Puis je r=E9cup=E9rer le r=E9sultat de cette fonction dans un=20
tableau variant ?
est il possible de ne r=E9cup=E9rer qu'une colonne sur les 2=20
renvoy=E9es par getrows ?

merci et a+

2 réponses

Avatar
Eric
Bonjour Pierref

Je viens de regarder cette méthode. En fait GetRows te renvoie tous les
champs de ton select(ou de ta table) dans un tableau de type variant
bidemensionnel. Le 1er indice te donne le contenu de l'enregistrement lu,
le 2eme son numero de ligne.
Le 1er champ du tableau créé est en fait la concaténation de tous les
champs du recordset avec certainement un séparateur pour que tu puisses
les extraire facilement (ou encore un tableau).

Ainsi dans la Sub ci-dessous je crée un recordset contenant 3 champs sur
une table de 62 enregistrements (et 12 champs)

Sub test()
Dim sql As String, rs As DAO.Recordset, i As Integer, nb As Integer,
Temp
sql = "select societe_client, ville_client, telephone_client from
tclient;"
Set rs = CurrentDb.OpenRecordset(sql)
rs.MoveLast: rs.MoveFirst ' pour connaitre RecordCount
Temp = rs.GetRows(rs.RecordCount) ' je veux récuperer tous les enreg
For i = 0 To UBound(Temp, 2)
nb = nb + 1
Debug.Print Temp(0, i),
Debug.Print Temp(1, i),
Debug.Print Temp(2, i)
Next i
Debug.Print "Nb d'enreg récupérés : " & nb
End Sub

Temp(0,i), Temp(1,i), Temp(2,i) permet d'extraire chacun des champs de la
1ere composante(ce qui correspond à l'enregistrement Societe_Client &
Ville_Client & Telephone_Client) de la ligne i du tableau Temp. Ca te
permet de préciser quel élément du recordset tu veux manipuler.

est il possible de ne récupérer qu'une colonne sur les 2
renvoyées par getrows ?
Non je ne pense pas mais ca ne doit pas être un handicap

Seule la 1ere colonne contient l'info à retraiter, la 2eme donne le
rang de l'info, ce qui te permet eventuellement d'y accéder des lors que
tu connais le numéro d'enregistrement. Par exemple : Debug.Print Temp(2,
9) me retourne le num de téléphone de la 10° société

Est ce plus clair ?

Eric

"pierref" écrivait
news:437901c42b76$20b4ed80$:

bonjour,

j'ai regardé la méthode getrows dans l'aide access mais
tout n'est pas clair pour moi.
Puis je récupérer le résultat de cette fonction dans un
tableau variant ?


merci et a+


Avatar
pierref
je te remercie. C'est tres clair, d'autant plus que tu as
mis un exemple.
je m'y colle tout de suite. A+

-----Message d'origine-----
Bonjour Pierref

Je viens de regarder cette méthode. En fait GetRows te
renvoie tous les

champs de ton select(ou de ta table) dans un tableau de
type variant

bidemensionnel. Le 1er indice te donne le contenu de
l'enregistrement lu,

le 2eme son numero de ligne.
Le 1er champ du tableau créé est en fait la concaténation
de tous les

champs du recordset avec certainement un séparateur pour
que tu puisses

les extraire facilement (ou encore un tableau).

Ainsi dans la Sub ci-dessous je crée un recordset
contenant 3 champs sur

une table de 62 enregistrements (et 12 champs)

Sub test()
Dim sql As String, rs As DAO.Recordset, i As Integer,
nb As Integer,

Temp
sql = "select societe_client, ville_client,
telephone_client from

tclient;"
Set rs = CurrentDb.OpenRecordset(sql)
rs.MoveLast: rs.MoveFirst ' pour connaitre RecordCount
Temp = rs.GetRows(rs.RecordCount) ' je veux récuperer
tous les enreg

For i = 0 To UBound(Temp, 2)
nb = nb + 1
Debug.Print Temp(0, i),
Debug.Print Temp(1, i),
Debug.Print Temp(2, i)
Next i
Debug.Print "Nb d'enreg récupérés : " & nb
End Sub

Temp(0,i), Temp(1,i), Temp(2,i) permet d'extraire chacun
des champs de la

1ere composante(ce qui correspond à l'enregistrement
Societe_Client &

Ville_Client & Telephone_Client) de la ligne i du tableau
Temp. Ca te

permet de préciser quel élément du recordset tu veux
manipuler.


est il possible de ne récupérer qu'une colonne sur les
2


renvoyées par getrows ?
Non je ne pense pas mais ca ne doit pas être un

handicap

Seule la 1ere colonne contient l'info à retraiter,
la 2eme donne le

rang de l'info, ce qui te permet eventuellement d'y
accéder des lors que

tu connais le numéro d'enregistrement. Par exemple :
Debug.Print Temp(2,

9) me retourne le num de téléphone de la 10° société

Est ce plus clair ?

Eric

"pierref" écrivait
news:437901c42b76$20b4ed80$:

bonjour,

j'ai regardé la méthode getrows dans l'aide access mais
tout n'est pas clair pour moi.
Puis je récupérer le résultat de cette fonction dans un
tableau variant ?


merci et a+


.