PDA

Vollständige Version anzeigen : verzwicktes problem


Mamon
17.01.2003, 10:30
Hi,

Erstmal meine Ausgangssituation:

Ich habe 2 Tabellen, eine Abfrage und ein Formular.

tb_Titel besteht aus ID(primärschlüssel) und Titel

tb_Info besteht aus TitelNummer, Exemplare und ErscheinungsDatum


Nun zum Formular:

Oben ist eine ComboBox wo man den Titel auswählen kann.

Dann kommt ein Unterformular mit den Feldern Exemplare und ErscheinungDatum.


Und jetzt das Problem: :(

Wenn schon in den Tabellen werte eingegeben wurden, wird alles richtig angezeigt. Z.B. sind für verschiedene Titel Werte eingegeben, werden auch nur die Daten zu dem, in der ComboBox ausgewählten Titel, gezeigt.
Aber...ich kann im Formular, bzw. dann im Unterformular keine neuen Werte eingeben. Wenn ich im Unterformular unter Exemplare und E-Datum Werte eingebe werden die in tb_Info gespeichert. Nur leider ist in der Tabelle ja auch die Titelnummer.

ALSO wie schaffe ich es, dass dann die Nummer des Titels, der in der Combobox ausgewählt wurde, dann mit in die Tabelle tb_Info gespeichertwird ? :confused:

racoon0506
17.01.2003, 10:37
Wenn ich dich richtig verstanden habe, dann hast du dein Unterformular auf die Abfrage aufgesetzt (?)

Prinzipiell reicht es, für das UF als Datensatzherkunft die Tabelle anzugeben und im HF die Eigenschaften des UF-Steuerelementes "Verknüpft von" und "Verknüpft nach" auf die ID und Titelnummer zu setzen. Die korrekte Auswahl der Daten im UF wird dann von Acc anhand dieser Verknüpfung durchgeführt.

Alternativ kannst du in deinem UF einem Steuerelement "Nach Aktualisierung" auch sagen, dass das Feld Titelnummer mit dem Inhalt der ID aus dem HF gefüllt werden soll.

Mamon
17.01.2003, 10:59
Also zum ersten Vorschlag...

Verstehe ich das richtig, dass ich dabei dann keine Abfrage habe? :confused:


Zum zweiten Punkt:

Das hört sich schon verständlich an, nur wie komm ich an das Feld ran ?

z.B. UF.Feld oder sowas in der art ? :confused:

racoon0506
17.01.2003, 11:06
Zum ersten Punkt: Ja! (Man könnte sagen, dass sich Acc die Abfrage für die Daten aufgrund der Verknüpfung selbst generiert!)

Zum zweiten Punkt: Das Feld für die Titelnummer muss sich auch auf dem UF befinden (und wenn es nur versteckt/nicht sichtbar ist!!!!). von einem weiteren Feld im UF wird es dann mit Me!Meinfeld angesprochen. Um hier aber einen Bezug zu einem Feld im HF zu erhalten, müsste das dann so aussehen:
Me!Titelnummer=Forms!Hauptformular!ID
(vorausgesetzt das Feld Titelnummer existiert im UF und die Bezeichnungen sind korrekt!)

Mamon
17.01.2003, 11:31
Also ich habe mal den ersten vorschlag probiert, aber irgendwie geht das noch nicht so richtig.

Gehen wir das mal schritt für schritt durch:

Du erinnerst dich noch an meine Ausgangsposition, richtig?

1. Abfrage löschen ;)

2. HF Datenherkunft auf tb_Titel???

3. Combox auch???

4. UF Datenherkunft auf tb_info !

5. Im HF bei Uf-Eigenschaften:
Herkunftsobjekt: UF
Verknüpfen von: ID
Verknüpfen nach: TitelNummer

Was ist falsch bzw. was habe ich vergessen? :confused:

racoon0506
17.01.2003, 11:39
Häng doch mal das Formular und die Tabs/abfrage an dein Beitrag an.
Irgendwie komm ich mit der Situations-Beschreibung ins stolpern.

Mamon
17.01.2003, 14:08
Noch was zur 2. Lösung:

Wie und Wo kann ich das Feld im UF unsichtbar machen???

Aquarii
17.01.2003, 14:16
Hallo Mamon,

um ein Feld unsichtbar zu machen, setze in dem Eigenschaftenfeld das Feld "Sichtbar" auf Nein.

per VBA :

SteuerelementName.Visible=False

Mamon
17.01.2003, 14:22
Ja ok. Aber wo genau per vba ??

Im Hauptformular oder im Unterformular und bei welcher aktion ??

Ich habe schon einiges ausprobiert, aber das blöde UF zeigt immer dieses scheiss feld an

Aquarii
17.01.2003, 15:04
Hallo Mamon,

muß es per VBA sein, reicht es nicht, wenn du es manuell ausblendest?

So wie ich die obigen Ausführungen gelesen habe, ist es ja nur wichtig, daß das Feld im Formular ist, aber eben nicht sichtbar. Wie es manuell geht, habe ich oben beschrieben. Solltest Du aber doch eine VBA-Lösung suchen, melde dich bitte noch einmal, mit der Beschreibung, wann es ausgeblendet werden soll.