2011-04-19 4 views
1

원본 데이터가 2 테이블 인 액세스 폼이 있는데, TblATblB으로 호출합니다. 이 양식에는 다음을 수행해야하는 컨트롤이 있습니다.활성 폼의 원본 테이블을 다시 작성하는 방법은 무엇입니까?

  1. 사용자의 일부 새 데이터를 세 번째 테이블로 캡처합니다.
  2. 새 데이터로 TblA 및 TblB를 다시 만드는 maketable 쿼리를 실행합니다.
  3. Requery & 양식 새로 고침.

그러나 문제가 있습니다. maketable 쿼리가 실패했습니다. 나는 이것이 주된 형태를 가지고 있기 때문에 이것이라고 생각한다. 코드 스 니펫은 다음과 같습니다.

Dim AccDB As New Access.Application 
AccDB.OpenCurrentDatabase DbLoc 
AccDB.DoCmd.OpenQuery "TblA-Rebuild" 
AccDB.DoCmd.OpenQuery "TblB-Rebuild" 
Forms("Frm").Requery 

내 질문은 :이 프로세스를 다시 작성하여이 테이블을 성공적으로 재구성하려면 어떻게해야합니까?

+0

행 원본을 아무 것도 설정하지 않으면 테이블을 만든 다음 양식을 다시 바인딩 하시겠습니까? 실패하면 양식에 묶일 수 있습니까? –

+0

제안에 따라 폼의 레코드 소스를 저장하고 null로 설정하고 쿼리를 실행하고 다시 원래대로 설정하는 코드를 추가했습니다. 하지만 여전히 같은 문제가 있습니다. – PowerUser

+0

TblA 및 TblB의 테이블 구조를 변경 한 후에도 수정 된 테이블 구조로 작업하려면 폼의 컨트롤을 수정해야합니까? – HansUp

답변

3

삭제 쿼리를 사용하여 내용을 지우고 추가 쿼리를 사용하여 테이블을 다시 채우는 대신 표를 다시 작성하는 것이 좋습니다. 사용중인 테이블과의 충돌이 없으며 인덱스 또는 필드 특정 등록 정보와 같은 테이블 설정을 잃지 않습니다.

+2

처음에는 너무 복잡해 보였으므로이 아이디어에 망설였습니다. 하지만 지금은 다른 옵션보다 훨씬 간단하다는 것을 알고 있습니다. – PowerUser

0

기존 양식을 테이블에 바인딩되지 않은 하위 폼에 포함합니다. 그런 다음 테이블을 다시 작성하고 다시 열 때 하위 양식을 닫을 수 있습니다.

관련 문제