"Laufzeitfehler '3709'", wenn Sie eine große Textmenge in ein Memo-Feld eingeben, das einen Index in Access enthält
Moderat: Erfordert grundlegende Makro-, Programmier- und Interoperabilitätskenntnisse.
Dieser Artikel bezieht sich auf eine Microsoft Access-Datenbankdatei (.MDB) oder eine Microsoft Access-Datenbankdatei (.ACCDB).
Symptome
Wenn Sie in einer Microsoft Access-Datenbank ein Memo-Feld erstellen, das einen Index enthält, oder wenn Sie einen Feldnamen erstellen, der den automatisch indizierten Text enthält, können Sie den Text, der mehr als 3450 Zeichen enthält, nicht in das Feld eingeben. Wenn Sie versuchen, mehr Text in das Feld einzugeben oder versuchen, die vorhandenen Daten zu bearbeiten, wird die folgende Fehlermeldung angezeigt:
Run-time error '3709':
The search key not found in any record.
Lösung
Wenn Sie eine große Textmenge in das Feld Memo eingeben müssen, löschen Sie den Index für das Feld Memo. Führen Sie hierzu die folgenden Schritte aus:
Öffnen Sie die Tabelle mit dem Feld Memo in der Entwurfsansicht.
Klicken Sie im Menü Ansicht auf Indizes.
Hinweis Klicken Sie in Microsoft Office Access 2007 auf die Registerkarte Entwurf, und klicken Sie dann in der Gruppe Einblenden/Ausblenden auf Indizes.
Klicken Sie auf den Index für das Feld Memo, und löschen Sie es.
Status
Microsoft hat bestätigt, dass dies ein Problem in den Microsoft-Produkten ist, die am Anfang dieses Artikels aufgeführt sind.
Weitere Informationen
Dieses Verhalten tritt in Microsoft Access-Versionen vor Microsoft Access 2000 nicht auf, da Memofelder in Jet 3.5 und früher nicht indiziert werden konnten.
Schritte zum Reproduzieren des Verhaltens in Access 2003
Erstellen Sie in einer neuen Datenbank eine neue Tabelle mit den folgenden Eigenschaften, und speichern Sie sie dann als Tabelle1:
Table: Table1 ------------------------ Field Name: Id Data Type: AutoNumber Primary Key Field Name: MyCode Data Type: Memo
Fügen Sie der Tabelle Table1 den folgenden Datensatz hinzu:
Id MyCode ------------------------------------ 1 This is the Memo test data
Kopieren Sie die folgende SQL-Anweisung, fügen Sie sie in eine neue Abfrage in der SQL-Ansicht ein, und speichern Sie die Abfrage dann als query1:
UPDATE Table1 SET Table1.MyCode = [MyCode] & " " & [MyCode];
Erstellen Sie das folgende Modul, und speichern Sie es dann Module1:
Sub TestMemoUpdate() Dim i As Integer Docmd.setwarnings false For i = 1 To 10 Docmd.openquery "Query1" Next i Docmd.setwarnings true End Sub
Platzieren Sie den Zeiger so, dass er sich in der Prozedur befindet. Drücken Sie F5, um den Code auszuführen.
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für