2

몇 시간 동안이 오류가 발생했습니다. 는 open_form 이벤트에서 나는이오류 :이 레코드 세트를 업데이트 할 수 없습니다.

Id = vId처럼 recordset에 값을 설정합니다. 하지만 1 개의 양식으로, 내가 업데이트하는 필드에 관계없이이 오류가 발생합니다.

This recordset is not updateable 

은 내가 많은 것을 시도 http://support.microsoft.com/default.aspx?...kb;en-us;328828

이 문서를 참조하십시오. 아무것도 작업 아무 관계가 없다, 나는, 양식 나는 primary key autoincrement을 가지고 dynasetnavigation control이다있어, allow edits가 활성화되고 data entry는 또한

yes로 설정되어,이 테이블을 편집 할 수있는 권한을 가지고

이전에이 오류가 발생 했습니까?

또한 97에서 2010로 변환되었으며 현재 테이블은 SQL server 2012으로 연결됩니다. 이전에 작동하는지 모르겠지만 내 앱이 아니기 때문에 작동하지 않는 것 같습니다.

+0

양식의 데이터 입력 속성을 예로 설정하면 양식에 기존 레코드가 표시되지 않고 새 레코드 만 추가 할 수 있습니다. 그게 니가 원하는거야? 그러나, 나는 그것이 당신이 해결하고자하는 문제에 기여하는지 여부를 모른다. – HansUp

+0

폼의 레코드 원본이 쿼리 인 경우 쿼리의 SQL을 표시하는 데 도움이 될 수 있습니다. – HansUp

+0

정말 고마워요. 이제 작동합니다. 레코드 원본을 보게하고 조인이 3 개 있었고 그 중 하나가 기본 키가 설정되지 않은 테이블에있었습니다. 나는 그것을 고치기 위해 이드를 설정했다. 당신은 포인트를 얻기 위해 대답으로 쓸 수 있습니다 :) – Marc

답변

3

양식의 레코드 소스를 검사하십시오. SELECT 문인 경우 SQL을 새 Access 쿼리의 SQL보기로 복사하십시오.

그런 다음 해당 쿼리를 데이터 시트보기에서 엽니 다. 데이터 시트보기에서 데이터를 편집 할 수없는 경우 편집 가능한 레코드 세트를 반환 할 수 있도록 쿼리를 수정하는 방법을 찾아야합니다.

2

이 정보는 누구에게 도움이 될지 모르지만이 문제의 다른 원인이 있습니다.

한 SQL Server에서 다른 SQL Server로 변환 할 때 여기 사람들이 모든 연결된 테이블을 삭제하고 각 Access MDB에 대해 다시 설정합니다.

한 테이블 (실제로 SQL 뷰를 가리키고 있으며 문제를 일으키는 폼을 쿼리 한 연결된 테이블)에 대해 사람들은 열을 체크하지 않고 연결된 테이블의 "인덱스 "(IIRC) 컬럼 ... 비록 당신이 업데이트하고 싶다면 필드를 체크 아웃하는 것이 필요하다는 대화 상자에 약간의 주석이 있었음에도 불구하고. 다행히도,보기는 ID를 선택했기 때문에 시도해 보았습니다. (그것이 작동하지 않았다면 폼에 의해 업데이트되는 테이블 인 SQL 테이블의 키를 구성하는 뷰 열을 지정하려고했습니다.)

"모든 업데이트 폼의 테이블에 인덱스가 있어야합니다. "뷰가 참조하는 SQL 테이블을 검사했지만"테이블 "은 Access의"연결된 테이블 "을 의미하는 것이 아닙니다. 링크 된 테이블에 인덱스를 지정하는 유일한 방법은 연결된 테이블을 다시 추가 할 때입니다.

관련 문제