Access でインデックスを含むメモ フィールドに大量のテキストを入力すると、「実行時エラー '3709"」
中程度: 基本的なマクロ、コーディング、相互運用性のスキルが必要です。
この記事は、Microsoft Access データベース (.mdb) ファイルまたは Microsoft Access データベース (.accdb) ファイルに適用されます。
現象
Microsoft Access データベースで、インデックスを含むメモ フィールドを作成するとき、または自動的にインデックスが作成されたテキストを含むフィールド名を作成する場合、約 3450 文字を超えるテキストをフィールドに入力することはできません。 フィールドにさらにテキストを入力しようとすると、または既存のデータを編集しようとすると、次のエラー メッセージが表示されます。
Run-time error '3709':
The search key not found in any record.
解決方法
メモフィールドに大量のテキストを入力する必要がある場合は、メモフィールドのインデックスを削除します。 これを行うには、次の手順を実行します。
デザイン ビューでメモ フィールドを使用してテーブルを開きます。
[表示] メニューの [インデックス] をクリックします。
メモMicrosoft Office Access 2007 で、[デザイン] タブをクリックし、[表示/非表示] グループの [インデックス] をクリックします。
[メモ] フィールドのインデックスをクリックし、削除します。
状態
Microsoft は、この記事の冒頭に記載されている Microsoft 製品の問題であることを確認しました。
詳細
この動作は、Microsoft Access 2000 より前のバージョンの Microsoft Access では発生しません。これは、Jet 3.5 以前ではメモ フィールドのインデックスを作成できなかったためです。
Access 2003 で動作を再現する手順
新しいデータベースで、次のプロパティを持つ新しいテーブルを作成し、Table1 として保存します。
Table: Table1 ------------------------ Field Name: Id Data Type: AutoNumber Primary Key Field Name: MyCode Data Type: Memo
Table1 テーブルに次のレコードを追加します。
Id MyCode ------------------------------------ 1 This is the Memo test data
次の SQL ステートメントをコピーし、SQL ビューの新しいクエリに貼り付けて、クエリを query1 として保存します。
UPDATE Table1 SET Table1.MyCode = [MyCode] & " " & [MyCode];
次のモジュールを作成し、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
ポインターをプロシージャ内に配置します。 F5 キーを押してコードを実行します。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示