Access-o-Mania

Access-Forum => Access Programmierung => Thema gestartet von: galaxy am Juli 22, 2021, 13:55:53

Titel: Fehler ADO berechnetes Feld Satz neu anlegen AddNew VBA
Beitrag von: galaxy am Juli 22, 2021, 13:55:53
Hallo

ich habe eine Tabelle mit einem berechnetem Feld. Ausdruck: Wenn(IstNull([Feld]);Falsch;Wahr).

Wenn ich per VBA und ADO eine Neuanlage starte (AddNew) wird ein Fehler (-2147467259 / ohne Fehlertext) ausgelöst.
Ist das berechnete Feld nicht vorhanden, gibt es keinen Fehler und die Neuanlage funktioniert.

Was gibt es für eine Lösung (außer das berechnete Feld zu entfernen)?

Titel: Re: Fehler ADO berechnetes Feld Satz neu anlegen AddNew VBA
Beitrag von: PhilS am Juli 22, 2021, 14:08:05
Zitat von: galaxy am Juli 22, 2021, 13:55:53ich habe eine Tabelle mit einem berechnetem Feld. Ausdruck: Wenn(IstNull([Feld]);Falsch;Wahr).
Probier doch mal den folgenden Ausdruck:
Iif([Feld] IS NULL;0;-1)
Titel: Re: Fehler ADO berechnetes Feld Satz neu anlegen AddNew VBA
Beitrag von: galaxy am Juli 22, 2021, 14:21:02
leider keine Verbesserung - immer noch Fehler
Wenn(IstNull([Feld]);0;-1)
Titel: Re: Fehler ADO berechnetes Feld Satz neu anlegen AddNew VBA
Beitrag von: PhilS am Juli 22, 2021, 14:26:43
Zitat von: galaxy am Juli 22, 2021, 14:21:02leider keine Verbesserung - immer noch Fehler
Wenn(IstNull([Feld]);0;-1)
Hast du jetzt meinen Ausdruck genommen, oder den hier dargestellten?
Im Zweifelsfall kopiere bitte exakt den Ausdruck von mir und ändere bei Bedarf höchstens den Feldnamen.
(Ich habe gerade noch eine falsche/überflüssige Klammer aus meinen ursprünglichem Posting entfernt.)
Titel: Re: Fehler ADO berechnetes Feld Satz neu anlegen AddNew VBA
Beitrag von: galaxy am Juli 22, 2021, 14:42:27
Wenn([DatErledigt] Ist Null;0;-1)
aber trotzdem Fehler

Es scheint wohl ein grundsätzliches Problem zu sein.
Wenn ich eine ganz simple Berechnung als Ausdruck (=1+2) definiere, funktioniert AddNew auch nicht.
Titel: Re: Fehler ADO berechnetes Feld Satz neu anlegen AddNew VBA
Beitrag von: galaxy am Juli 22, 2021, 14:52:02
Bin jetzt auf einen Zusammenhang gestoßen.
Wenn die Tabelle ohne Index geöffnet wird, dann erfolgt kein Fehler.
Könnte dann auch an Cursor liegen. Mit Index akzeptiert Open nur Server. Ohne Index wird Client verwendet.

Nachtrag: habe den Code so angepasst, dass bei einer Neuanlage die Tabelle ohne Index und als Cursor Client geöffnet wird.
Jetzt klappt es.
Titel: Re: Fehler ADO berechnetes Feld Satz neu anlegen AddNew VBA
Beitrag von: markus888 am Juli 23, 2021, 07:56:45
Zitat von: galaxy am Juli 22, 2021, 14:52:02Mit Index akzeptiert Open nur Server. Ohne Index wird Client verwendet.

Wenn du mit dem Datenbank Index arbeitest, muss logischerweise einer Server Cursor aktiv sein.
Aber warum verwendest du überhaupt die Index Property um Werte anzufügen?

Bei einem Client Cursor kann man mittels Field.Optimize Eigenschaft am Client einen Index erstellen.
Ob das spürbar ist, ist eine andere Frage, denn so große Datenmengen sollte man gar nicht in ein Recordset laden.