Werteübergabe von Formular1 an Formular2

dark_mascot

Grünschnabel
Hallo

ich habe eine lange Datei mit Zahlenwerten (8Spalten 12000 Zeilen)
im Formular1 eingelesen.
Über Formular eins lade ich Formular2

Load Form2
Form2.Show

Nun wollte ich das Mehrdimensionale Array irgendwie
an das Formular2 weiter geben, aber ich kenne den
Befehls-Code leider nicht

Wer kann helfen ?

Danke im Voraus
Dark_Mascot.
 
form1:
Code:
public var as integer 'Oder so ;)
form2:
Code:
msgbox form1.var

Die Vars mit "public" deklarieren und per Form1.Variable drauf zugreifen :)
 
*grübel*
So sieht ein Teil des Form1 aus:



Private Sub Testdateieinlesen2_Click()

Dim VariableArray() As String
Dim WerteArray() As String
...
ReDim Preserve WerteArray(Spalten_maxZZ2, I_Zeilen + 1)
' viele Werte werden eingelesen und weiterverarbeitet
...

End Sub


Nun soll Form 2 damit in diesem Teil damit arbeiten:


Private Sub Command1_Click()

'(?)Variable Spalten
'(?)Variable Zeilen

Dim WerteArray2(Spalten,Zeilen) As String

'(?)Array WerteArray()

WerteArray2 = WerteArray()
...
End Sub



=> wie muss zudem der Subs geschrieben sein, damit
er deinen Ansatz zuläßt. Mit "Publik Sub" meckert er
irgend wie rum *grübel*
 
Hi dark_mascot,

Es ist eigentlich kein guter Stil, wenn du Variablen öffentlich deklarierst, damit du von anderen Formularen darauf zugreifen kannst. Laß sie Private und übergib sie mit einer Funktion.

Form1:
1. Mach in deinem ersten Formular ein globales Array im Option Explicit-Teil:
Code:
Option Explicit
Private WerteArray() As String

2. Dann kannst du in deiner Sub das Array füllen:
Code:
Private Sub Testdateieinlesen2_Click()

Dim VariableArray() As String
...
ReDim Preserve WerteArray(Spalten_maxZZ2, I_Zeilen + 1) 
' viele Werte werden eingelesen und weiterverarbeitet
...

End Sub

3. Anschließend erstellst du eine Funktion, mit der du das Array übergeben kannst:
Code:
Public Function get_WerteArray() As String()
get_WerteArray = WerteArray
End Function

Form2:
In deinem zweiten Formular rufst du diese Funktion auf und übernimmst die Werte in ein neues Array:
Code:
Private WerteArray2() As String
WerteArray2 = Form1.get_WerteArray
 
MS-VB will:

"Dim WerteArray() As String" in "Private Sub Testdateieinlesen2_Click() " haben

und akzeptiert das "privat" im Form2 in der Zeile:
"Private WerteArray2() As String" nicht
 
wenn ich nichts verändern würde, außer
" Form1.Arrayname(i,j)" dann sagt er:

Methode oder Mitgliedsdaten nicht gefunden

und wenn ich alles so eingebe wie du es geschrieben hast
und ich dann starten will, dann markiert er mir die stellen
einfach und führt das Programm nicht aus
 
Zuletzt bearbeitet:
@Merlin_78
Naja, hatte das mal so gelernt, aber wie heißt es?
Man lernt nie aus :)

VB mache ich sowieso nur nebenher, aber merk ich mir mal mit dem Stilhinweis :)
 
Zurück