PDA

Vollständige Version anzeigen : Tabelle beim Öffnen eines Formulares durchsuchen


Wolfman
18.01.2003, 17:12
Hallo!

Ich sitze schon längere Zeit vor einem "Problemchen". Und zwar soll beim Ereignis "Beim Doppelklicken" im Textfeld des 1.Formulares ein weiteres Formular geöffnet werden, das die dahinterliegende Tabelle (Kriterium ist der Inhalt eines Feldes der dahinterliegenden Tabelle) durchsucht und übereinstimmende Datensätze anzeigt und bei keiner Übereinstimmung einen neuen Datensatz anlegt. Dabei soll der Wert eines Textfeldes des 1.Formulares in den neuen Datensatz eingetragen werden.

Vielleicht hat irgendjemand ein Beispiel oder ein paar Tips dafür. Wäre schön wenn ihr mir helfen könntet.

thx
Wolfman

Aquarii
18.01.2003, 18:02
Hallo Wolfman,

hier eine Adresse, die Dir die Synchronisation von Formularen beschreibt:

http://www.donkarl.com/ Tipp 4.3

Damit hast Du zumindest mal die Anzeige in Formular 2 von dem in Formular 1 gewählten Datensatz.

Dann prüfst Du, ob Übereinstimmung besteht und kannst bei Nichtüberinstimmung mit

DoCmd.GoToRecord , , acNewRec

einen neuen Datensatz per VBA anlegen.

Ich hoffe, daß hilft Dir weiter.

Wolfman
18.01.2003, 21:16
Hallo Heiko!!!

Danke für Deine schnelle Antwort. Den Tip von Donkarl kenne ich bereits, doch hilft er mir nicht viel weiter da das zweite Formular zu dem Zeitpunkt nicht geöffnet ist. Ich würde das Suchereignis gerne mit dem Öffnen verbinden. Aber das funktioniert halt nicht so wie ich will :(

Aber vielleicht hat ja noch jemand eine Idee????

thx
Wolfman

WalterS
18.01.2003, 21:24
Hallo!
ad1)

Du kann beim Öffnen eines Formulares über docmd.OpenForm ja als Kriterium

"DeinTabeFeld like '*" & me!Doppel_klick_feld & "*'"

eintragen


ad2) wenn du noch vorher mit dCount überprüfst ob hier auch "Treffer" vorliegen kannst du auf Treffer=0 reagieren und dein Formular zum Datenanfügen öffnen und den gewünschten Wert in das Feld schreiben (lassen)

Hoffe, dass diese Gedanken reichen

Wolfman
18.01.2003, 21:34
Hallo Walter!!!

Gott sei Dank bin ich nicht der Einzige mit "Schlafstörungen" :D Danke erstmal für Deine schnelle Antwort!

Hmmm.....da ich sowas noch nicht ausprogrammiert habe, werden mir leider Deine Gedanken etwas zuwenig sein. Vielleicht hättest Du ja ein kleines Beispiel für mich???? :rolleyes:

thx
Wolfman

Wolfman
19.01.2003, 17:50
Hallo Walter!!!!

Dein Lösungsansatz war goldrichtig!!!! Hab´s geschafft!!!! Vielen Dank an alle Beteiligten!!!!

thx
Wolfman

WalterS
19.01.2003, 19:48
Hi!

Für mein Beispiel gehe ich davon aus
Ausgangsformular: form1
Textfeld für Doppelklick:suchwert
2. Formular: form2
Tabelle auf der 2. Formular basiert: Tab2
Feld der Tab2 in dem geprüft werden soll:MeinFeld

im Form1, Feld suchwert, beim Ereignis Doppelklick folgender Code:

dim treffer as Integer
dim frage as string
frage ="MeinFeld like '*" & me!suchwert & "*'"
treffer=nz(dlookup("MeinFeld","Tab2", frage),0) ' Anzahl der Datensätze für die für form2 vorhanden wären

if treffer = 0 then
'hmm noch nicht da
DoCmd.OpenForm "form2", , , , acFormAdd ' form2 für Dateneingabe öffnen
forms!form2!meinfeld=suchwert ' Daten aus suchwert in form2 meinfeld übertragen
DoCmd.Close acForm, "form1" ' wenn das form1 geschlossen werden soll
else
' Hurra es gibt bereits Daten
DoCmd.OpenForm "form2", , , frage
DoCmd.Close acForm, "form1" ' wenn das form1 geschlossen werden soll
end if

Wolfman
20.01.2003, 08:37
Hallo Walter!!!

Genauso hab ich es gemacht!!!! Danke nochmals!!!!!!

cu
Wolfman