2012-09-11 5 views
0

테이블에 새 행을 삽입 한 코드를 가지고 SerialNo를 검색하고, SerialNo를 사용하여 ReferenceNo 열을 업데이트 한 다음 데이터베이스를 다시 업데이트합니다.VB6 마지막으로 자동 증가 된 ID를 검색하고 레코드를 다시 업데이트하십시오.

그러나 두 번째 업데이트에서 나는 다음과 같은 오류가 발생합니다. 업데이트를 위해 행을 찾을 수 없습니다. 마지막으로 읽은 이후에 일부 값이 변경되었을 수 있습니다. 이

DataEnvironment1.rsAddNewMsg.Open 

With DataEnvironment1.rsAddNewMsg 

.Field1 ="mpla" 
.Field2 ="mpla" 
.... 

.Update 

.ReferenceNo = "Mpla" + SerialNo 

.Update 

DataEnvironment1.rsAddNewMsg.Close 

오류가 두 번째 업데이트에서 발생 같은

코드 보인다.

답변

0

아마도 변경 내용을 가져 오려면 레코드 집합을 다시 열어야합니다. 데이터 업데이트를보다 잘 반영 할 수있는 동적 유형 recordset을 열어 볼 수도 있습니다. 기본적으로 전달 전용 레코드 집합을 여는 것입니다.

미안하지만, 오래전부터 ADO를 사용하여 조금 녹슬 었습니다.

+0

오! 답변을 많이 주셔서 감사합니다. 나는 완전히 인식하지 못하는 방향으로 나를 가리켜 둡니다 ... 저는 VB6에서 아주 오래된 시스템을 지원하고 있으며 이전에는 그런 문제를 다루지 않았습니다. 따라서 커서 위치에는 "서버 쪽 커서 사용"및 "클라이언트 쪽 커서 사용"의 두 가지 옵션이 있습니다. 클라이언트 1을 사용하고 있습니다. 나는 앞으로의 옵션이 서버쪽에 있다는 것을 알았습니다 ... 어떤 제안이라도 환영합니다. 고마워. –

1

이 오류로 어려움을 겪고 2 일 후에 나는 마침내 문제를 발견했습니다. 다른 필드를 'N'으로 기본 설정하기 위해 테이블에 대한 제약이있었습니다. 이 제약 조건을 비활성화 한 후 내 코드가 매력처럼 작동했습니다! :)

youpiiii!

원인을 찾기 위해 내 기록을 위해 작은 새 테이블로 오류를 시뮬레이트하고 신원을 확인합니다. 테스트 과정에서 업데이트가 작동하고 있음을 알았습니다. 그래서 업데이트 부분은 괜찮 았어. 따라서 나는 정상적인 코드의 일부를 분리하고 그 원인을 찾을 때까지 테이블의 속성을 변경하여 테스트합니다.

어떤 도움을 주셔서 감사합니다.

관련 문제