2015-01-27 5 views
0

아래 코드를 작동시키는 데 문제가 있습니다. Upload.Invoice 테이블에 일치하는 인보이스가 없을 때 7시에 Invoice 필드가 null이 아닌 경우 처리되지 않은/승인되지 않은 테이블의 상태 필드를 2로 업데이트하고 싶습니다.Microsoft Access 및 SQL - 테이블 2에 레코드가 존재하지 않을 때 table.1 값을 업데이트하십시오.

아래의 SQL을 시도했지만 조건에 맞는 값을 업데이트하지 않았습니다. 내 테스트를 위해서는 4 개의 업데이트가 있어야하며 0은 완료되어야합니다. 보통 디자인보기를 사용하고 코드에서 어디서 잘못되었는지 확신 할 수 없습니다.

UPDATE 
    [Unprocessed/Unapproved TC], 
    Upload 
SET 
    [Unprocessed/Unapproved TC].Status = 2, 
    [Unprocessed/Unapproved TC].[Resolution Date] = Date() 
WHERE 
    (([Unprocessed/Unapproved TC].Status)=7) 
    AND 
    (([Unprocessed/Unapproved TC].Invoice) Is Not Null) 
    AND 
    (Not Exists 
     (
      SELECT 
       * 
      FROM 
       [Unprocessed/Unapproved TC] 
      WHERE 
       [Unprocessed/Unapproved TC].Invoice = [Upload].Invoice 
     ) 
    ); 
+0

폴 (Paul) 서식을 정리해 주셔서 감사합니다. – Munro

답변

0

난 당신이하지 그냥 업데이트 절에 업데이트 할 테이블을 참조 또한 절을 존재에 업로드 테이블을 쿼리, 그래서 대신에 이것을 시도 (하지만 전에 백업을해야한다고 생각합니다 그것을 실행하십시오) :

UPDATE 
    [Unprocessed/Unapproved TC]  
SET 
    [Unprocessed/Unapproved TC].Status = 2, 
    [Unprocessed/Unapproved TC].[Resolution Date] = Date() 
WHERE 
    (([Unprocessed/Unapproved TC].Status)=7) 
    AND 
    (([Unprocessed/Unapproved TC].Invoice) Is Not Null) 
    AND 
    (Not Exists 
     (
      SELECT 
       * 
      FROM 
       [Upload] 
      WHERE 
       [Unprocessed/Unapproved TC].Invoice = [Upload].Invoice 
     ) 
    ); 
+0

그게 효과가 있어요. 고맙습니다! – Munro