Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

globale variable





Frage

Hallo, habe 2Formulare. ich öffne durch einen Button aus dem 1.Formular das 2.Formular. Im zweiten Formular(form2) ist ein Kombifeld(kombi1) wo Werte ausgesucht werden, dahinter noch ein Textfeld(Text1), wo ich manuell Daten eingeben kann. Diese werden in der Tabelle (Tabelle2) gespeichert. Das Textfeld und das Kombifeld sollen, im 1.Formular (form1) in einem textfeld(text2,text3) stehen, wenn ich form2 schließe. Die Werte aus der 1.Tabelle werden in "Tabelle1" gespeichert. Wie schaffe ich es mit einer globalen Variablen die Daten zu übertragen?? So richtig schnalle ich das nicht. Ich hoffe ihr könnt mir helfen...

Antwort 1 von lleopard

moin bully

du hast es schon gut gemacht:

Form1: Button1 Öffnet Form2

und - wenn du geschickt bist - blendest du Form1 nur aus:

me.visible = false

Dann gibst du deine Daten ein, speicherst die in der Tabelle2
Zitat:
Im zweiten Formular(form2) ist ein Kombifeld(kombi1) wo Werte ausgesucht werden, dahinter noch ein Textfeld(Text1), wo ich manuell Daten eingeben kann.


Nun zum nächsten Punkt:
Zitat:
Das Textfeld und das Kombifeld sollen, im 1.Formular (form1) in einem textfeld(text2,text3) stehen, wenn ich form2 schließe.


Wenn du nur einzelne Werte übergibst, bietet es sich an das so zu machen:

beim Schließen von Form2 eine kleine Ereignisprozedur:

Forms!Form1!text2.Caption = Textfeld1.Value
Forms!Form1!text3.Caption = Textfeld2.Value

Oder bei der gesamten Quelle eine Kombi-Feldes:
dim stg as string, cc as long , i as integer
cc = Kombifeld.columns.Count

for 0 = 1 to cc -1
stg = stg & Kombifeld.columns(i)
next i

Forms!Form1!text2.Caption = stg

man braucht dafür also keine globale Variable.

Da du die Werte aber auch in der Tabelle2 hast,

kannst du in Form1 ja auch ein Kombifeld haben, welches sich auf diese Werte bezieht, dann reicht beim schließen von Form2 und einblenden von Form1 in Form1 das Kombifeld neu berechnen zu lassen

Forms!Form1!Kobifeld.Requery

vielleicht ist ja eine der Lösungen die Richtige für dich...

Gruß leo

Antwort 2 von bully

Danke für die schnelle Antwort,

habe es folgendermaßen gemacht:

habe form2 durch einen button in form1 geöffnet&form1
durch den befehl

me.visible = false

unsichtbar gemacht.
Frage1:Wie mache ich bei schließen von form2, form1 wieder sichtbar??

Dann habe ich folgende zeile eingefügt, beim button schließen=>Ereignis=>beim Klicken

Forms!Form1!text2.Caption = Textfeld1.Value
Forms!Form1!text3.Caption = Textfeld2.Value

Das Textfeld1und2 habe ich an die Felder in Form1 angepasst, aber Fehlermeldung:
"In dem von Ihnen angegebenen Ausdruck wird auf ein Objekt verwiesen, das geschlossen ist oder nicht existiert."

Frage2: Wie bekomm ich das weg???
habe das me.visible =false gelöscht, selber Fehler...

Hast du eine Idee

Antwort 3 von lleopard

hallo bully,

ein bisschen mehr fantasie :-)))

so wie du die Werte von Form2 zu Form1 überträgst, machst du das auch für das einblenden von Form1, nämlich:

Forms!Form1.Visible = true

Dann erst übergibst du die Werte, und dann schließt du Form2:

DoCmd.Close acForm, "Form2"

Gruß leo

Antwort 4 von Bully

Das hat auch einwandfrei funktioniert,

jetzt kommt beim öffnen von Form1 die Fehlermeldung
"Objekt unterstützt Eigenschaft oder Methode nicht".

Es sind alles Textfelder! Daran sollte es nicht liegen...

Idee woran noch??

Antwort 5 von lleopard

Hi Bully,

an irgendeiner Stelle hast du dann einen falschen Verweis.

Entweder .Caption statt .Value oder umgekehrt... :-D

Probier mal folgendes. Wenn er diese meldung anzeigt drückst du Strg + Unterbrechen. Dann sollte er in die Codeansicht wechseln und an der zeile, an der er steht, alles in Gelb anzeigen... Das Feld oder formular oder,,,, sollte dann das falsch hinterlegte sein!

Gruß leo

Antwort 6 von Bully

Das wars gewesen,

habe das caption in value geändert und voila es funktioniert!!

Danke IIeopard!!!

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: