Supportnet / Forum / Datenbanken
Beschränken der Datensätze in einer Tabelle
Frage
Hilfe,
kann mir jemand helfen. Ich habe mit Access eine Datenbank mit Suchmaschiene entworfen. Dabei soll der Benutzer über mehrer Formulare, verschiedene Optionen auswählen. Um die Suchabfrage zu starten brauche ich dann alle Optionen, daher habe ich eine Tabelle als "Zwischenspeicher" angelegt. Dort sollten die Auswahlergebnisse der einzelnen Formulare in jeweils einer eigenen Zelle EINES Datensatzes abgelegt werden. Leider legt Access aber bei jedem Formular einen neuen Datensatz an. Wie kann ich das verhindern??
Oder gibt es eine Möglichkeit die Tabelle von Hause aus auf einen Datensatz zu beschränken (mehr brauch ich ja nicht)?
Oder als letze Möglichkeit gibt es einen Weg eine einzelne Zelle in einer Datenbank genau anzusteuern um dort Informationen abzulegen?
Da mich das Problem schon seit Tagen martert wäre ich sehr dankbar für jeden Tip der mich weiterbringen kann.
Danke
Antwort 1 von JohnnyLoser
Hier stellt sich zuerst einmal die Frage, wie die Tabelle aussieht (Anzahl Felder und Typ).
Danach kommt die Frage, wie Du Deine Tabelle füllst, mit rs.AddNew oder db.Execute("INSERT INTO...")
Danach noch die Frage, was mit den Daten geschehen soll, die in er Tabelle stehen, wenn neue Daten hineingeschrieben werden.
Und, und, und...
Prinzipiell könntest Du, bevor Du Deine Daten, egal auf welche Weise, in die Tabelle schreibst ein Lösch-Statement auf die Tabelle absetzen:
CurrentDb.Execute("DELETE FROM MyTable")
Würde ich allerdings davon abraten, wenn es sich nicht um eine temporäre Tabelle handelt, die bei jedem Start neu erstellt wird, da sich die Datenbank hierdurch nur unnötig aufbläht.
Alternativ könntest Du mit rs.Edit arbeiten. Angenommen Du hast 3 Felder in der Tabelle , die unterschiedliche Werte enthalten plus ein indiziertes Feld mit dem Namen ID und dem Wert 1 :
Gruß
Johnny
Danach kommt die Frage, wie Du Deine Tabelle füllst, mit rs.AddNew oder db.Execute("INSERT INTO...")
Danach noch die Frage, was mit den Daten geschehen soll, die in er Tabelle stehen, wenn neue Daten hineingeschrieben werden.
Und, und, und...
Prinzipiell könntest Du, bevor Du Deine Daten, egal auf welche Weise, in die Tabelle schreibst ein Lösch-Statement auf die Tabelle absetzen:
CurrentDb.Execute("DELETE FROM MyTable")
Würde ich allerdings davon abraten, wenn es sich nicht um eine temporäre Tabelle handelt, die bei jedem Start neu erstellt wird, da sich die Datenbank hierdurch nur unnötig aufbläht.
Alternativ könntest Du mit rs.Edit arbeiten. Angenommen Du hast 3 Felder in der Tabelle , die unterschiedliche Werte enthalten plus ein indiziertes Feld mit dem Namen ID und dem Wert 1 :
Dim rs As Recordset
Set rs = CurrentDb.OpenRecordset("SELECT * FROM MyTable WHERE ID = 1")
If rs.RecordCount = 0 Then
rs.AddNew
rs!ID = 1
Else
rs.Edit
End If
rs("Field1") = "Tic"
rs("Field2") = "Tac"
rs("Field3") = "Toe"
rs.UpdateGruß
Johnny

