PDA

Vollständige Version anzeigen : Tabellen und Access 2003


Hillbilly
20.02.2008, 10:59
Hi,

habe folgendes Problem und such eine elegante Lösung :)

Also, habe ein Formular a mit fünf Feldern: ID, Familienname, Geburtsname, Vorname und Geburtsdatum. Die ID ist Primärschlüssel und "AutoWert". Nun gibt es noch ein anderes Formular b mit x-Feldern zusätzlich aber mit den gleichen fünf Feldern wie in Formular a. In diesen fünf Feldern sollen Automatisch die Daten hereingesetzt werden die in Formular a geschrieben wurden. Geht da was?

Danke, jetzt schon! LG

ebs17
20.02.2008, 11:12
Hallo und willkommen im Forum!

Formular a ist offensichtlich gebunden (an eine Tabelle).

Ein Weg wäre, das zweite Formular ebenfalls an die Tabelle zu binden.

Hillbilly
20.02.2008, 11:22
Danke erstmal, habe nun das Formular b an die Tabelle gekoppelt auf die Formular a basiert. Nun habe Ich das Problem: Wie bekomme ich in dieses Formular b die weiteren Felder hinein? Die Daten aus Formular a sind soweit in Formular b drinne.

ebs17
20.02.2008, 11:38
Wie bekomme ich in dieses Formular b die weiteren Felder hinein?

Welche weiteren Felder? Beschreibe die Zielsetzung für diese!

Ungebundene Felder - einfach Anlegen über Assistenten.
Gebundene Felder: Evtl. Tabellen über Abfrage verknüpfen und diese als Datenherkunft für Formular verwenden

Hillbilly
20.02.2008, 12:05
Also, die anderen zusätzlichen Felder sind alle ungebunden. Nur die ersten fünf Felder sind gebunden mit denen des Formulars (Tabelle) a. Nun habe ich über den formular assistenten ein formular versucht anzulegen das die insgesamten fünf felder der Tabelle a beinhaltet und dann die restlichen Felder der Tabelle b. Nun einen neuen Datensatz in Formula a eingegeben aber in dem dem neuen Formular b tauch dieser nicht auf?

Hillbilly
20.02.2008, 12:13
Habe es nun auch mal probiert wie Du es machen wolltest über "Gebundene Felder: Evtl. Tabellen über Abfrage verknüpfen und diese als Datenherkunft für Formular verwenden" funktioniert aber auch nicht. Der neue Datensatz auch wird nicht angezeigt... Die Abfrage schein sich aber zu aktualisieren, in ihr ist der neue Datensatz vorhanden...

ebs17
20.02.2008, 12:14
Nun einen neuen Datensatz in Formula a eingegeben aber in dem dem neuen Formular b tauch dieser nicht auf?

Zur Anzeige im zweiten Formular muss die Datenherkunft neu abgerufen werden (Requery). Dazu muss aber der neue Datensatz vorher in der Tabelle gespeichert sein - erfolgt automatisch bei Datensatzwechsel, Fokusverlust oder Schließen des Formulars a, alternativ kann das Datensatzspeichern per Befehl veranlasst werden.

Hillbilly
20.02.2008, 12:26
"Dazu muss aber der neue Datensatz vorher in der Tabelle gespeichert sein - erfolgt automatisch bei Datensatzwechsel, Fokusverlust oder Schließen des Formulars a" ist geschehen neuer Datensatz erscheint immer noch nicht in Formular b... "alternativ kann das Datensatzspeichern per Befehl veranlasst werden" und wie?

ebs17
20.02.2008, 12:34
Mit
DoCmd.RunCommand acCmdSaveRecord

Vergiss aber dieses nicht:
Zur Anzeige im zweiten Formular muss die Datenherkunft neu abgerufen werden (Requery).
' in einer geeigneten Prozedur
...
Forms![NameFormularB].Requery
...

Josef P.
20.02.2008, 12:40
Ich erlaube mir eine winzig kleine Anmerkung. ;)
DoCmd.RunCommand acCmdSaveRecord
Ich weiß, DoCmd.RunCommand ist sehr beliebt, trotzdem würde ich in einem Formular FormReferenz.Dirty = False verwenden.
z.B. im Formular-Code:
if me.Dirty then Me.Dirty = False

Hillbilly
20.02.2008, 12:45
Die Codes werden in einem Makro untergebracht oder wie? Habe ab diesem Moment nicht mehr viel Ahnung von Access, leider aber viele komplexe Aufgabe zu erledigen :)

ebs17
20.02.2008, 13:10
Siehe Anlegen von Ereignisprozeduren (http://www.ardiman.de/datenbanken/grundlagen/vba.html#SEC1)

Welches Ereignis (diese gibt es für Steuerelemente und für Formulare/Berichte) geeignet bzw. günstig ist, hängt von der konkreten Anwendung ab.

Die gezeigte Website ist eine gute Grundlagenseite, sehr hilfreich ist auch donkarl (http://www.donkarl.com/). Immer wieder reinschauen, man entdeckt immer wieder Neues (oder schon wieder Vergessenes?).