Backend bläht sich wegen Memofeld auf

28/10/2009 - 09:34 von Dietmar Thesing | Report spam
Hallo liebe Access-FreundInnen,

ich arbeite mit A02, Win XP Prof und ja, den gestrigen/vorgestrigen
Thread "Backend blàht sich auf" habe ich interessiert gelesen, aber
keine Lösung darin gefunden.

Aus meinem Frontend heraus exportiere ich Daten in ein Backend.
Dabei öffne ich je zu schreibendem Datensatz eine zuvor ebenfalls per
Code erzeugte Textdatei, packe die Daten in eine Variable und tue sie
in ein Memofeld. Das Ganze per DAO-Recordset, Code-Ausschnitt ist
unten angehàngt.

Es handelt sich um ca. 160 Datensàtze, die Textdateien
zusammengenommen sind etwa 2 MB, das BE hat ohne Daten 250 KB.
Das Problem: Nach Einfügen der 163 Datensàtze hat das BE über 280 MB
und Komprimieren bringt keine Verringerung.

Wegen http://support.microsoft.com/kb/q239527/ habe ich die
Datensatzsperrung vollkommen ausgeschaltet. Uni-Kompression ist auf
ja.

Hier
http://groups.google.de/group/micro...7537?hl=de
fand ich den Hinweis, dass es an den Memofeldern liegen könnte, aber
auch ohne Lösung. Bei mir ist auch nur ein User (ich) beteiligt.

Leere ich das Memofeld in allen Datensàtzen oder lasse sie beim Import
aus, hat die Datenbank nach dem Komprimieren 280 KB.
Öffne ich die Textdateien von Hand und stecke sie per Copy und Paste
in das Memofeld habe ich bei 20 Textdateien (auf der Platte 320 KB)
hinterher eine Größe des Backends von etwa 700 KB. Der sichtbare
Inhalt von Memofeld und Textdatei sind aber bei Copy und Paste und
beim Einlesen in die Variable per VBA völlig gleich. Es handelt sich
ja auch nur um reinen Text, einen Ausschnitt habe ich unten angefügt.

Was also mache ich beim Einlesen in die Variable falsch? Habt ihr
alternative Ideen zum Einlesen der Textdateien?

Gruß und schon mal Dank für die Hilfe
Dietmar


Hier der Code-Ausschnitt:
*******************************
'Datei in Variable einlesen
Dim Textzeile As String
Dim strLangtext As String
Dim i As Integer
i = FreeFile
' Datei öffnen.
Open "D:\Schmeckt\Webrezepte\Temp\" & _
lgRezID & ".txt" For Input As #i
' Schleife bis Dateiende.
Do While Not EOF(1)
' Zeile in Variable einlesen.
Line Input #i, Textzeile
strLangtext = strLangtext & Textzeile & vbCrLf
Loop
Close #i ' Datei schließen.

'Daten in die Galerie-TAbelle einfügen
rsGal.AddNew
'Kategorie (FID als Text)
rsGal!Galeriename = strFarbe
...
rsGal!Kurztext = strRezNamOrig
rsGal!Langtext = strLangtext
rsGal!Speicherdatum = Now()
rsGal.Update
rsGal.Requery
rsGal.MoveFirst
******************************************

Ausschnitt aus der Textdatei:

<H1>
Linsenfrikadellen mit Möhren in Kàsesoße
</H1>

<H2>
Linsenfrikadellen
</H2>
<p>Ich brate die Linsenfrikadellen immer erst alle hell vor, und lege
sie dann noch mal kurz vor dem Servieren für jede Seite eine Minute in
die Pfanne.</p>
<TABLE class=T01VorlageHg style="BORDER-COLLAPSE: collapse"
width="100%"> <TBODY>
<TR>
<TD class=T01Vorlage vAlign=top align=left width="10%">
250 g
</TD>
<TD class=T01Vorlage vAlign=top align=left width="20%">
Linsen
</TD>
<TD class=T01Vorlage vAlign=top align=left width="20%">
</TD>
<TD class=T01Vorlage vAlign=top align=left width="50%">
 

Lesen sie die antworten

#1 Oliver Straub
28/10/2009 - 11:22 | Warnen spam
Hi,

i = FreeFile
' Datei öffnen.
Open "D:\Schmeckt\Webrezepte\Temp\" & _
lgRezID & ".txt" For Input As #i
' Schleife bis Dateiende.

Do While Not EOF(1)



hier sollte wohl i stehen, nicht 1.
Ob das was ausmacht?

...
rsGal!Kurztext = strRezNamOrig
rsGal!Langtext = strLangtext
rsGal!Speicherdatum = Now()
rsGal.Update

rsGal.Requery
rsGal.MoveFirst



Die zwei Zeilen sind auf jeden Fall überflüssig.
(Die Jet funzt 100%, da muss man nie murxen:-)


Gruss
Oliver

Ähnliche fragen