raistah
Goto Top

Formular auf Abfrage - keine Eingabe in Textfelder möglich

Hallo, Ihr Wissenden

noch eine Frage zu Access: ich habe eine Tabelle, darauf basirend eine Abfrage, die die Datensätze nur sortiert. Auf diese Abfrage baut ein einfaches Formular auf. Nun stelle ich erstaunt fest, daß ich in die Textfelder keine Einträge machen kann - mein Rechner meldet überall auf Tastendruck nur einen Ton. Im Kombinationsfeld dagegen kann ich Einträge machen, in die Tabelle direkt auch. Warum, wie lässt sich das lösen?

Vielen Dank für Hilfe,
Rainer

Content-Key: 154688

Url: https://administrator.de/contentid/154688

Printed on: April 26, 2024 at 06:04 o'clock

Mitglied: 86263
86263 Nov 09, 2010 at 16:43:43 (UTC)
Goto Top
Sind die Felder vielleicht gesperrt ???
Member: RaiStah
RaiStah Nov 09, 2010 at 23:49:09 (UTC)
Goto Top
Danke für die Rückfrage. Das Thema beginnt, mich zu verwirren...

Meine 'Datenbank' ist noch sehr simpel aufgebaut:
1 Tabelle Artikel, enthält ein paar Felder, davon drei vom Typ 'Zahl', die die n-Seite von Verknüpfungen darstellen
3 Tabellen (ich nenne sie Kategorietabellen) mit nur je zwei Feldern: jeweils ein Primärschlüssel (Typ 'AutoWert') und eines mit dem Inhalt. Diese Felder stellen die 1-Seiten der o.g. Verknüpfungen dar.

Darauf aufbauend einige Abfragen, davon für jede der 3 Kategorietabellen je eine Sortierabfrage und dann für die Artikeltabelle diverse Abfragen, die ich als Ausgangsbasis für Formulare verwenden wollte.

Der Effekt ist, daß ein Formular, das nur auf der Tabelle Artikel aufbaut, problemlos funktioniert wie gewünscht: es zeigt alle Datensätze an, ich kann neue Datensätze eintragen, etc. Wenn ich ein Formular auf eine Abfrage aufsetze, die nur die Felder der Tabelle Artikel enthält, ist das auch problemlos.

Wenn ich dagegen eine Abfrage verwende, die neben denen der Artikeltabelle auch noch die Felder der Kategorietabellen enthält - ich wollte in der Abfrage halt nicht die Zahlen der Tabelle Artikel sehen, die auf die jeweiligen Kategorietabellen verweisen, sondern die dort mit diesen Zahlen verknüpften Einträge - kann ich weder im Formular, noch in der Abfrage Einträge in die Felder der Artikeltabelle machen, sondern ernte jedesmal nur eiN 'Piep' meines Rechners.

Warum kann ich in einer Abfrage, die wie oben genannt sowohl die Felder der Artikeltabelle, als auch die der damit verknüpften Kategorietabellen enthält, keine Einträge machen? Was sperrt da?

Danke für Hilfe,
Rainer
Member: Guenni
Guenni Nov 10, 2010 at 16:31:45 (UTC)
Goto Top
Hi RaiStah,

sperren tut da nichts.

Lass dir die Abfrage, die auf mehreren Tabellen basiert, in der SQL-Ansicht zeigen.

Dort wirst du den Abfragebefehl sehen, der mit select beginnt. Darauf folgen

die Feldnamen die angezeigt werden sollen und die Tabellen, in der die Werte stehen,

die durch die Feldnamen angesprochen werden. Zum Schluß erfolgt eine Verknüpfung der

Schlüsselfelder. Das Ergebnis einer Abfrage aus mehreren Tabellen, also das, was du

entweder in der Abfrage selber oder im Formular siehst, ist somit in der Form nicht

in der Datenbank vorhanden, sondern nur eine Ansicht (auch View genannt) aus einem

logischem Produkt. Man könnte auch sagen, diese Tabelle, die du in der Abfrage siehst,

gibt es in Wirklichkeit nicht. Und diese Ansicht muß ja zwangsläufig schreibgeschützt sein.


Eine Eingabe bzw. Änderung ist vom Prinzip her auch eine Datenbankabfrage, die sich

aber nur auf eine Tabelle beziehen darf. Wenn du also ein Eingabeformular entwickelst, so ist

das Formular an die Tabelle zu binden, in der die Eingaben gemacht werden. Wenn, wie in deinem

Fall, Fremdschlüssel aus anderen Tabellen eingegeben werden, ist es natürlich hilfreich, (ein)

Kombinationsfeld(er) zu verwenden (Wie du es bereits gemacht hast, siehe dein Beitrag).

18e86fb14e72015ad2a4a4d864818c94

Wenn das Kombinationsfeld korrekt funkt. soll, könnte die Eigenschaftsansicht etwa so aussehen:

ad5c9de9dba88e0eea5f5bfb25a6ee0c

Wobei die Eigenschaften folg. bedeuten:

Steuerelementinhalt: Ein Feld der Tabelle (an Formular gebunden), in das geschrieben wird.

Datensatzherkunft: In diesem Fall eine SQL-Abfrage auf eine andere Tabelle.

Herkunftstyp: "Steht da".

Gebundene Spalte: Enthält den Wert aus der Quelltabelle, der in die Zieltabelle geschrieben wird.

In dem Fall ist es der Wert aus der ersten Spalte (1) aus der Abfrage (siehe Datensatzherkunft: select [tabelle1].[id], . . .)

der Quelltabelle, der in die Zieltabelle geschrieben wird.


Mein Tipp:

Access zu benutzen, um eine "einfache" Anwendung zu erstellen, ist sicherlich O.K., wenn es auch "Gegner" dieses Programms gibt,

teils auch nicht unbegründet. Wenn du weiterhin Anwendungen in Access erstellen willst, würde ich dir empfehlen, dass du dir

zusätzlich Kenntnisse in SQL und VB-Script aneignest. Denn auch mit VB-Modulen gibt es Möglichkeiten, Aufgaben zu lösen,

die dir Access mit Mausklicks nicht bietet bzw. mit entspr. Kenntnissen in SQL hast du dann Möglichkeiten, die von Access generierten

SQL-Anweisungen zu analysieren und/oder eigene Abfragen zu erstellen.


Gruß
Günni