Last record in Access..
Markus
- datenbank
0 Janko Wellmeier0 Markus Mühlich
Hi Leute,
Möchte in einer Access-Datenbank auf den letzten Eintrag zugreifen...
Wie müßt ich da meine Abfrage gestallten??
Gibts da was wie "last record" od so??
Vl kann mir wer helfen!
Danke
Ciao
Markus
Hallo,
es gibt 2 Möglichkeiten:
1. Den SQL-String mit "DESC" "falschrum" sortieren. Dann gehst Du von hinten nach vorne.
2. RS.MoveLast geht zum letzten Eintrag im Recordset
MfG
JankoW
Hallo Markus
Möchte in einer Access-Datenbank auf den letzten Eintrag zugreifen...
Gibts da was wie "last record" od so??
SELECT Last(tabelle.datenfeld) FROM tabelle;
Damit hast Du dann zwar den letzten hinzugefügten Datensatz, aber dieser kann nicht bearbeitet werden. Also sinnvoll ist das dann nur, um z.B. einen PrimaryKey auszulesen anschließend mit
SELECT tabelle.datenfeld FROM tabelle WHERE (((tabelle.datenfeld)=" & myVar & "));
diesen einzelnen Datensatz auszulesen.
Viele Grüße aus Köln
Markus
Hi,
Danke für eure Denkanstöße!
Brauche das ganze für eine Bestätigungsseite!
Und Brache daher mehrere Datenbankfelder für die Bestätigung der Eintragung!
SELECT Last(tabelle.datenfeld) FROM tabelle;
Damit hast Du dann zwar den letzten hinzugefügten Datensatz, aber dieser kann nicht bearbeitet werden. Also sinnvoll ist das dann nur, um z.B. einen PrimaryKey auszulesen anschließend mit
Der Datensatz muß ja nicht bearbeitet werden es muß nur online angezeigt werden!
SELECT tabelle.datenfeld FROM tabelle WHERE (((tabelle.datenfeld)=" & myVar & "));
Kann ich dafür nicht brauchen oder?
Danke
Ciao
Markus
Hallo,
Kann ich dafür nicht brauchen oder?
Doch eigentlich schon:
1.)
strSQL = "SELECT Last(tabelle.ID) AS [LastID] FROM news;"
set rs = db.execute(strSQL)
myVar = CInt(rs("LastID"))
strSQL = SELECT tabelle.* FROM tabelle WHERE (((tabelle.ID)=" & myVar & "));"
_Recordset auslesen_
db close
set db = nothing
set rs = nothing
Damit hast genau den letzten Datensatz mit allen Datenfeldern und kannst darauf wunderbar zugreifen.
Oder Du nimmst die Varianten von Janko:
2.)
strSQL = "SELECT tabelle.* FROM tabelle;"
set rs = db.execute(strSQL)
rs.MoveLast
_Recordset auslesen_
db close
set db = nothing
set rs = nothing
3.)
strSQL = "SELECT news.* FROM news ORDER BY news.newsID DESC;"
set rs = db.execute(strSQL)
_Recordset auslesen_
db close
set db = nothing
set rs = nothing
Aus Performancegründen würde ich bei größeren Recordsets am ehesten Variante 1 empfehlen. Am wenigsten Variante 3, da hier (immer vorausgesetzt Du hast viele Datensätze) doch schon einiges hin- und hergeschaufelt werden muß bevor die Abfrage steht.
Viele Grüße aus Köln
Markus
Sorry,
1.)
strSQL = "SELECT Last(tabelle.ID) AS [LastID] FROM news;"
set rs = db.execute(strSQL)
myVar = CInt(rs("LastID"))
strSQL = SELECT tabelle.* FROM tabelle WHERE (((tabelle.ID)=" & myVar & "));"
set rs = db.execute(strSQL)
_Recordset auslesen_
db close
set db = nothing
set rs = nothing
Gruß
Markus
Hi,
Danke für eure Hilfe!
Habs jetzt lösen können dank deinen Tips!
Ciao
Markus
SELECT Last(tabelle.datenfeld) FROM tabelle;
LAST ???
Meinst Du Max()?
Guten Tag, (Begrüßung;-)
SELECT Last(tabelle.datenfeld) FROM tabelle;
LAST ???
Meinst Du Max()?
Nein, es gibt die Funktionen Last und Max.
Max gibt den Datensatz mit dem höchsten Wert zurück, Last immer den letzten Datensatz innerhalb einer Abfrage. Last hat also die gleiche Funktionalität wie MoveLast bei einem ADODB-Recordset in VBA/VBScript.
Beispiel: http://www.netbrush.net/pappelweg/admin/test.asp
Meinst Du Max()?
Tshüss Max, ach nee das war ja garnicht Dein Name.
Viele Grüße aus Köln
Markus