Frank aus Ulm: Denkfehler oder?

Beitrag lesen

Hi, hallo

in den mir bekannten Fällen, entsteht dieser Fehler, wenn man versucht einen DBNULL auszuwerten (gegen einen nicht DBNull).

Das Problem liegt an der Schleifenbedingung, weil beide Bereiche ausgewertet werden und nicht nur der erste.

wenn ich dein Problem richtig erkenne, solltest du mit SHAPED Recordsets besser fahren.

sql = "SHAPE {SELECT iID,feld1,feld2 FROM table1 ORDER BY feld3 ASC} APPEND ({SELECT oID,refID,feldX1,feldX2 FROM table2} RELATE iID to refID) as subset"

set ORs = conn.execute(sql)

DO until ORs.eof
   .....
   set SubRs = ORs("subset").Value
   DO until SubRs.eof
      ..............
      SubRs.MoveNext
   Loop
   set SubRs = nothing
   ORs.MoveNext
loop

damit kann man schöne geschachtelte Recordsets bauen ... geht imho nur via MS' OLEDB (JET und SQL).

cnnStr = "Provider=MSDataShape;Data Provider=Microsoft.Jet.OleDB.4.0;Data Source=...;"

der connection string muß etwas umgebaut werden, siehe ebendiges Muster.

Sehr viel weitere Infos findest du im MSDN.

Tschau, tschüß,
Frank