Dit had ik geprobeerd maar dan krijg ik een foutmelding
Verwijderd
rs.movelast en dan rs.moveprevious
error is denk ik omdat ie dus voorbij het einde is, dus moet je er volgens mij 1 terug (moveprevious)
error is denk ik omdat ie dus voorbij het einde is, dus moet je er volgens mij 1 terug (moveprevious)
Ik doe altijd:
dan laat ie alle records zien.
code:
1
2
3
| do while not rs.eof rs.movenext loop |
dan laat ie alle records zien.
MSX 2 rulez more
Verwijderd
ORDER BY fldIets DESC ?
En dan 1 record ophalen? Heb je de laatste.
Andere mogelijkheid: in een array dumpen en de laatste uitlezen.
Of de mogelijkheden die hierboven zijn aangegeven.
En dan 1 record ophalen? Heb je de laatste.
Andere mogelijkheid: in een array dumpen en de laatste uitlezen.
Of de mogelijkheden die hierboven zijn aangegeven.
Verwijderd
Precies, niet moeilijk doen. Gewoon zo Greyfox zegt en alles komt op scherm.Op dinsdag 04 december 2001 16:28 schreef Greyfox het volgende:
Ik doe altijd:
code:
1 2 3 do while not rs.eof rs.movenext loop
dan laat ie alle records zien.
Vergeet vooral de movenext niet....
Verwijderd
Als uitbreiding op ml1's opmerking:
In de Bijbel stond: "Vele laatsten zullen eersten zijn, en vele eersten zullen laatsten zijn"
In SQL krijg je dat voor elkaar door bij sorteren op een kolom. Bij de sortering kan je namelijk aangeven of je iets oplopend (van klein naar groot) of aflopend (van groot naar klein) wil hebben.
Gebruik daarbij "ORDER BY kolom1 DESC" voor aflopend en "ORDER BY kolom1 ASC" voor oplopend. Als je niets bij ORDER BY gebruikt is het default ASC. Je kunt ze zelfs combineren.
HTH
In de Bijbel stond: "Vele laatsten zullen eersten zijn, en vele eersten zullen laatsten zijn"
In SQL krijg je dat voor elkaar door bij sorteren op een kolom. Bij de sortering kan je namelijk aangeven of je iets oplopend (van klein naar groot) of aflopend (van groot naar klein) wil hebben.
Gebruik daarbij "ORDER BY kolom1 DESC" voor aflopend en "ORDER BY kolom1 ASC" voor oplopend. Als je niets bij ORDER BY gebruikt is het default ASC. Je kunt ze zelfs combineren.
code:
1
2
3
| SELECT id, voornaam, achternaam FROM personen ORDER BY achternaam DESC, voornaam ASC |
HTH
Dit heb ik ook gedaan, maar dan laat ie alles zien. Dit is dus niet de bedoeling. Ik moet alleen de laatste in de tabel zien.Op dinsdag 04 december 2001 16:28 schreef Greyfox het volgende:
Ik doe altijd:
code:
1 2 3 do while not rs.eof rs.movenext loop
dan laat ie alle records zien.
Vreemd moet eigenlijk wel kunnenOp dinsdag 04 december 2001 16:05 schreef Chopper_Rob het volgende:
Dit had ik geprobeerd maar dan krijg ik een foutmelding
Het kan zijn dat je een foutmelding krijgt omdat het cursortype dat je nu gebruikt die actie niet toelaat. Je kunt het cursortype veranderen (moet je even opzoeken) en dan kun je vrolijk
Dit zou het wel eens kunnen doen, maar in dezelfde ASP site word eerst een record toegevoegd, waarvan ik het factuurnummer niet weet(die wil ik dus zien te krijgen).Op dinsdag 04 december 2001 17:56 schreef MrX het volgende:
Als uitbreiding op ml1's opmerking:
In de Bijbel stond: "Vele laatsten zullen eersten zijn, en vele eersten zullen laatsten zijn"
In SQL krijg je dat voor elkaar door bij sorteren op een kolom. Bij de sortering kan je namelijk aangeven of je iets oplopend (van klein naar groot) of aflopend (van groot naar klein) wil hebben.
Gebruik daarbij "ORDER BY kolom1 DESC" voor aflopend en "ORDER BY kolom1 ASC" voor oplopend. Als je niets bij ORDER BY gebruikt is het default ASC. Je kunt ze zelfs combineren.
code:
1 2 3 SELECT id, voornaam, achternaam FROM personen ORDER BY achternaam DESC, voornaam ASC
HTH
Als ik dan de selectie omdraai komt ie dan wel onderaan de tabel te staan of zet ie 'm onder de eerste omdat het is omgedraaid, waardoor de laatst toegevoegde boven in de tabel zelf komt te staan.
Thnx, ga ik morgen proberenOp dinsdag 04 december 2001 18:24 schreef nodezero het volgende:
[..]
Vreemd moet eigenlijk wel kunnen
Het kan zijn dat je een foutmelding krijgt omdat het cursortype dat je nu gebruikt die actie niet toelaat. Je kunt het cursortype veranderen (moet je even opzoeken) en dan kun je vrolijkdoor je RS lopen, dus ook een movelast actie doen...
Verwijderd
JIKES!Op dinsdag 04 december 2001 18:27 schreef Chopper_Rob het volgende:
[..]
Dit zou het wel eens kunnen doen, maar in dezelfde ASP site word eerst een record toegevoegd, waarvan ik het factuurnummer niet weet(die wil ik dus zien te krijgen).
Als ik dan de selectie omdraai komt ie dan wel onderaan de tabel te staan of zet ie 'm onder de eerste omdat het is omgedraaid, waardoor de laatst toegevoegde boven in de tabel zelf komt te staan.
Nee, dat moet je zo niet doen. Stel nou dat er 2 records 'tegelijk' worden aangemaakt, en dat je de verkeerde vindt?
Als je een autoincrement ID gebruikt en je dat wil terugkrijgen moet je dat niet met INSERT doen maar met de .AddNew methode van het recordset object. Als je dan de velden gevuld hebt, doe dan een .Update. Als het goed is staat dan in de het veld van de recordset waar het ID in staat het voor dit toegevoegde record het nieuwe ID.
HTH
Verwijderd
Type database? Access of SQL Server? Bij SQL Server moet je eens kijken naar @@IDENTITY. Kun je het laatste id van een tabel mee krijgen.
Verwijderd
En wil je dat dat bij een beetje tabel van formaat ook nog vooruit te branden is, zorg dan ook voor een (extra) descending index op die kolom. Wordt erg vaak vergeten...Op dinsdag 04 december 2001 17:56 schreef MrX het volgende:
Gebruik daarbij "ORDER BY kolom1 DESC" voor aflopend en "ORDER BY kolom1 ASC" voor oplopend.
Daar had ik zelf wel aan gedacht, maar dat gebeurt toch niet. Het is voor een eindproject van mijn opleiding, er word van maar een plek een bestelling gemaakt. Dus dat is niet ergOp dinsdag 04 december 2001 20:21 schreef MrX het volgende:
[..]
JIKES!
Nee, dat moet je zo niet doen. Stel nou dat er 2 records 'tegelijk' worden aangemaakt, en dat je de verkeerde vindt?
HTH
Ik heb dit geprobeerd, maar het werkt niet. Dit is de gebruikte code:Op dinsdag 04 december 2001 17:56 schreef MrX het volgende:
Gebruik daarbij "ORDER BY kolom1 DESC" voor aflopend en "ORDER BY kolom1 ASC" voor oplopend. Als je niets bij ORDER BY gebruikt is het default ASC. Je kunt ze zelfs combineren.
code:
1 2 3 SELECT id, voornaam, achternaam FROM personen ORDER BY achternaam DESC, voornaam ASC
HTH
SELECT * FROM Bestellingen ORDER BY ID-Nr
Het geeft een foutmelding
Too few parameters. Expected 2.
Wat doe ik niet goed.
Verwijderd
Je kan gewoon <recordset naam>.MoveLast gebruiken.
Je kan dit script proberen het werkt.
Voorbeeld:
<%@ LANGUAGE = VBScript %>
<% Option Explicit %>
<%
Dim objConn, strConnect
Set objConn = Server.CreateObject ("ADODB.Connection") strConnect="Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=c:\testomgeving\asp\stats.mdb;" & _
"Persist Security Info=False"
objConn.Open strConnect
Const adOpenDynamic = 2
Const adLockOptimistic = 3
Const adCmdTable = 2
Dim objRS
Set objRS = Server.CreateObject ("ADODB.Recordset")
objRS.Open "tblFileStats", strConnect, adOpenDynamic, adLockOptimistic, adCmdTable
objRS.MoveLast
Response.Write objRS.Fields("fldDate")
objRS.Close
Set objRS = Nothing
objConn.Close
Set objConn = Nothing
%>
Ik hoop dat je er iets aan hebt.
Je kan dit script proberen het werkt.
Voorbeeld:
<%@ LANGUAGE = VBScript %>
<% Option Explicit %>
<%
Dim objConn, strConnect
Set objConn = Server.CreateObject ("ADODB.Connection") strConnect="Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=c:\testomgeving\asp\stats.mdb;" & _
"Persist Security Info=False"
objConn.Open strConnect
Const adOpenDynamic = 2
Const adLockOptimistic = 3
Const adCmdTable = 2
Dim objRS
Set objRS = Server.CreateObject ("ADODB.Recordset")
objRS.Open "tblFileStats", strConnect, adOpenDynamic, adLockOptimistic, adCmdTable
objRS.MoveLast
Response.Write objRS.Fields("fldDate")
objRS.Close
Set objRS = Nothing
objConn.Close
Set objConn = Nothing
%>
Ik hoop dat je er iets aan hebt.
Verwijderd
maakt het verschil. Normaal gebruik je een adOpenForwardOnly cursor. Dan kun je wel een record vooruit, maar niet achteruit. Is snel, maar je kunt bijv. niet terug...objRS.Open "tblFileStats", strConnect, adOpenDynamic
Ik heb al een oplossing gevonden om het laatste record op het scherm te zetten.
do while not rs.EOF
ID = rs("ID-Nr")
RS.Movenext
wend
response.write(ID)
Dus de laatste record word in de variabele gezet en na de loop laat ik de waarde op het scherm zien. Misschein niet de mooiste oplossing, maar het werkt.
do while not rs.EOF
ID = rs("ID-Nr")
RS.Movenext
wend
response.write(ID)
Dus de laatste record word in de variabele gezet en na de loop laat ik de waarde op het scherm zien. Misschein niet de mooiste oplossing, maar het werkt.
Pagina: 1