'Runtimefout '3709' wanneer u een grote hoeveelheid tekst invoert in een memoveld dat een index bevat in Access

Gemiddeld: vereist basisvaardigheden voor macro's, codering en interoperabiliteit.

Dit artikel is van toepassing op een Microsoft Access-databasebestand (.mdb) of op een Microsoft Access-databasebestand (.accdb).

Symptomen

Wanneer u in een Microsoft Access-database een memoveld maakt dat een index bevat of als u een veldnaam maakt die de automatisch geïndexeerde tekst bevat, kunt u de tekst die meer dan ongeveer 3450 tekens bevat, niet invoeren in het veld. Wanneer u meer tekst in het veld probeert in te voeren of de bestaande gegevens probeert te bewerken, wordt het volgende foutbericht weergegeven:

Run-time error '3709':

The search key not found in any record.

Oplossing

Als u een grote hoeveelheid tekst moet invoeren in het veld Memo, verwijdert u de index voor het veld Memo. Voer hiervoor de volgende stappen uit:

  1. Open de tabel met het veld Memo in de ontwerpweergave.

  2. Klik in het menu Beeld op Indexen.

    Opmerking Klik in Microsoft Office Access 2007 op het tabblad Ontwerpen en klik vervolgens op Indexen in de groep Weergeven/verbergen .

  3. Klik op de index voor het veld Memo en verwijder deze.

Status

Microsoft heeft bevestigd dat dit een probleem is in de Microsoft-producten die aan het begin van dit artikel worden vermeld.

Meer informatie

Dit gedrag treedt niet op in versies van Microsoft Access vóór Microsoft Access 2000, omdat memovelden niet konden worden geïndexeerd in Jet 3.5 en eerder.

Stappen voor het reproduceren van het gedrag in Access 2003

  1. Maak in een nieuwe database een nieuwe tabel met de volgende eigenschappen en sla deze op als Tabel1:

    Table: Table1
    ------------------------
    Field Name: Id
    Data Type: AutoNumber
    Primary Key
    
    Field Name: MyCode
    Data Type: Memo
    
  2. Voeg de volgende record toe aan de tabel Tabel1:

    Id MyCode
    ------------------------------------
    1 This is the Memo test data
    
  3. Kopieer de volgende SQL-instructie, plak deze in een nieuwe query in de SQL-weergave en sla de query op als query1:

    UPDATE Table1 SET Table1.MyCode = [MyCode] & " " " & [MyCode];

  4. Maak de volgende module en sla deze op 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
    
    
  5. Plaats de aanwijzer zo dat deze zich in de procedure bevindt. Druk op F5 om de code uit te voeren.