do until rs.eof AND notexist=0
if rs("hpi_no") = rows(0) then
(...)
notexist=0
end if
rs.movenext
loop
Ich kenne mich mit Visual Basic (ist es doch?) zwar nicht aus, aber in solch hinterhältigen Fällen ist es immer sinnvoll, am Anfang der Schleife die betreffenden Variablen auszugeben (hier: rs.eof und notexist), damit man wenigstens schonmal weiß, ob es an den Variablen oder an der Prüfung liegt.
In der do-Bedingung würde ich es mit ein paar freundlichen Klammern probieren.
Weiterhin fällt mir auf, daß Du notexist möglicherweise nicht initialisiert hast. In der obigen Schleife läuft das im Moment darauf hinaus, daß das Programm gar nicht in die Schleife reinlaufen kann, da nicht initialisierte Variablen in der Regel 0 oder false sind.
Und -nachdem ich die halbe Seite wahrscheinlich umsonst getippt habe- zu guter Letzt fällt mir auf, daß Du in der Bedingung den falschen Operator benutzt hast. Wenn die Schleife beim Dateiende und ebenfalls (wohlgemerkt: und _ebenfalls_, also bei einem von beiden, nicht bei beiden gleichzeitig) bei notexist=0 enden soll, dann brauchst Du ein OR und kein AND.
Vielleicht hilft's ja.
Gruß,
soenk.e