Suchen-Dialog im Array mit Klassenmodul

Suchen-Dialog im Array mit Klassenmodul: Set, Input, Output, Append, FreeFile, KanalNummer, Close
Prozeduren im Formular
Private Sub Form_Load() Laden des Formulars.
pos = 1 Position des Arrays = 1.
imgfoto.Stretch = True
With frmadr Formulargröße mit Minimalwerten.
.Height = 3000
.Width = 3700
End With
End Sub
Private Sub cmdLesenAusDatei_Click()
Dim index%
Dim leseklasse As CLesen Klasse für Lesevorgänge.
Set leseklasse = New CLesen
Call leseklasse.liesmich(index)
Call anzeigen
End Sub
Private Sub SpeichernInDatei_Click()
Dim index%
Dim klasse As CSpeichern Klasse für Speichervorgänge.
Set klasse = New CSpeichern
Call klasse.speichern(index)
Call save
End Sub
Private Sub cmdsuch_Click()
Dim strvergleich As String
Dim index%
Dim suchklasse As CSuchen Klasse für Suchvorgänge.
Set suchklasse = New CSuchen
strvergleich = txtsuch.Text
Call suchklasse.suchen(strvergleich)
End Sub
Private Sub imgfoto_Click()
dialog1.ShowOpen
imgfoto.Picture = LoadPicture(dialog1.FileName)
liste(pos).strbild = dialog1.FileName
Call save
End Sub
Private Sub cboName_Click()
pos = cboName.ListIndex + 1
Call anzeigen
End Sub
Private Sub cmderweitert_Click()
With frmadr
.Height = 4500
.Width = 7000
End With
End Sub
Private Sub cmdLaden_Click()
cmdLaden.Visible = False
End Sub
Private Sub cmdrueck_Click()
If pos < max Then
Call save
pos = pos + 1
Call anzeigen
Else
MsgBox "Dateiende", vbInformation, "Info"
End If
End Sub
Private Sub cmdvor_Click()
If pos > 1 Then
Call save
pos = pos - 1
Call anzeigen
Else
MsgBox "Dateianfang", vbInformation, "Info"
End If
End Sub
Private Sub cmdweniger_Click()
With frmadr
.Height = 3000
.Width = 3700
End With
End Sub
Prozeduren im Modul_1
Public Const max% = 10 Array mit zehn Feldern.
Public Type TPerson Nutzerdefinierter Datentyp.
intnr As Integer Zähler (Kundennummer).
strname As String Nachname.
strvorname As String Vorname.
strtel As String Telefonnummer.
strbild As String Bild, Photo...
End Type
Public liste(1 To max) As TPerson Definieren der Strukturvariablen.
Public pos%
Public Sub save() Speichert Änderungen im Array.
liste(pos).intnr = Val(frmadr.txtnr.Text)
liste(pos).strname = frmadr.cboName.Text
liste(pos).strvorname = frmadr.txtvorname.Text
liste(pos).strtel = frmadr.txttel.Text
End Sub
Public Sub anzeigen() Array füllt Werte in die TextBox.
frmadr.txtnr = Str$(pos)
frmadr.cboName = liste(pos).strname
frmadr.txtvorname = liste(pos).strvorname
frmadr.txttel = liste(pos).strtel
frmadr.imgfoto.Picture = LoadPicture(liste(pos).strbild)
End Sub
Prozeduren im Klassenmodul CLesen
Public Sub liesmich(ByVal lies As Variant) Lesen aus Datei.
Dim knr%, index%
Dim t1$, t2$, t3$, t4$, t5$
Die "FreeFile"-Funktion ermittelt die nächste freie
knr = FreeFile Kanalnummer (File number).
index = 1
frmadr.dialog1.ShowOpen CommonDialog aufrufen.
Open frmadr.dialog1.FileName For Input As #knr Öffnet Textdatei für sequentiellen Lesezugriff.
While Not EOF(knr)
Input #knr, t1, t2, t3, t4, t5
liste(index).intnr = t1 Von der Datei in den Hauptspeicher lesen, um
liste(index).strbild = t2 anschließend in die ComboBox zu schreiben.
liste(index).strname = t3
liste(index).strtel = t4
liste(index).strvorname = t5
frmadr.cboName.AddItem liste(index).strname Laden der ComboBox.
index = index + 1
Wend
Close #knr Textdatei schließen. Die Kanalnummer wird freigegeben.
End Sub
Prozeduren im Klassenmodul CSpeichern
Public Sub speichern(ByVal speich As Variant) Speichern in Datei.
Dim knr%, index%, raus$
knr = FreeFile Die "FreeFile"-Funktion ermittelt die nächste freie
index = 1 Kanalnummer (File number).
On Error Resume Next
frmadr.dialog1.ShowOpen CommonDialog aufrufen.
Open frmadr.dialog1.FileName For Output As #knr Öffnet Textdatei für sequentiellen Schreibzugriff.
For index = 1 To max
raus = liste(index).intnr & "," & liste(index).strbild & "," & liste(index).strname _
& "," & liste(index).strtel & "," & liste(index).strvorname
Print #knr, raus String wird in Textdatei geschrieben.
Next index
Close #knr Textdatei schließen. Die Kanalnummer wird freigegeben.
End Sub
Prozeduren im Klassenmodul CSuchen
Public Sub suchen(ByVal strsu As String) Suchen in Datei.
Dim index As Integer
Dim counter As Integer
Dim gefunden(10) As TPerson
Dim straus As String
counter = 0
index = 1
Call save
While index <= max
If LCase(strsu) Like LCase(liste(index).strname) Or LCase(strsu) Like LCase(liste(index).strvorname) Then
counter = counter + 1
gefunden(counter) = liste(index)
index = index + 1
Else
index = index + 1
End If
Wend
If counter <> 0 Then Ausgabe des gesuchten Strings in einer MsgBox.
For index = 1 To counter
straus = straus & gefunden(index).strname & " " & gefunden(index).strvorname & " " & _
gefunden(index).strtel & " " & vbCrLf
Next index
MsgBox straus, vbInformation, "Suche"
Else
MsgBox "Der Name wurde nicht gefunden", vbInformation, "Suche"
End If
End Sub

Mehr Tipps: Excel-Workbook öffnen, Satz in Zelle schreiben und Workbook wieder schließen

Sponsoren und Investoren

Sponsoren und Investoren sind jederzeit herzlich willkommen!
Wenn Sie die Information(en) auf dieser Seite interessant fanden, freuen wir uns über eine kleine Spende. Empfehlen Sie uns bitte auch in Ihren Netzwerken (z. B. Twitter, Facebook oder Google+). Herzlichen Dank!

Nach oben Sitemap
Impressum & Kontakt