# VBA Hilfe für ein Formular



## tomMeier (6. Februar 2007)

Ich möchte ein Formular erstellen.

Hier wird unter anderem der Einzelpreis und die Anzahl eingegeben.
(Das ist ja auch kein Problem den Preis nun zu berechnen)

Nun möchte ich aber, dass viele Artikel eigegeben werden, somit erhalte ich ja x Preise.
Ich suche nun eine Lösung, um die Summe der Preise zu ermitteln, wobei nicht vorher festgelegt wird, wie viele Artikel (somit Preise) eingegeben werden.

Über jede Hilfe wäre ich sehr dankbar........

LG
Tom


----------



## Jacka (8. Februar 2007)

Hi!

Meinst du in Access?

Du kannst in deine Tabelle ein Ja/Nein Feld einfügen.
Wenn du dann die Tabelle als Formular darstellst, wird eine Checkbox angezeigt.
Erstelle nun z.B. eine Textbox im Formularfuß und gebe entsprechenden Code 
unter Eigenschaften/Daten/Steuerelementinhalt ein:

```
=Summe(Wenn([Auswahl]=-1;[Preis];0))
```
Auswahl ist in diesem Fall die Checkbox, Preis Spaltenname für Preis.

"Quick and dirty"-Variante, aber vielleicht hilfts ja schon!

Viele Grüße,
Jacka


----------



## DrSoong (8. Februar 2007)

Nachdem du VBA und Formular sagst, schießt mir der Begriff *Array* durch den Kopf. Ich weiß nicht, wie du die Produkte dann im Formular darstellst bzw. wie du sie speicherst, wenn du die Namen und Preise in ein Array einliest, ist es dann egal, wie viele es sind.

Spezifier dein Problem noch genauer bzw. gib mir Infos zum Aufbau und Arbeitsweise des Formulars.


Der Doc!


----------



## tomMeier (8. Februar 2007)

Hallo Doc,

genau! Und das ist mein Problem.
Ich weis nicht wie ich ein Array in VB erstelle, einlesen und auslesen kann.

Die Daten sollen in einem Array gespeichert werden. Kenne ich nur aus C. Da kann ich das Array Kundendaten (i) nennen. Dann per Schleife einlesen und wieder auslesen.

LG
Tom


----------



## DrSoong (8. Februar 2007)

Im Prinzip ist die Handhabung in VBA gleich, du musst erst dein Array dimensionieren und kannst dann in einer Schleife die Daten einlesen. Ein kurzer Code:

```
Dim Kundendaten(100) As String 'Bereich 0 bis 100
'Das Einlesen:
For cnt = LBound(Kundendaten())  To UBound(Kundendaten()) 'Array von vorne bis hinten durchgehen
 Kundendaten(cnt) = "Kunde " & cnt 'Ich befülls hier mit irgendwelchen Daten
Next cnt
'Das Auslesen:
For cnt = LBound(Kundendaten())  To UBound(Kundendaten()) 'Array von vorne bis hinten durchgehen
 Kunde = Kundendaten(cnt) 'Hier lese ist die jeweiligen Daten aus
Next cnt
```
Das Einlesen kann natürlich in der Schleife durch das Auslesen einer Datei erfolgen, beim Auslesen kannst du z.B. eine ListBox befüllen.


Der Doc!


----------



## tomMeier (8. Februar 2007)

Hallo Doc,

ich bekomme immer Fehlermeldungen.....
Hier mal mein Code:


```
Private Sub cmdPositionberechnen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdPositionberechnen.Click
        Dim Artikelname As String
        Dim Einzelpreis, Stueckzahl, Summe As Double

        Artikelname = CStr(txtArtikelname.Text)
        Einzelpreis = CDbl(txtEinzelpreis.Text)
        Stueckzahl = CDbl(txtStueckzahl.Text)


        Summe = Einzelpreis * Stueckzahl

        txtAuflistung.Text = String.Format("{0:F40}{1,40:C}{2,40}{3,30:C}", Artikelname, Einzelpreis, Stueckzahl, Summe)

        
    End Sub
```

Die Daten Artikelname, Einzelpreis, Stückzahl und Summe sollen dann in einem Textfeld erscheinen. Die einfache Variante (siehe Code)  funktioniert ja. Nur mit dem Array komme ich nicht klar.

LG
Tom


----------



## DrSoong (8. Februar 2007)

Ich stell mit hier die Frage, wo du da ein Array hast, ich find nämlich keines.

Was ich sehe ist, dass du 4 Variablen hast, denen du Werte zuweist, einmal damit rechest und das ganze dann in eine Textbox ausgibst. Welchen Fehler kriegst du denn ausgegeben?


Der Doc!

PS: Verwende für Codeteile die eigenen BBCodes, in deinem Fall für VB.NET *[.vbnet]* und *[./vbnet]* (ohne den Punkt).


----------



## tomMeier (8. Februar 2007)

Hallo Doc,

ich suche nach einer Lösung, wo ich diese Werte jeweils im Array + Schleife in der Auflistungstextbox darstellen kann. Wenn ich Arrays verwende bekomme ich diverse Fehlermeldungen, weil ich einfach nicht weis, wie ich sie hier einsetzen soll.

In der Auflistungstextbox soll folgendes erscheinen:

Artikelname, Einzelpreis, Stueckzahl, Summe
Artikelname, Einzelpreis, Stueckzahl, Summe
Artikelname, Einzelpreis, Stueckzahl, Summe
Artikelname, Einzelpreis, Stueckzahl, Summe

x mal

LG
Tom


----------

