access - passer d'un enregistrement à un autre
Bonjour,
je suis navré mais je n'ai pas trouvé la solution à ma question sur le forum.
J'ai une table dans access, dans laquelle chaque enregistrement contient une coordonnée GPS (lat, long). La table est remise à 0 au départ et contient à l'arrivée un certain nombre de points. Ex: 30 points.
Afin de calculer la distance entre le départ et l'arrivée, je dois calculer la distance entre chaque point et additionner ces distances pour obtenir la globale.
je souhaite calculer la distance entre chaque point et stocker cette distance dans une variable que j'incrémente chaque fois, pour avoir à la fin la distance totale entre le départ et l'arrivée.
Comment est-ce que je fais une boucle qui calcule:
#record 1 à #record 2
#record 2 à #record 3
etc. jusqu'à la fin ?
le code que j'utilise pour calculer la distance entre 2 points est:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| lat1 = x1
lng1 = y1
lat2 = x2
lng2 = y2
rlo1 = dtR(lng1)
rla1 = dtR(lat1)
rlo2 = dtR(lng2)
rla2 = dtR(lat2)
dlo = (rlo2 - rlo1) / 2
dla = (rla2 - rla1) / 2
A = (Sin(dla) * Sin(dla)) + Cos(rla1) * Cos(rla2) * (Sin(dlo) * Sin(dlo))
d = 2 * arctan2(Sqr(A), Sqr(1 - A))
retour = (EarthRadius * d)
'sortie = Format(retour, "#####.##" & " m")
sortie = Round(retour, 1) & " m" |
donc je souhaite que la boucle charge la variable x1, y1, x2, y2 en passant d'un enregistrement à un autre.
Quelqu'un pourrait-il m'aider ?
d'avance merci.
Solution
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| Set Rs = CurrentDb.OpenRecordset("T_NMEA", dbOpenTable, dbReadOnly)
Set Rs2 = CurrentDb.OpenRecordset("T_NMEA", dbOpenTable, dbReadOnly)
Rs2.MoveNext
Do
'Rs.MoveFirst
'While Not Rs.EOF
With Rs
x1 = !x
y1 = !y
id1 = !IDNMEA
MsgBox id1 & " - id1"
End With
'Do
With Rs2
x2 = !x
y2 = !y
id2 = !IDNMEA
MsgBox id2 & " - id2"
End With
'Loop
Rs.MoveNext
Rs2.MoveNext
Loop Until Rs.EOF
Rs.Close |