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?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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.
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.
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
Doft
Merci beaucoup Eric!
Tout est parfait!
Il ne m'était pas possible d'utiliser un Dmax ou Dmin malheureusement...
@+
Doft
Merci beaucoup Eric!
Tout est parfait!
Il ne m'était pas possible d'utiliser un Dmax ou Dmin
malheureusement...