"Błąd czasu wykonywania '3709'" po wprowadzeniu dużej ilości tekstu w polu Notatka, które zawiera indeks w programie Access
Umiarkowane: wymaga podstawowych umiejętności w zakresie makra, kodowania i współdziałania.
Ten artykuł dotyczy pliku bazy danych programu Microsoft Access (.mdb) lub pliku bazy danych programu Microsoft Access (.accdb).
Symptomy
W bazie danych programu Microsoft Access podczas tworzenia pola Notatka zawierającego indeks lub utworzenia nazwy pola zawierającej automatycznie indeksowany tekst nie można wprowadzić do pola tekstu zawierającego więcej niż około 3450 znaków. Podczas próby wprowadzenia większej ilości tekstu do pola lub próby edytowania istniejących danych zostanie wyświetlony następujący komunikat o błędzie:
Run-time error '3709':
The search key not found in any record.
Rozwiązanie
Jeśli w polu Nota musisz wprowadzić dużą ilość tekstu, usuń indeks pola Nota. Aby to zrobić, wykonaj następujące kroki:
Otwórz tabelę z polem Nota w widoku projektu.
W menu Widok kliknij pozycję Indeksy.
Uwaga W programie Microsoft Office Access 2007 kliknij kartę Projektowanie , a następnie kliknij pozycję Indeksy w grupie Pokaż/Ukryj .
Kliknij indeks pola Nota, a następnie usuń go.
Stan
Firma Microsoft potwierdziła, że jest to problem w produktach firmy Microsoft wymienionych na początku tego artykułu.
Więcej informacji
To zachowanie nie występuje w wersjach programu Microsoft Access przed programem Microsoft Access 2000, ponieważ nie można indeksować pól not w programie Jet 3.5 lub starszym.
Kroki odtwarzania zachowania w programie Access 2003
W nowej bazie danych utwórz nową tabelę z następującymi właściwościami, a następnie zapisz ją jako tabelę Table1:
Table: Table1 ------------------------ Field Name: Id Data Type: AutoNumber Primary Key Field Name: MyCode Data Type: Memo
Dodaj następujący rekord do tabeli Table1:
Id MyCode ------------------------------------ 1 This is the Memo test data
Skopiuj następującą instrukcję SQL, wklej ją do nowego zapytania w widoku SQL, a następnie zapisz zapytanie jako zapytanie query1:
UPDATE Table1 SET Table1.MyCode = [MyCode] & " " & [MyCode];
Utwórz następujący moduł, a następnie zapisz go w module 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
Umieść wskaźnik tak, aby był w procedurze. Naciśnij klawisz F5, aby uruchomić kod.
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla