Supportnet / Forum / Datenbanken
automatische Übernahme einer Zahl in ein Formular
Frage
Hallo,
meine Datenbank soll für die Aufnahme verschiedener Gegenstände aus vorgeschichtlichen Bestattungen verwendet werden. Dabei ist es wichtig, daß die Grabnummer - (die auch mit dem Primärschlüssel in der Haupttabelle versehen ist) bei allen Formularen pro Datensatz dieselbe ist. Das funktioniert wenn ich in das Hauptformular verschiedene Unterformulare
einfüge, die alle auf einmal sichtbar sind.
Um die Formulareingabe übersichtlicher zu gestalten, möchte ich aber Buttons einfügen, die nicht nur ein weiteres Formular öffnen, sondern automatisch die Grabnummer des Hauptformulars übernehmen und anzeigen, ohne daß sie nocheinmal eingegeben werden muß.
Wie funktioniert das?
Achim
Antwort 1 von El Bobbele
Moin Achim!
Wenn du das Formular öffnest mit DoCmd.OpenForm, dann kannst du das sich öffnende Formular filtern über den Parameter "WhereCondition". Gib dort eine SQL WHERE-Bedingung an, ohne das Schlüsselwort WHERE, z.B.
Gruss
El Bobbele
Wenn du das Formular öffnest mit DoCmd.OpenForm, dann kannst du das sich öffnende Formular filtern über den Parameter "WhereCondition". Gib dort eine SQL WHERE-Bedingung an, ohne das Schlüsselwort WHERE, z.B.
DoCmd.OpenForm FormName:="MeinFormular", WhereCondition:="[Grabnummer]=" & Me.GrabnummerGruss
El Bobbele
Antwort 2 von letoatreides
Hallöle El Bobbele,
vielen Dank für deine Hilfe, leider funktioniert es aber immer noch nicht. Wahrscheinlich fehlt
der Bezug zum Hauptformular.
Mein Hauptformular heißt "Bazzano-code" , darin gebe ich für jeden neuen Datensatz eine neunstellige Zahl - die Grabnummer (diese habe ich "code-grabnummer" genannt) - ein z.B. 110100690 - .
Durch einen Button gelange ich in mein Unterformular, welches "Waffen" heißt. Dieses Unterformular soll nun die Grabnummer ("code-grabnummer") aus "Bazzano-code" automatisch übernehmen und anzeigen.
Das heißt, daß im Formular "Waffen" in dem Feld Grabnummer (hier heißt es "grabnummer-laufnummer") z.B. die 110100690 angezeigt werden sollte.
Wenn ich das Unterformular "Waffen" einfach in das Formular "Bazzano-code" einfüge, funktioniert es,
nur nicht mit der Button-Variante.
Kannst du mir noch einen Tip geben?
Achim
vielen Dank für deine Hilfe, leider funktioniert es aber immer noch nicht. Wahrscheinlich fehlt
der Bezug zum Hauptformular.
Mein Hauptformular heißt "Bazzano-code" , darin gebe ich für jeden neuen Datensatz eine neunstellige Zahl - die Grabnummer (diese habe ich "code-grabnummer" genannt) - ein z.B. 110100690 - .
Durch einen Button gelange ich in mein Unterformular, welches "Waffen" heißt. Dieses Unterformular soll nun die Grabnummer ("code-grabnummer") aus "Bazzano-code" automatisch übernehmen und anzeigen.
Das heißt, daß im Formular "Waffen" in dem Feld Grabnummer (hier heißt es "grabnummer-laufnummer") z.B. die 110100690 angezeigt werden sollte.
Wenn ich das Unterformular "Waffen" einfach in das Formular "Bazzano-code" einfüge, funktioniert es,
nur nicht mit der Button-Variante.
Kannst du mir noch einen Tip geben?
Achim
Antwort 3 von El Bobbele
Hallöle Achim!
Jetzt habe ich den Durchblick, was du hast und was du offensichtlich brauchst. Du kannst alle deine Unterformulare auf dem üblichen Weg mit dem Hauptformular verknüpfen (Stichwort Verknüpfen von/Verknüpfen nach). Dadurch wird bekanntlich sichergestellt, dass jedes Unterformular nur die Datensätze darstellt, die zum Hauptformular gehören.
Der Kniff an der ganzen Sache ist, dass du die Unterformulare allesamt in einem Registersteuerelement platzierst (siehe Werkzeugleiste), d.h. jedes Unterformular bekommt dort seine eigene Seite. Beim Klick auf die Tabs schaltet Access ganz automatisch die nicht benötigten Unterformulare unsichtbar und das aktuelle wird sichtbar. Damit wären die von dir angestrebten Buttons überflüssig.
Gruss
El Bobbele
Jetzt habe ich den Durchblick, was du hast und was du offensichtlich brauchst. Du kannst alle deine Unterformulare auf dem üblichen Weg mit dem Hauptformular verknüpfen (Stichwort Verknüpfen von/Verknüpfen nach). Dadurch wird bekanntlich sichergestellt, dass jedes Unterformular nur die Datensätze darstellt, die zum Hauptformular gehören.
Der Kniff an der ganzen Sache ist, dass du die Unterformulare allesamt in einem Registersteuerelement platzierst (siehe Werkzeugleiste), d.h. jedes Unterformular bekommt dort seine eigene Seite. Beim Klick auf die Tabs schaltet Access ganz automatisch die nicht benötigten Unterformulare unsichtbar und das aktuelle wird sichtbar. Damit wären die von dir angestrebten Buttons überflüssig.
Gruss
El Bobbele
Antwort 4 von letoatreides
Hallo,
die Antworten kommen ja vielleicht schnell. Schön!
Genauso wie du sie beschrieben hast sieht zur Zeit
meine Datenbank aus, aber es ist schrecklich unübersichtlich, weil ich ca. 20 Formulare, 30 Tabellen und mehr benötige und somit werden die Unterformulare in den Formularen viel zu viele.
Daher die Idee mit dem Button. Es muß doch einen Befehl entweder in sql oder vielleicht sogar in den Makros geben, der dieses ausführt.
Zur Verdeutlichung: ich möchte ca. 1500 Gräber aufnehmen, von denen jedes ca. 10 Gegenstände aufweist, die wiederum in verschiedene Typen gegliedert werden müssen. Für jede Objektgruppe habe ich ein Formular erstellt - und das summiert sich schnell.
Vielen vielen Dank für die Hilfe!
Achim
die Antworten kommen ja vielleicht schnell. Schön!
Genauso wie du sie beschrieben hast sieht zur Zeit
meine Datenbank aus, aber es ist schrecklich unübersichtlich, weil ich ca. 20 Formulare, 30 Tabellen und mehr benötige und somit werden die Unterformulare in den Formularen viel zu viele.
Daher die Idee mit dem Button. Es muß doch einen Befehl entweder in sql oder vielleicht sogar in den Makros geben, der dieses ausführt.
Zur Verdeutlichung: ich möchte ca. 1500 Gräber aufnehmen, von denen jedes ca. 10 Gegenstände aufweist, die wiederum in verschiedene Typen gegliedert werden müssen. Für jede Objektgruppe habe ich ein Formular erstellt - und das summiert sich schnell.
Vielen vielen Dank für die Hilfe!
Achim
Antwort 5 von El Bobbele
Hi,
soviele Unterformulare sollten es dann doch nicht sein, da hast du schon recht. Dann musst du doch deine Formulare mittels DoCmd.OpenForm. Befasse dich intensiver damit und ziehe ggfs. die Access-Hilfe heran, denn das ist der mit Abstand sinnvollste Weg.
Deine Zeile müsste ungefähr so aussehen:
DoCmd.OpenForm FormName:="FormularName", View:=acNormal, WhereCondition:="[code-grabnummer]=" & Me![code-grabnummer], WindowMode:=acDialog
Gruss
El Bobbele
soviele Unterformulare sollten es dann doch nicht sein, da hast du schon recht. Dann musst du doch deine Formulare mittels DoCmd.OpenForm. Befasse dich intensiver damit und ziehe ggfs. die Access-Hilfe heran, denn das ist der mit Abstand sinnvollste Weg.
Deine Zeile müsste ungefähr so aussehen:
DoCmd.OpenForm FormName:="FormularName", View:=acNormal, WhereCondition:="[code-grabnummer]=" & Me![code-grabnummer], WindowMode:=acDialog
Gruss
El Bobbele
Antwort 6 von Armin
hi,
kannst du nicht alle 20 uf´s unsichtbar (!) auf dem hf plazieren, verknüpfen wie von elbobbele beschrieben, und dann einfach nur die sichtbar machen, in denen die eingeben oder von denen du daten lesen willst ?
die auswahl des sichtbaren uf würde ich über ein auswahlfeld machen (bei geeigneter gruppierung und ein bisschen optiktuning auch für 20 uf geeignet).
gruss armin
kannst du nicht alle 20 uf´s unsichtbar (!) auf dem hf plazieren, verknüpfen wie von elbobbele beschrieben, und dann einfach nur die sichtbar machen, in denen die eingeben oder von denen du daten lesen willst ?
die auswahl des sichtbaren uf würde ich über ein auswahlfeld machen (bei geeigneter gruppierung und ein bisschen optiktuning auch für 20 uf geeignet).
gruss armin
Antwort 7 von letoatreides
Hi,
danke für eure Tips. Ich werde noch ein bißl tüfteln, um die Optik zu verfeinern.
Nettes Forum!
Liebe Grüße
Achim
danke für eure Tips. Ich werde noch ein bißl tüfteln, um die Optik zu verfeinern.
Nettes Forum!
Liebe Grüße
Achim

