rst . moverfirst werkt niet ??

Status
Niet open voor verdere reacties.

bas de jong

Gebruiker
Lid geworden
15 dec 2008
Berichten
17
Hallo allemaal
Ik heb een vraagje over het werken met een adodb recordset

Ik heb een stukje code waarmee ik een recordset open
vervolgens wil ik met rst.movefirtsmethode naar de eerste record toe navigeren maar dat werkt niet?
als ik movenext of previous doe werkt dat wel???

ik zal de code even posten..

Public Function testMetrecordsWerken()

Dim rst As New ADODB.Recordset
Dim cnn As ADODB.Connection
Dim strSQL As String

strSQL = "SELECT * FROM brandstofrecords"
Set cnn = CurrentProject.Connection

rst.Open strSQL, cnn, adOpenStatic

rst.MoveFirst
MsgBox "" & rst!ID


End Function

Hij opent elke keer op de 19e record ipv de 1 ste

hopelijk kan iemand mij vertellen wat ik verkeerd doe
mvg bas
 
Laatst bewerkt:
Als je een Recordset opent sta je altijd op het eerste record. MoveFirst is dus een zinloze en overbodige handeling. Wat niet zinloos is: je code opmaken met de CODE knop :).
 
Beste octafish

Als ik de recordset open en gelijk debug.print gebruik krijg ik de 19e record als eerste te zien

voor de duidelijkheid
Er wordt eerst een formulier geopend met als recourdsource de tabel met de records die bewerkt moeten worden
Vervolgens moeten de records , als er een wijziging is aangebracht herberekend worden.
De berekening zou normaal gezproken op de eerste record moeten beginnen en dan doorgaan tot de laatste record,echter de berekening start op de 19e record gaat dan door naar de laatste record en gaat dan vervolgens naar de eerste record en werkt dan door tot de 18e record.

De code die ik gebruik is volgens mij gewoon goed.
Mijn vraag is of iemand missch wil meedenken wat er evt aan de hand kan zijn
 
Je begrijpt mijn opmerking geloof ik niet helemaal: als je een recordset aanmaakt en opent, dan sta je per definitie op het eerste record van die recordset. Access is een relationele database, dus je hebt weinig invloed op de volgorde als je gelijk de tabel opent. Net zoals je, als je van Rotterdam naar Utrecht gaat, eerst Gouda tegenkomt en dan pas Worden. Dat is gewoon een fysiek gegeven. Wil je een ander record als eerste zien, dan moet je er voor zorgen dat je recordset is gesorteerd op dat veld. En dat doe je niet. Overigens zie ik ook dat je nog geen tijd hebt gehad om je 1e bericht aan te passen en de code op te maken :).
 
rst.movefirst

Hallo allemaal
Ik heb een vraagje over het werken met een adodb recordset

Ik heb een stukje code waarmee ik een recordset open
vervolgens wil ik met rst.movefirtsmethode naar de eerste record toe navigeren maar dat werkt niet?
als ik movenext of previous doe werkt dat wel???

ik zal de code even posten..

Code:
Public Function testMetrecordsWerken()

Dim rst As New ADODB.Recordset
Dim cnn As ADODB.Connection
Dim strSQL As String

strSQL = "SELECT * FROM brandstofrecords" 
Set cnn = CurrentProject.Connection

rst.Open strSQL, cnn, adOpenStatic

rst.MoveFirst
MsgBox "" & rst!ID


End Function

Hij opent elke keer op de 19e record ipv de 1 ste

hopelijk kan iemand mij vertellen wat ik verkeerd doe
mvg bas[/QUOTE]
 
Laatst bewerkt:
Dank je wel voor de CODE tag :). Eigenlijk was het al genoeg geweest als je het eerste bericht had aangepast hoor. Maar wat je dus niet doet in je code, en wat ik je probeerde uit te leggen, is dat je te maken hebt met een relationele database die gegevens opslaat als een verzameling (denk aan de wiskunde) en niet als een chronologische kaartenbak. Er is dus geen sortering. Wil je de gegevens gesorteerd zien, dan moet je dat dus specifiek meegeven in je query statement. Dus niet
Code:
strSQL = "SELECT * FROM brandstofrecords"
maar
Code:
strSQL = "SELECT * FROM brandstofrecords ORDER BY [BrandstofID]"
Of welk veld je maar wilt gebruiken voor de sortering.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan