Hallo, allerseits!
Folgendes Problem unter Acc2002: Betroffen ist ein Rechner, der neu installiert wurde; auf anderen Rechnern läuft der Code problemlos. Ich habe folgende Schleife:
Set dbMdb = CurrentDb
Set recExport = dbMdb.OpenRecordset("SELECT IDNRA FROM qryAuftraegeZumExport")
Do While Not recExport.EOF
strDiffOhneTermine = ""
strDiff = Unterschiede(recExport("IDNRA"), "tblVorwoche", strDiffOhneTermine)
If strDiff "" Then
bVorh = False
DoCmd.RunSQL "INSERT INTO tblVorwocheAenderungen (IDNRA, KW, Diff) VALUES (" \_
& Quote(recExport("IDNRA")) & ", " & Quote(varKW) & ", " & Quote(strDiff) & ")"
DoCmd.RunSQL "UPDATE tblVorwocheAenderungen SET Diff=" & Quote(strDiff) \_
& ", DiffOhneTermine=" & Quote(strDiffOhneTermine) \_
& " WHERE IDNRA=" & Quote(recExport("IDNRA")) & " AND KW=" & Quote(varKW)
End If
recExport.MoveNext
Loop
(Verwendung von DAO 3.6) Was welche Funktion wie liefert, ist erst mal unerheblich. Nach dem Durchlaufen der ersten x Datensätze kommt in der Zeile recExport.MoveNext die Fehlermeldung 3071 - „Dieser Ausdruck wurde falsch eingegeben, oder er ist zu komplex, um ausgewertet zu werden. Beispielsweise kann ein numerischer Ausdruck zu viele komplizierte Elemente einthalten. Vereinfachen Sie den Ausdruck, indem Sie Teile des Ausdrucks Variablen zuweisen.“
Kann mir irgendwer erklären, warum diese Meldung erst nach dem Durchlaufen der Schleife kommt? Ich vermute, dieser Fehler tritt auf, nachdem erstmalig der Teil in der If-Bedingung durchgeführt wurde. Irgendwie scheint das massive Probleme mit meinem Recordset-Objekt hervorzurufen.
Die Verweise sind auf den Rechnern gleich gesetzt; ich hoffe doch mal, dass die identischen Dateien verwendet werden.
Any ideas?
Gruß, Manfred