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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 154688
Url: https://administrator.de/forum/formular-auf-abfrage-keine-eingabe-in-textfelder-moeglich-154688.html
Ausgedruckt am: 05.04.2025 um 16:04 Uhr
3 Kommentare
Neuester Kommentar

Sind die Felder vielleicht gesperrt ???
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).
Wenn das Kombinationsfeld korrekt funkt. soll, könnte die Eigenschaftsansicht etwa so aussehen:
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
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).
Wenn das Kombinationsfeld korrekt funkt. soll, könnte die Eigenschaftsansicht etwa so aussehen:
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