MS Access 2013Clearing Wörterbuch Von Ram
Mein Ziel ist es, eine Zebrastreifen-Tabelle zu erstellen, aber ich kann nicht auf einem Memo/Langtextfeld verbinden und mit einer Aktualisierungsabfrage mit einer where-Anweisung anstelle der Join ist ineffizient und hängt, also habe ich beschlossen, ein Wörterbuch zu bauen füllen sie, und füllen Sie die nächste Spalte durch Nachschlagen der ID, Problem ist ich in "Überlauf" Probleme laufen - meine Vermutung ist eine RAM-Begrenzung. Meine Arbeit bestand darin, so viel wie möglich in das Wörterbuch zu füllen, so viel wie möglich aus dieser Untermenge zu füllen, das Wörterbuch zu löschen und es erneut mit der nächsten Wiederholung zu füllen. Nachdem jedoch der erste Stapel ausgeführt und aus dem Wörterbuch gelöscht wurde, erhalte ich den Overflow-Fehler beim nächsten Schlüssel/Wert-Paar, das ich in das "leere" Wörterbuch einfügen möchte - und ich weiß nicht warum.
Ideale JOIN SQL-Anweisung (mit langen Text/Memo Ausgabe):
UPDATE [ID Crosswalk] INNER JOIN [1 Clean Reasons] ON [ID Crosswalk].Reason = [1 Clean Reasons].Reason SET [ID Crosswalk].CR_ID = [1 Clean Reasons].[Reason];
WHERE SQL-Anweisung (nicht funktionierenden/hängend):
UPDATE [ID Crosswalk], [1 Clean Reasons] SET [ID Crosswalk].CR_ID = [1 Clean Reasons].[Reason]
WHERE ((([ID Crosswalk].Reason)=[1 Clean Reasons].[Reason]));
VBA Wörterbuch Solution (Überlauffehler):
Dim CRtbl as DAO.Recordset
Dim CRDictNT as Dictionary
Set CRDictNT = New Dictionary
'Fill CR Dict
CRtbl.MoveFirst
On Error GoTo PrintCR
Do Until CRtbl.EOF
Do Until CRtbl.EOF
CRDictNT.Add CStr(CRtbl("Reason")), CInt(CRtbl("CR_ID")) 'CR_ID by Reason
CRtbl.MoveNext
Loop
PrintCR:
CWIDtbl.MoveFirst
Do Until CWIDtbl.EOF
If Not IsEmpty(CRDictNT(CWIDtbl("Reason"))) Then
CWIDtbl("CR_ID") = CRDictNT(CWIDtbl("Reason"))
End If
CWIDtbl.MoveNext
Loop
CRDictNT.RemoveAll 'these three lines are
Set CRDictNT = Nothing 'my attempts at clearing
Set CRDictNT = New Dictionary 'the item from RAM.
Loop
CRtbl.Close
Warum benötigen Sie an erster Stelle ein Memo-/Langtextfeld? –