![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Inventar
![]() Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552
|
![]() Gibts eine schnelle und einfach Möglichkeit um div. Parameter usw. zwischen Formularen zu übergeben?
Das einzige was mir bis jetzt eingefallen ist, ist ein globales Modul mit div. Funktionen, die in globale Variablen des Moduls schreiben. Und dann rufe ich vom anderen Formular wieder Funktionen des Moduls auf, die mir dann die Parameter wieder zurück geben. Ist total umständlich, und ich denk mir, da muss es doch was besseres und saubereres geben. ![]() Ich dank euch schon mal für eure Ideen. ![]() |
![]() |
![]() |
![]() |
#2 |
Veteran
![]() Registriert seit: 10.01.2001
Beiträge: 478
|
![]() Da ist deine Problemstellung leider ein wenig ungenau. Was genau willst du machen?
Wenn du auf Werte von beiden Formularen aus zugreifen willst, dann sind globale Variablen gar keine schlechte Lösung. Wenn's passt wäre vielleicht sogar eine Kapselung über eine Klasse was schönes. Wenn du aus einem Formular direkt im anderen Formular was machen willst, dann kannst du es ja auch direkt ansprechen (Funktionen, Felder, ...) |
![]() |
![]() |
![]() |
#3 |
Inventar
![]() Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552
|
![]() z.B.
ich hab ein Übersichtsformular mit div. Datensätzen in einem Listefeld. Dann klickt man einen Datensatz an - ich möchte die ID an ein anderes Formular übergeben. Weil in dem Formular was sich dann öffnet möchte ich natürlich gleich den Datensatz anzeigen, der im "Hauptformular" angeklickt wurde. Ich hab mich mal mit Globalen Variablen gespielt (is schon länger her > 1 Jahr) nur damals hat das ganze net so hin gehaut. Globale Variablen def. man ja eigenltich in einem modul mit public dim - oder? Und die Idee mitn Klassenmodul is net sogar supa - das könnt ich mir überlegen. Weil dann mach ich mir eine Klasse, und setz dort meine Parameter die ich übergeben möchte, und im anderen Formular lese ich diese Standardmäßig aus. ![]() |
![]() |
![]() |
![]() |
#4 |
Inventar
![]() Registriert seit: 13.06.2001
Beiträge: 1.830
|
![]() Nur so 'ne blöde Idee:
Die Variablen müssten doch "Kinder" der Formulare sein. Vielleicht kann man sie also mit formularname.variable ansprechen? ![]() Ähnlich müsste es auch mit eingabefeldern funktionieren (formularname.eingabefeldname.value). Keine Ahnung ob das geht (siehe oben). Jak
____________________________________
Join the DNRC | Godwin\'s Law (thx@stona) Documentation is like sex: If it\'s good, it\'s very, very good. If it\'s bad, it\'s better than nothing. \"In theory, theory and practice are the same. In practice, they are not\" (Lawrence Berra) |
![]() |
![]() |
![]() |
#5 |
Veteran
![]() Registriert seit: 10.01.2001
Beiträge: 478
|
![]() @ jak: Absolut korrekt.
@ LLR: Beim Öffnen eines Formulars kann man auch ein Argument übergeben. docmd.OpenForm "frmVourForm",,,,,,"YourArgument" |
![]() |
![]() |
![]() |
#6 | |
Inventar
![]() Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552
|
![]() Zitat:
![]() und die Idee von Jak könnt ich auch aufgreifen. Jetzt denke ich, ich habe einige Ideen von euch bekommen, wie man das ganze recht schnell abwickeln kann. ![]() |
|
![]() |
![]() |
![]() |
#7 |
Inventar
![]() Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552
|
![]() So jetzt steh ich vor dem "Problem" (ich hab schon ein wenig früher gepostet - damit ich dann nicht anstehe...
![]() Hmm, Problem is, wie moch i des jetzt. Die Einfachste Methode, die ich bei dem Fall jetzt gerne Verwendet hätte ist einer Globalen Variable eines Formulars einen Wert zu geben. Das Formular was geöffnet wird heißt Formular2 - die Variable Test (vom Typ String). Der Code dazu schaut folgendermaßen aus: Code:
DoCmd.OpenForm "Formular2", , , , , , "" Formular2.test = "hallo" Mir is das auch ein bißchen zu leicht vor gekommen. ![]() Die andere Idee wäre ja ein Klassenmodul. Nur im Prinzip ists da ja dann so, wie wenn ich das mit einem "normalen" Modul und dortigen globalen Variablen gemacht hätte. Bzw. kann ich überhaupt einer Function/Procedure in einer Klasse Variablen übergeben - weil ich bekomm bei meinem kleinen Testprogramm sowohl bei der Prozedur "schreiben (strVar as string)" als auch bei der Function "Lesen() as string" die Fehlermeldung: "Objektvariable oder With-Blockvariable nicht fest gelegt" Hmm, ich bin noch ein ziemlicher DAU was Klassen betrifft. ![]() BTW: wenn jemand ein paar nette Tutorials od. sonstige Webseiten zum Thema Klassen in VB kennt (damit meine ich was geht, was geht nicht und wie gehts), dann bitte einen Link posten. ![]() |
![]() |
![]() |
![]() |
#8 | |
Inventar
![]() Registriert seit: 08.04.2001
Beiträge: 3.101
|
![]() Zitat:
|
|
![]() |
![]() |
![]() |
#9 |
Inventar
![]() Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552
|
![]() das is der ganze Code vom neuen Formular:
Code:
Option Compare Database Dim test As String Private Sub Befehl0_Click() Dim hallo As testklasse MsgBox test End Sub ![]() Aufgerufen wirds von einem anderen "Pseudo-Formular", names Formular1, auch mit einem Button. ![]() |
![]() |
![]() |
![]() |
#10 | |
Inventar
![]() Registriert seit: 08.04.2001
Beiträge: 3.101
|
![]() Zitat:
Code:
Public test as String |
|
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|