Kein neuer Datensatz mit Formular möglich

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Big Dady
Beiträge: 5
Registriert: Do, 17.10.2013 15:16

Kein neuer Datensatz mit Formular möglich

Beitrag von Big Dady »

Moin ;)

ich werd gerade Wahnsinnig mit einer kleinen Datenbank die ich erstellt habe.
Diese sollte eigentlich nur ein paar Kontaktdaten für Lieferanten usw. erfassen und gut is.
Tabelle habe ich erstellt, eine Abfrage auch und dann natürlich das Formular, welches die Eingabe/Ausgabe realisieren sollte.

Nun habe ich aber das Problem, dass ich keine neuen Lieferanten-Datensätze in dem Formular anlegen kann.
Gehe ich auf "neuen Datensatz erstellen" dann erscheint zwar eine leere Maske aber ich kann in keines der Eingabefelder etwas eintragen.
Bei bestehenden Datensätzen kann ich jedoch in jedem Feld schreiben.
Im Gegensatz dazu kann ich aber bei den Ansprechparntern ohne weiteres neue Datensätze hinzufügen.

Was mache ich falsch? Ich meine irgendwo gelesen zu haben, dass man bei Formularen, die auf einer Abfrage basieren, keine neuen Datensätze anlegen kann.
Puhh, wenn dem so sein sollte, weiß ich nicht, wie ich dann meine Filter links an der Seite aufbauen sollte. So wie es jetzt ist, funktionieren die ganz gut.

Die Datenbank habe ich mal angehängt, ich hoffe damit kann jemand was anfangen ;)

LG BD

PS: bin für jeden Verbesserungsvorschlag der kleinen Datenbank dankbar ;)
Dateianhänge
Lieferanten leer.odb
kleine Lieferantendatenbank mit Beispieldaten
(22.43 KiB) 150-mal heruntergeladen
RobertG
********
Beiträge: 2070
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Kein neuer Datensatz mit Formular möglich

Beitrag von RobertG »

Hallo Big Dady,

in dem Formular sind gleich mehrere Böcke versteckt.
Die Lieferanten benötigen natürlich für einen neuen Datensatz einen Eintrag im Primärschlüsselfeld. Du gibt aber den Primärschlüssel über ein Hauptformular an das Subformular für die Lieferanten weiter. Da kommt also keine Möglichkeit an, einen AutoWert zu füllen.
Der Lieferant müsste also im Hauptformular in der Liste eingetragen werden. Das ging dann erst einmal nicht, weil das Feld schreibgeschützt war. Schutz entfernt, ging immer noch nicht. Dann habe ich einen Blick auf die Abfrage geworfen. Da war nicht das Feld "Lieferanten" als Grundlage von "Name" angesetzt, sondern über

Code: Alles auswählen

CASE WHEN "Kurzbezeichnung" IS NOT NULL THEN "Kurzbezeichnung" ELSE "Firmenname" END AS "Name"
eine mögliche Kombination von zwei verschiedene Feldern. So kann Base natürlich nicht erkennen, in welches Feld denn nun ein neuer Name geschrieben werden kann. Die Abfrage scheint zuerst einmal editierbar, ist es aber schließlich doch nicht. Das kannst Du direkt in der Abfrage prüfen.

Gruß

Robert
Big Dady
Beiträge: 5
Registriert: Do, 17.10.2013 15:16

Re: Kein neuer Datensatz mit Formular möglich

Beitrag von Big Dady »

Hallo Robert,

vielen Dank für deine Antwort.

wie meinst du das, dass im Formular gleich mehrere Blöcke versteckt sind ?
Es gibt Unterformulare, ja ... aber die sind doch nicht versteckt ?

Das Ganze ist etwas verschachtelt aufgebaut.
Zur Erklärung: bei jedem Lieferanten gibt man den Firmennamen komplett ein "123Firma GmbH & Co. KG", kann aber der Übersichtlichkeits halber noch einen Kurznamen vergeben "123Firma".
Die Abfrage dient dann dazu, die Namen der Firmen übersichtlich anzuzeigen. Also wenn kein Kurzname angegeben wurde, dann wird halt der komplette Firmenname stattdessen angezeigt.
Alle Firmennamen sollen dann links in der Tabelle alphabetisch geordnet angezeigt werden, sodass der Nutze eine Art Schnellauswahl hat.
Mit den Optionsbuttons kann man dann noch nach bestimmten Anfangsbuchstaben filtern.
Dies ist alles noch das Hauptformular "Übersicht" mit der besagten Abfrage als Datenquelle.

Wenn der Nutzer dann eine Firma in der Liste anklickt, wird die ID an das Unterformular "Lieferanten" übergeben. Dort ist auch die komplette Lieferantentabelle als Datenquelle hinterlegt.
Und wiederum ein Unterformular dessen zeigt dann die ganzen Ansprechpartner in dieser Firma an.

Also wird die ID von Hauptformular an das Lieferantenformular weitergegen. Vom Lieferantenformular dann weiter an das Ansprechpartnerformular.

Mein Verständnisproblem liegt darin, weshalb ich zwar neue Ansprechpartner anlegen kann, jedoch aber keine neuen Lieferanten, es baut doch das eine wie das andere auf ein übergeordnetes Formular auf.

...................

Ja bei der Abfrage konnte man keine neuen Datensätze direkt hinzufügen, da dann die Fehlermeldung kam, dass keine Daten geändert wurden.
Ist klar, denn das Feld "ID" ist ein Autowert und das Feld "Name" existiert ja in der Tabelle nicht, da es ein zusammengesetztes Feld ist.
Ich habe jetzt in die Abfrage noch das Feld "Firmenname" mit hinzgefügt (siehe Anhang), dann kann man in der Abfrage auch direkt Daten eingeben. Aber im Formular geht es immer noch nicht grrrrrr.

Gruß BD
Dateianhänge
Lieferanten leer.odb
Abfrage geändert
(22.36 KiB) 134-mal heruntergeladen
RobertG
********
Beiträge: 2070
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Kein neuer Datensatz mit Formular möglich

Beitrag von RobertG »

Hallo Big Dady,

ich meinte nicht "Blöcke", sondern "Böcke", die da versteckt sind. Du gibst vom Hauptformular eine ID für Lieferanten an das Unterformular Lieferanten weiter. Wie soll das Unterformular dann zu einer neuen ID kommen?

Du musst im Hauptformular die Lieferanten auch unterbringen. Ich habe das jetzt einmal (etwas unschön) gemacht - dann gehts: Eingabe in dem Tabellenkontrollfeld macht neue Eingabe in der Untertabelle auch möglich.

Gruß

Robert
Dateianhänge
Lieferanten leer(1).odb
(21.99 KiB) 163-mal heruntergeladen
Big Dady
Beiträge: 5
Registriert: Do, 17.10.2013 15:16

Re: Kein neuer Datensatz mit Formular möglich

Beitrag von Big Dady »

Hallo Robert,

ups, "Böcke" ... wer lesen kann is klar im Vorteil, sry ;)
So langsam kapier ich auch, was du meinst, die ID is szs. ne Einbahnstraße. Die wird zwar an das Unterformular übergeben um den neuen Datensatz anzuzeigen, jedoch existiert für das Unterformular nur diese eine übergebene ID und es hat keine Möglichkeit neue ID für einen neuen Datensatz zu erzeugen. Es ist ja auch nur dafür da, um den aktuellen Datensatz anzuzeigen.
Darf man echt keinem erzählen, dass ich den Mist mal irgendwann gelernt habe im Abi... man merkt man wir älter ... *autsch*.

Danke für deine Lösung, das is zwar noch ganz das was ich mir vorstelle aber ich denke nun kann ich erstmal weiter basteln.
Ich meld mich dann nochmal, wenn ich was brauchbares erzeugt habe. Evtl. kann die DB ja dann noch jmd anderes als Vorlage gebrauchen.

Gruß BD
Big Dady
Beiträge: 5
Registriert: Do, 17.10.2013 15:16

Re: Kein neuer Datensatz mit Formular möglich

Beitrag von Big Dady »

So, hab mich dann ma wieder an die Datenbank gesetzt.

Manchmal sind die einfachen Lösungen doch die besten.
Ähnlich wie in deiner Änderung habe ich nun die ID mit anzeigen lassen und verzichte auf die Abfrage zwischen drin.
Außerdem habe ich eine Unterformularebene entfernt und die Filterung zusammen mit den Eingabemasken auf das Hauptformular gelegt.
Jezt funktioniert es so, wie ich mir das vorstelle.
Vielen Dank für die Hilfe.
Anbei die leere Datenbank zur freien Verwendung.

LG BD
Dateianhänge
Lieferanten - leer.odb
leere Lieferantendatenbank
(20.37 KiB) 232-mal heruntergeladen
Antworten