2015-01-29 6 views
0

이것은 MS Access 관련 게시물입니다.UPDATE 여러 필드, 여러 조건 쿼리

어떻게 INSERT INTO 문을 UPDATE 문으로 변경할 수 있습니까?

  DoCmd.RunSQL "INSERT INTO A_tblStagingTablesChecksHEADERS (Header, Header2) " _ 
       & "SELECT DISTINCT(SELECT F1 FROM tblStagingIssuerNames_ReverseRepos " _ 
       & "WHERE F1 = 'ISSUER CODE') as F1data, " _ 
       & "(SELECT F51 FROM tblStagingIssuerNames_ReverseRepos " _ 
       & "WHERE F51 = 'INSTRUMENT REFERENCE (BOE)') as F2data " _ 
       & "FROM tblStagingIssuerNames_ReverseRepos;" 

나는 아래의 (실패)를 시도 : (와 별칭없이) 모두 문의 경우

DoCmd.RunSQL "UPDATE A_tblStagingTablesChecksHEADERS, tblStagingIssuerNames_ReverseRepos " _ 
       & "SELECT DISTINCT(SELECT F1 FROM tblStagingIssuerNames_ReverseRepos " _ 
       & "WHERE F1 = 'ISSUER CODE') as F1data, " _ 
       & "SELECT DISTINCT(SELECT F51 FROM tblStagingIssuerNames_ReverseRepos " _ 
       & "WHERE F51 = 'INSTRUMENT REFERENCE (BOE)') as F2data " _ 
       & "FROM tblStagingIssuerNames_ReverseRepos," _ 
       & "SET A_tblStagingTablesChecksHEADERS.Header = F1data, " _ 
       & "SET A_tblStagingTablesChecksHEADERS.Header2 = F2data;" 

, 내가 런타임 오류 '3075'를 얻을 :

구문 쿼리 식의 오류 '(SELECT DISTINCT (SELECT F1 FROM tblStagingIssuerNames_ReverseRepos WHERE F1 ='ISSUER CODE '))'를 참조하십시오.

답변

0

잘못된 Update 문 구문을 사용하고 있습니다. 사용해보기 :

DoCmd.RunSQL "UPDATE A_tblStagingTablesChecksHEADERS " _ 
      & "SET Header = (SELECT DISTINCT F1 FROM tblStagingIssuerNames_ReverseRepos " _ 
      & "WHERE F1 = 'ISSUER CODE'), " _ 
      & "Header2 = (SELECT DISTINCT F51 FROM tblStagingIssuerNames_ReverseRepos " _ 
      & "WHERE F51 = 'INSTRUMENT REFERENCE (BOE)')"; 
+0

@ Rono 답장을 보내 주셔서 감사합니다. 별칭은 필수적이라고 생각합니다. 스크립트의 대괄호 안팎에서 스크립트를 추가하려고 시도했지만 구문 오류 메시지가 계속 표시됩니다. – ProtoVB

+1

UPDATE 문에 별칭이 필요하지 않습니다. 내부 select 문 중 하나가 둘 이상의 레코드를 반환하는 경우 오류 메시지를받을 수있는 방법을 볼 수 있지만 얻는 오류 메시지를 알고 있어야합니다. – Rono

+0

@ Rono,이 피스에 사용 된 초기 SELECT 문은 여러 레코드 (실제로 기본 테이블에있는 레코드 수)를 검색 했으므로 DISTINCT를 추가 한 이유입니다. DISTINCT를 사용하여 단일 레코드를 얻습니다. 내 게시물에 오류의 설명을 추가 할 것입니다. – ProtoVB