vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Re: Richtige Verwendung einer Klasse 
Autor: guenni255
Datum: 04.11.14 16:49

Hallo Manfred
Danke das Du dir weiterhin Gedanken gemacht hast. Aber die oben beschriebene Modifizierung ist nicht Gut für mich da dort Datensätze gelöscht werden
Public Sub remove(ByVal Index As Integer)
   Dim it As clsBestLeistungen
   Set it = Bestlcol(Index)
   If Not it.hs = "" Then mGesamtHS = mGesamtHS - 1
   Bestlcol.remove Index
End Sub
Ich bin aber auf Grund Deiner Hilfe schon wesentlich weiter gekommen.
So sieht meine Collection nun aus:

Option Explicit
Private mGesamtHS As String
Private mGesamtSG As String
Private mGesamtHF As String
Public Property Get GesamtHS() As String  
GesamtHS = mGesamtHS
End Property
 
Public Property Let GesamtHS(ByVal MyArgument As String) 
mGesamtHS = MyArgument
End Property
 
Public Property Get GesamtSG() As String  
GesamtSG = mGesamtSG
End Property
Public Property Let GesamtSG(ByVal MyArgument As String) 
mGesamtSG = MyArgument
End Property
 
Public Property Get GesamtHF() As String   
GesamtHF = mGesamtHF
End Property
Public Property Let GesamtHF(ByVal MyArgument As String) 
mGesamtHF = MyArgument
End Property
 
Public Property Get item(ByVal Index As Long) As clsBestleistungen
Set item = BestlCol(Index)
End Property
Public Property Get count() As Long
count = BestlCol.count
End Property
Public Sub remove(ByVal Index As Integer)
BestlCol.remove Index
End Sub
 
Private Sub Class_Initialize()
Set BestlCol = New Collection
End Sub
 
Private Sub Class_Terminate()
Set BestlCol = Nothing
End Sub
 
Public Function Add(Datum As Date, Name As String, HS As String, SG As String, _
  HF As String) As clsBestleistungen
Dim DSnew As clsBestleistungen
Set DSnew = New clsBestleistungen
With DSnew
.Datum = Datum
.Name = Name
.HS = HS
.SG = SG
.HF = HF
End With
BestlCol.Add DSnew
Set Add = DSnew
Set DSnew = Nothing
End Function
Public Sub Bestl_einlesen(Spi As String)
strDSQ = "SELECT * FROM Bestleistungen WHERE Datum=" & Format(Spieltg, _
  "\#yyyy\-mm\-dd\#") & " AND Name='" & Spi & "'"
Set rsdat = DB.OpenRecordset(strDSQ, dbOpenDynaset)
With rsdat
If .EOF = True And .BOF = True Then Call Meldanz("Bisher keine Bestleistungen" & _
  "für " & Chr(13) & Spi, 3000): NewBestl.Add Spieltg, Spi, 0, 0, 0: GoTo 10
.MoveFirst
Do While Not .EOF
    NewBestl.Add Spieltg, Spi, .Fields(3), .Fields(4), .Fields(5)
    .MoveNext
Loop
.Close
End With
10 Call ermitteln_GesamtHS
Call ermitteln_GesamtSG
Call ermitteln_GesamtHF
Call Bestl_anzeigen
 
Set rsdat = Nothing
End Sub
Private Function ermitteln_GesamtHF()
GesamtHF = ""
Dim it As clsBestleistungen
For i = 1 To BestlCol.count
    Set it = BestlCol(i)
    If Not it.HF = "0" Then
        If GesamtHF = "" Then GesamtHF = GesamtHF + NewBestl.item(i).HF: GoTo 10
        If GesamtHF <> "" Then GesamtHF = GesamtHF + "," + NewBestl.item(i).HF
10  End If
Next
End Function
Private Function ermitteln_GesamtSG()
GesamtSG = ""
Dim it As clsBestleistungen
For i = 1 To BestlCol.count
    Set it = BestlCol(i)
    If Not it.SG = "0" Then
        If GesamtSG = "" Then GesamtSG = GesamtSG + NewBestl.item(i).SG: GoTo 10
        If GesamtSG <> "" Then GesamtSG = GesamtSG + "," + NewBestl.item(i).SG
10  End If
Next
End Function
Private Function ermitteln_GesamtHS()
GesamtHS = ""
Dim it As clsBestleistungen
Dim c As Integer: c = 0
For i = 1 To BestlCol.count
    Set it = BestlCol(i)
    If Not it.HS = "0" Then c = c + 1
Next
GesamtHS = CStr(c)
End Function
Private Function Bestl_anzeigen()
With frmBestl
.lblBestlSpieler.Caption = NewBestl.item(1).Name
If NewBestl.GesamtHS <> "0" Then .txtHS.Text = NewBestl.GesamtHS Else _
  .txtHS.Text = ""
If NewBestl.GesamtSG <> "0" Then .txtSG.Text = NewBestl.GesamtSG Else _
.txtSG.Text = ""
If NewBestl.GesamtHF <> "0" Then .txtHFAnzeige.Text = NewBestl.GesamtHF Else _
.txtHFAnzeige.Text = ""
End With
End Function
und es läuft wie es laufen soll.
Es ging mir hauptsächlich darum wie Funktionen in der Klasse bzw. Collection eingesetzt werden und das hast du mir super gezeigt.

Nochmals meine Dank dafür

Gruß Günni
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Richtige Verwendung einer Klasse2.198guenni25503.11.14 12:48
Re: Richtige Verwendung einer Klasse1.483Manfred X04.11.14 06:25
Re: Richtige Verwendung einer Klasse1.383guenni25504.11.14 09:14
Re: Richtige Verwendung einer Klasse1.377Manfred X04.11.14 10:28
Re: Richtige Verwendung einer Klasse1.428guenni25504.11.14 16:49
Re: Richtige Verwendung einer Klasse1.321Manfred X04.11.14 17:24
Re: Richtige Verwendung einer Klasse1.362guenni25504.11.14 17:44
Re: Richtige Verwendung einer Klasse1.340Manfred X04.11.14 18:00
Re: Richtige Verwendung einer Klasse1.320guenni25504.11.14 18:19
Re: Richtige Verwendung einer Klasse1.397Manfred X04.11.14 18:53
Re: Richtige Verwendung einer Klasse1.351guenni25504.11.14 23:12
Re: Richtige Verwendung einer Klasse1.379Manfred X05.11.14 07:35
Re: Richtige Verwendung einer Klasse1.345guenni25505.11.14 16:28

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel