überprüfen, ob ein Datensatz existiert

L

Lori

Guest
hallo

suche hilfe: ich möchte überprüfen, ob ein datensatz mit der ID xy in meiner access-db vorhanden ist. bring es aber einfach nicht hin.

probiert habe ich es mit
SELECT * FROM tabelle WHERE (EXISTS AND ID = " & ID1)

aber da krieg ich nur fehelrmeldungen. vermutlich bin ich total auf dem holzweg.

leider finde ich nix ansprechendes im www - oder suche ich mit exists total falsch?

danke für jede hilfe.
lori
 
Dein SQL ist syntaktisch falsch. Wenn schon, müsste es so aussehen:

"SELECT * FROM tabelle WHERE (EXISTS AND ID = " & ID1 & ")"

Aber das Exists brauchst Du nicht wirklich, und ich glaube das obige gäbe auch nen Fehler (ich selber hab das Exists noch nie verwendet, deshalb weiss ich nicht wie das genau aussehen muss).

Grundsätzlich gibt es zwei Möglichkeiten:

- Erstellen eines Recordsets mit einem normalen SELECT und anschliessendes Prüfen des Recordsets auf EOF *und* BOF

sSQL = "SELECT * FROM Tabelle WHERE ID=" & ID1 'wenn ID einen Zahlen-Datentyp hat, ansonsten mit Apostrophs
set rs = conn.execute(sSQL)
if rs.eof and rs.bof then
' es existiert kein entsprechender Datensatz
else
' mindestens ein Datensatz gefunden
end if
set rs = nothing

- Erstellen eines Recordsets mit einer Count-Abfrage, wobei immer genau ein Datensatz geliefert wird, der die Anzahl passender Datensätze enthält

sSQL = "SELECT COUNT(*) AS Anzahl FROM Tabelle WHERE ID=" & ID1 'wenn ID einen Zahlen-Datentyp hat, ansonsten mit Apostrophs
set rs = conn.execute(sSQL)
if rs("Anzahl") = 0 then
' es existiert kein entsprechender Datensatz
else
' rs("Anzahl") enthält die Anzahl passender Datensätze
end if
set rs = nothing

Wenn Du nur wissen willst, ob der Datensatz existiert, reicht die Variante mit dem Count. Werden die Daten des entsprechenden Datensatzes aber auf der Seite noch irgendwo gebraucht, ist natürlich die Variante mit dem normalen Select besser.

Griessli
Irene
 
topp Dank!
biggrin.gif


mit dem SELECT COUNT(*) resp. SELECT * hats vollauf gefunzt. zur vollen Zufriedenheit.

> "SELECT * FROM tabelle WHERE (EXISTS AND ID = " & ID1 & ")"

Das hatte ich auch so, nur nicht ins forum gepostet. funktionierte aber einfach nicht wie gewünscht.


greez Lori
 
Zurück
Oben