PDA

Vollständige Version anzeigen : Neuen Datensatz anlegen?


Ohnesorg
20.06.2001, 10:40
Hallo, ich bin es mal wieder.
Tell me why, I don't like Monday... Ja, heute ist Mittwoch, aber am Montag bekam ich von meiner Ex-Chefin den Auftrag.

Innerhalb von 8 Wochen werden ca 1000 Datensätze angelegt, die leer sind.

Wie das kommt? So:
Sucht ein User in der Datenbank setzt er einen Filter. (Aber das weiß er nicht!) ;o)

damit der Anwender einen Überblick über die Suchergebnisse erhält, bekommt er zunächst über ein anderes Formular eine Suchergebnisliste. Aus dieser kann er auswählen, zu welchem Kunde er direkt springen kann.
So weit, so gut.
Wird jetzt aber kein Datensatz gefunden, bekommt er die Meldung, dass er etwas anders suchen soll und die Suchergebnisliste öffnet sich erst garnicht.
Nun habe ich aber das Problem, dass das Ausgabeformular, welches auch gleichzeitig die Suchmaske ist, dennoch einen Filter setzt und - weil kein Datensatz gefunden wurde - einen neuen Datensatz anlegt.
Darf Access aber nicht!!!
Schalte ich die Eigenschaft zum einfügen neuer Datensätze aus, wird der User panisch, da alle Datenfelder verschwinden...

Ich habe es ausprobiert und die Reaktion meiner Kolleginnen und Kollegen war alles andere, als erfreut. Panik pur, also!

Wie kann ich Access dennoch daran hindern einen neuen Datensatz anzulegen und den Filter zu entfernen? Am Besten über die Funktion der Suchergebnisliste, die ja bereits abfragt, ob ein Datensatz gefunden wurde.

Ich weiß... die Frage ist wirklich blöd, aber ich renne vor Verzweiflung schon fast gegen die Wand.

Ich danke schoneinmal für Eure Hilfe...

Stema
20.06.2001, 12:51
Hallo Ohnesorg,
wenn Du keinen DS findest, könntest Du den Filter mit Me.FilterOn False ausschalten, sonst Me.FilterOn True einschalten. Oder Formularname statt Me.
Ich weiß nicht, ob da ein = rein muß.

Ohnesorg
20.06.2001, 14:05
Hallo Stema,

Danke zunächst einmal, doch das mit dem Filter ausschalten ist klar.

Das Problem besteht Hauptsächlich darin:
1)
Ich kann dem Formular, welches als Such- und Ausgabemaske fungiert, nicht die Eigenschaft wegnehmen neue Datensätze aufnehmen zu dürfen.

2)
Das Formular, welches zunächst eine Suchergebnisliste ausgibt hat die Eigenschaft nicht Datensätze aufzunehmen, da es lediglich ein Ausgabeformular ist, welches dem User die Navigation in seinen Suchergebnissen erleichtern soll.

3)
Der Filter wird sowohl in der Suchergebnisliste, als auch in der Suchmaske gesetzt. Es besteht - meiner Kenntnis nach nicht die Möglichkeit von Formular A aus einen Filter in Formular B zu aktivieren bzw. deaktivieren.

Schade, dass die einfachsten Gedankengänge meist ein riesigies Problem darstellen.

Gibt es nicht die Möglichkeit zu sagen
"Bei Fokus auf einen Datensatz prüfe ob Datensatz ein neu angelegter Datensatz ist. Wenn ja, neu erstellten Datensatz löschen, Fehlermeldung ausgeben und Suchmaske in Standby Modus zurücksetzen."

Klar... das ist SEHR umgangssprachlich... aber was soll ich den tun?????

holgii
20.06.2001, 14:28
Hi Ohnesorg,

kannst Du nicht abchecken, wann Dein Filter keine Datensätze liefert, und dann mit einem "Form.undo" den ggf. neu erstellten DS rückgängig machen ?

Gruß
holgii

Stema
20.06.2001, 14:38
---
Form_DeinSuchformular.FilterOn FALSE
---

Ohnesorg
20.06.2001, 15:04
Ich Danke Euch! Nein im Ernst!! Ich danke Euch wirklich.

@ Holgii:
Das Abchecken, wann der Filter keine Daten liefert bringt nichts. Wie denn auch? Entweder sehe ich die Lösung vor lauter Einfachheit nicht oder Microsoft hat dafür ebenfalls keine.

@ Stema:
Leider funktioniert die Sache von wegen FormName.FilterOn = False nicht. Ob das an A97 liegt? Keine Ahnung. Jedenfalls bringt der mir kein Ergebnis. Der Filter ist dennoch aktiv.

Hier die (fast) Ultimative Lösung:
Sieht zwar aus wie die Sandburg eines dreijährigen Kindes, bringt aber auch die Lösung... :D

Mehrere Datenfelder, die eigentlich einen Wert beinhalten sollten, werden auf NULL abgefragt. Sind alle NULL-Abfragen True, also wahr, wird der Datensatz gnadenlosest aus der Tabelle geworfen... ;)

Ist zwar sehr Notdürftig, aber dat funzt, wa!?

Ich danke Euch jedenfalls für Eure Hilfe. :)