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 제품의 문제임을 확인했습니다.
추가 정보
이 동작은 메모 필드를 Jet 3.5 이하에서 인덱싱할 수 없으므로 Microsoft Access 2000 이전 버전의 Microsoft Access에서는 발생하지 않습니다.
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 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기