VB6: Namen mehrerer Textfelder gleichzeitig auslesen

  • #1
B

BenC

Guest
Hallo,

ich habe auf einer Form 3 Textfelder (txtAN, txtCC, txtBCC).
Mit dem Code werden alle Textfelder auf den Inhalt hin untersucht und der Name des Textfeldes wird ausgelesen und in
einer Label ausgegeben. Wenn ich im jeweils einem Textfeld einen Wert stehen habe, dann klappt alles sehr gut.
Sobald ich z.B. in den Textfeldern txtAN und gleichzeitig txtCC stehen habe, dann wird nur der Name des Textfeldes txtAN angezeigt und nicht
beide gemeinsam (txtANtxtCC).
Frage:
Wie müsste der Code geändert werden, damit der Name (siehe BoxName) der Textfelder erscheint, in denen ein Wert steht (z.B. txtCCtxtBCC usw.)?

'Hier ein Ausschnitt meines Codes

Dim iAN As Integer, iCC As Integer, iBCC As Integer
Dim spAN() As String, spCC() As String, spBCC() As String
Private Textfelder As New Collection

spAN = Split(Me.txtAN.Text, ;)
spCC = Split(Me.txtCC.Text, ;)
spBCC = Split(Me.txtBCC.Text, ;)

'Befüllen der Collection
With Textfelder
.Add txtAN
.Add txtCC
.Add txtBCC
End With


Dim C As Control
Dim BoxName As String
BoxName =
For Each C In Textfelder
If C.Text <> And InStr(1, C.Text, @) > 0 Then
BoxName = C.Name
Exit For
End If
Next
lbltest.Caption = BoxName


Danke für alle Tipps im Voraus.

mfg
BenC
 
  • #2
Hi

Versuch es mal so:
Code:
Dim C As Control
Dim BoxName As String
BoxName = 
For Each C In Textfelder
If C.Text <>  And InStr(1, C.Text, @) > 0 Then
BoxName = BoxName & C.Name
End If
Next
lbltest.Caption = BoxName

Mfg Alexander
 
  • #3
Hallo,

Jetzt klappt zwar alles, aber nur wenn ich in den jweiligen Textfeldern NUR einen Eintrag stehen habe. Ich habe aber noch etwas vergessen zu erwähnen.
Ich verwende bei mir ja die Ausdrücke,
spAN = Split(Me.txtAN.Text, ;)
spCC = Split(Me.txtCC.Text, ;)
spBCC = Split(Me.txtBCC.Text, ;)

da in den Textfeldern mehr als einen Eintrag stehen könnte (z.B. [email protected]; [email protected]; [email protected];).

Hättest Du eine Idee, wie den bisherigen Code mit oben erwähnten Code kombinieren kann, damit in allen Fällen (ein Wert oder mehrere Werte) auch alles klappt.

Dim iAN As Integer, iCC As Integer, iBCC As Integer
Dim spAN() As String, spCC() As String, spBCC() As String
Private Textfelder As New Collection

spAN = Split(Me.txtAN.Text, ;)
spCC = Split(Me.txtCC.Text, ;)
spBCC = Split(Me.txtBCC.Text, ;)

'Befüllen der Collection
With Textfelder
.Add txtAN
.Add txtCC
.Add txtBCC
End With

Dim C As Control
Dim BoxName As String
BoxName =
For Each C In Textfelder
If C.Text <> And InStr(1, C.Text, @) > 0 Then
BoxName = BoxName & C.Name
End If
Next
lbltest.Caption = BoxName

Danke für alle Tipps im Voraus.

mfg
BenC


Alexander16 schrieb:
Hi

Versuch es mal so:
Code:
Dim C As Control
Dim BoxName As String
BoxName = 
For Each C In Textfelder
If C.Text <>  And InStr(1, C.Text, @) > 0 Then
BoxName = BoxName & C.Name
End If
Next
lbltest.Caption = BoxName

Mfg Alexander
 
  • #4
Hi

Das geht so:
Code:
Dim iAN As Integer, iCC As Integer, iBCC As Integer
Dim spAN() As String, spCC() As String, spBCC() As String
Private Textfelder As New Collection

If InStr(1, Me.txtAN.Text, ;, vbTextCompare) > 0 Then
    spAN = Split(Me.txtAN.Text, ;)
Else
    ReDim spAN(0) As String
    spAN(0) = Me.txtAN.Text
End If
If InStr(1, Me.txtCC.Text, ;, vbTextCompare) > 0 Then
    spCC = Split(Me.txtCC.Text, ;)
Else
    ReDim spCC(0) As String
    spCC(0) = Me.txtCC.Text
End If
If InStr(1, Me.txtBCC.Text, ;, vbTextCompare) > 0 Then
    spBCC = Split(Me.txtBCC.Text, ;)
Else
    ReDim spBCC(0) As String
    spBCC(0) = Me.txtBCC.Text
End If

'Befüllen der Collection
With Textfelder
.Add txtAN
.Add txtCC
.Add txtBCC
End With

Dim C As Control
Dim BoxName As String
BoxName = 
For Each C In Textfelder
' Mit vbTextCompare ist es schneller
If C.Text <>  And InStr(1, C.Text, @, vbTextCompare) > 0 Then
BoxName = BoxName & C.Name
End If
Next
lbltest.Caption = BoxName

Mfg Alexander
 
Thema:

VB6: Namen mehrerer Textfelder gleichzeitig auslesen

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.963
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben