Re: Objekte gehen nicht in Collection

From: Paul Rohorzka (dasmusswegpaul.rohorzka_at_softconcept.atdasauch)
Date: 02/11/04


Date: Wed, 11 Feb 2004 09:19:37 GMT

Hallo Philipp!
> Public Property Get WGList() As Collection
> Dim rst As ADODB.Recordset
> Dim Warengruppe As CWarengruppe
> Call GetWG
> Set rst = comm.Execute
> Do Until rst.EOF
> Set Warengruppe = New CWarengruppe
> Warengruppe.WGNummer = rst!WGNummer
> If Warengruppe.Load Then mcolWG.Add _
> Item:=Warengruppe, Key:=rst!WGNummer
> rst.MoveNext
> Loop
> Set WGList = mcolWG
> End Property

Ich sehe hier keinen Fehler, kann mich daher nur
Philipp Stiefels Vermutung anschließen, dass deine
WGNummer eine Zahl ist. Das geht dann natürlich
nicht, weil der Key ein String sein muss.

BTW,
ich verwende auch ein recht intensiv datengebundene
Klassen und Auflistungen. Ich habe dabei als vorteilhaft
erfahren, auch für die Collection eine eigene Klasse
zu schreiben. Solche Klassen treten meist paarweise
auf (CWarengruppe und CWarengruppen). Dann kannst du
nämlich beispielsweise die Item-Methode der Klasse
CWarengruppen derart gestalten, dass nur der eine
erforderlich Datensatz von der Datenbank geladen wird,
was eventuell einen Performancegewinn bedeuten kann.

HTH,
Paul



Relevant Pages

  • Re: Formulareingaben Speichern verhindern
    ... Private c1 As Collection ... Dim subFrmU As Access.SubForm ... Dim strKey As String ... Set c1 = New Collection ...
    (microsoft.public.de.access)
  • Re: Formulareingaben Speichern verhindern
    ... Private c1 As Collection ... Dim subFrmU As Access.SubForm ... Dim strKey As String ... Set c1 = New Collection ...
    (microsoft.public.de.access)
  • Re: Gleicher Bericht mehrmals Qffnen?=
    ... > Ich hab es einmal ohne Collection in einem Modul versucht: ... > Dim rep As Report ... > Set rpt = Nothing ... Damit speicherst du die Referenz auf den Bericht im Bericht selbst. ...
    (microsoft.public.de.access)
  • Re: Gleicher Bericht mehrmals Qffnen?=
    ... Ich hab es einmal ohne Collection in einem Modul versucht: ... Dim rep As Report ... Set rpt = New Report_XYZ ...
    (microsoft.public.de.access)

Loading