OVH Cloud OVH Cloud

De nouveau tableau...

2 réponses
Avatar
Doft
Re bonjour,

J'ai donc un tableau...auquel j'ajoute les=20
enregegistrements de mon recordset:

Dim montableau() as string
Dim Int as integer

NbreLigneTableau=3DMonRS.Recordcount

ReDim MonTableau(NbreLigneTableau)

For IntI =3D 1 To NbreLigneTableau
MonTableau(IntI) =3D MonRS(0)
Next IntI

Comment faire pour r=E9cup=E9rer la valeur string (MonRS0) la=20
plus petite dans le tableau?
J'arrive toujours =E0 r=E9cup=E9rer les index des lignes mais=20
pas la valeur inscrite?

Merci beaucoup

Doft

2 réponses

Avatar
Eric
"Doft" écrivait news:bf2d01c4381a
$7f688d40$:

Re bonjour,

J'ai donc un tableau...auquel j'ajoute les
enregegistrements de mon recordset:

Dim montableau() as string
Dim Int as integer

NbreLigneTableau=MonRS.Recordcount

ReDim MonTableau(NbreLigneTableau)

For IntI = 1 To NbreLigneTableau
MonTableau(IntI) = MonRS(0)
Next IntI

Comment faire pour récupérer la valeur string (MonRS0) la
plus petite dans le tableau?
J'arrive toujours à récupérer les index des lignes mais
pas la valeur inscrite?

Merci beaucoup

Doft



re Doft

En prenant rs(0) tu récupères la valeur du 1er champ du recordset
S'il s'agit d'un NumeroAuto c'est donc cette valeur.


Dans un premier temps remplis ton Tableau avec le champ que tu veux. Par
exemple: sur un jeu d'enregistrements, on veux trouver le montant le plus
petit d'un champ numérique.

Ca donnera quelque chose comme :
Sub test()
Dim rs As DAO.Recordset
Dim Tableau() As Double, i As Long, Min As Double
Set rs = CurrentDb.OpenRecordset("UnJeu")
rs.MoveLast
rs.MoveFirst
ReDim Tableau(rs.RecordCount)
While Not rs.EOF
Tableau(i) = rs!LeChampATraiter
i = i + 1
rs.MoveNext
Wend
Min = 999999999 ' prendre une grande valeur pour avoir le Min
For i = 0 To rs.RecordCount - 1
If Min > Tableau(i) Then
Min = Tableau(i)
End If
Next i
Debug.Print Min
End Sub

Pour avoir le Max, mettre au départ Max à 0 et changer le test en
If Max < Tableau(i) then
Max = Tableau(i)
End If


Remarque : Si tu as besoin que d'une seule valeur (un min ou un max), il
y a beaucoup plus simple avec les fonctions DMax ou DMin.

A+
Eric

Avatar
Doft
Merci beaucoup Eric!

Tout est parfait!

Il ne m'était pas possible d'utiliser un Dmax ou Dmin
malheureusement...

@+

Doft