Bearbeiten von Tabellendaten

ReinyBen

Benutzer
Beiträge
13
Moin,

muss Tabelledaten bearbeiten, d.h. habe eine Abfrage und muss Zeile für Zeile mir vorherigem Eintrag abgleichen/editieren usw.
Habe es über Recordset gelöst, d.h. schnappe mir nacheinander die Zeilen (Edit, Update usw.). Nun ist die Tabelle gewachsen und ich erhalte Error 3047 - Datensatz zu groß. Dieser darf offenbar nur schlappe 4000 Zeichen enthalten.

Ist mein Ansatz vllt völlig falsch, d.h. der Zwischenschritt über den Recordset? Soll ich vielmehr über SQL Befehle direkt die Abfragen und ggf. Änderungen setzen?

DANKE & Happy New Year,

Reinhard
 
Werbung:
Die Fehlermeldung betrifft anscheinend die max. Größe eines Rekords. Wobei mir nicht so klar ist, was genau das Limit ist. Was auch an Deiner Formulierung liegt. "Nun ist die Tabelle gewachsen.."
Kommst Du an das Dateigrößenlimit? (2Gb) Tabellen sollten wachsen dürfen.
Die wurschteligen Erklärungen zu dem Fehler sind auch seltsam.
Wenn maximale Datensatzgröße 4000 Zeichen ist, dann scheint es ja trotzdem so zu sein, dass es nicht um die Deklaration geht, sondern um den "befüllten" Teil, also sagen wir Nettogröße.
Anhand der Erklärungen und der Gegebenheiten ist u.U. nicht das vorgehen problematisch, sondern schlicht das Datenvolumen.

Also bleibt Dir nichts anderes, als die Tabelle zu splitten und/oder auf die Nutzung von BLOB Feldern auszuweichen, die lt. Erklärung offenbar anders gespeichert werden.

Bei so einem Mist könntest Du auch darüber nachdenken, direkt das System zu wechseln. Und falls das vom Aufwand / Nutzen her völlig undenkbar ist, wenigstens die Datenhaltung aus Access auszulagern. (Klingt vielleicht doof bzw. widersprüchlich, geht aber ganz gut und wäre ein erster Schritt, solche und viele andere Probleme loszuwerden)
 
Tabelle hat ca. 15 Spalten und beim Zugriff auf ca. die 200. Zeile kommt die Meldung. Das klingt somit nach dem 4000-Zeichen limit. Ist es tatsächlich so, dass ein DAO.Recordset in Access auf 4k Bytes begrenzt ist?

Wenn dem so ist, dann habe ich vllt das Konzept Recordset nicht kapiert: Ist es überhaupt die richtige Methode, Datensätze zu berechnen, mit Folgezeile zu vergleichen, zu editieren usw.?
SQL ist grandios um Abfragen/Ausgaben/Sortierungen vorzunehmen, aber macht man auch o.g. Verarbeitungen damit?
 
Werbung:
Sowas macht man mit Window Functions. Damit hast Du die Möglichkeit wie in einem Spreadsheet auf vorige / nächste Datensätze zuzugreifen. Und auch vieles mehr. Ob das mit Access geht, weiß ich nicht.
Ich kann mich nicht mehr genau erinnern, wie ein recordset arbeitet. Vielleicht hilft es, nur eines lesened zu öffnen und mit einem CMD / Execute das Update auf irgendeinen anderen Datensatz zu machen.
Jedenfalls ist die Vorstellung, dass sich das Limit von 4000 durch die sequentielle Verarbeitung mehrerer Datensätze nacheinander ergibt sehr irritierend. Vielleicht machst Du es auch einfach falsch, fehlendes commit/post/Append.. oder was auch immer.
Es kann auch kein reines VBA Limit sein, zumindest ist mir nicht bekannt, dass solche Limits existieren, wenn man Access nur mit eingebundenen Tabellen eines fremden DB Servers verwendet.
 
Zurück
Oben