Anfänger verzweifelt / Variabeln und Formulare

kaichen

Grünschnabel
So, erst mal guten Tag an alle die sich mit meinem Prob beschäftigen....
Mache gerade meine ersten Gehversuche - erst 6 Stunden VB und schon so verzweifelt.

Also, eigentlich kanns so schwer nicht sein:

Würde gerne von einem Formular eine Variable an ein anderes Formular übergeben. Z.B.: ein Name wird eingegeben, Formular schließt sich, neues Formular geht auf, Name wird angezeigt. (irgendwie blöd erklärt...?!)

Habs mit verschiedenen deklerationen versucht wie public etc, global wird mir von VB verboten

Kann doch irgendwie nicht sein, dass die Ausgabe von Daten und Variablen nur in den komischen Standartboxen erfolgen kann.

So, vielleicht weiss jemand Rat (DU verstehst mich)

Danke schon mal im vorraus!
(Sonst schlaf ich so schlecht.)

PS: Beherrsche andere Programmiersprachen (PHP, TP, HTML, C++) aber VB ist für mich auf den ersten Blick irgendwie undurchschaubar unübersichtlich.
 
Hi,

versuch mal folgendes:

1. Form1 hast du ja automatisch bei einem neuen Projekt.

2. in das form1 ne Textbox rein (name: Text1)

3. in das form1 einen Button (name: command1)

4. erstelle ein weiteres Form (Form2)

5. in Form2 kommt ne textbox (name: Text1)

6. doppelklick auf den commandbutton, es erscheint:

Code:
Private Sub Command1_Click()

End Sub

jetzt einfach Variablen (bzw. Werte) übergeben

sprich:

Code:
Private Sub Command1_Click()
' form2 anzeigen
form2.show
' textfeld von form2 wert von form1 text1 übergeben
form2.text1 = text1
End Sub

das wars.

Greets
 
Klar dass dir VB Deklarationen mit Public und Global in der Form verbietet, diese Deklarationen dürfen nur in Modulen angewandt werden. Füge deinem Projekt einfach ein Modul hinzu und deklariere dort deine benötigten Variablen als Public, dann kannst du sie auf allen Forms nutzen.


Der Doc!
 
Hallo zusammen

Ich nutze mal diesen Thread, da mein Wunsch auf diesem aufbaut

Ich möchte auch eine Variable aus einem zu anderen Formular übergeben.

Mit dem Klick in ein Textfeld im Formular 1 öffnet ich ein neues Formular 2 in das die Daten eingegeben werden. dieses Formular 2 ist für alle Textfelder gleich. Die eingegebenen Daten sollten dann an das Textfeld übergeben werden welches auf dem ersten Formular 1 aktiv ist.

Mir fehlt nur der Code für die Übergabe der Daten.

Hoffe Ihr könnt mir auch mit diesem Problem helfen :confused:
 
Visual Basic:
Form1.Textbox2.Text = Form2.Textbox2.text
z.b.
Wobei eine vernünftige Übergabe über eine Funktion und / oder ein Modul vom Programmierstil schöner ist

Grüsse bb
 
Danke brainbyte doch leider hilft dieser code nur bedingt

also ich bastel an einem Formular bei dm Eingaben via Touchscreen erfolgen sollen.

In Multiseiten befinden sich mehrere Textboxen, auf diese der User einfach drückt. Dann öffnet sich eine neues Formular für die Eingabe der Werte, welche dann mit einem OK-Button übertragen werden sollen

Da ich etwa 50 Textfelder habe, wollte ich nicht für jedes ein eigenes neues Eingabeformular machen, sondern nur ein Eingabeformular, welches dann den Wert auf das zuletzt angewähle Textfeld übertragt.

Bisher das was ich habe.

Code im Formular 1 für die Textfelder
Code:
Private Sub Textfeldxyz_Enter()
  Formular2.Show
End Sub

Code für Eingabeformular
Code:
Private Sub OK_Button_Click()
  Uebergabewert = val (Textfeld)
  Formular1.Textfeld1.Text = Uebergabewert
End Sub

So wird der Übergabewert nur an ein bestimmtes angegebenes Textfeld übergeben. Auf diese Weise müsste ich aber eben für jedes Textfeld ein eigens Eingabeformular machen und das wäre dann bei über 50 Textfelder sehr unübersichtlich. Ich hoffe Ihr könnt mir helfen, dass ich mit nur einem Eingabeformular arbeiten kann.
 
Zuletzt bearbeitet:
Je nachdem wie deine Textfelder benannt sind kannst du das auch einfach machen.

also auf der Hauptform hast du 50 Textboxen alle über index ansprechbar.

Im Textfeld enter (oder besser klick ) rufst du deine Unterform auf

Visual Basic:
Private Sub Textfeldxyz_Click( index as Integer ) 
  Call Formular1.Show 
  if Formular1.OK then 
     Textfeldxyz(index).text = Formular1.Uebergabe
 end if 
 call Unload(formular1) 
end Sub

in dem Formular 2 brauchst du nur zwei neue Properties bsp:
Visual Basic:
Public Property get Ok as boolean
     Ok = privatevariabledassOkgeklicktwurde 
end Property

Public Property Get Uebergabe as string
 Uebergabe = me.Uebergabewert
end property

Du solltest dann im Ok Klick nicht unloaden sondern nur ein hide machen.

Grüsse bb
 
Zurück