2011-09-30 8 views
0

모두가 Access/SQL/VBA 초보자로서 나에게 매우 도움이 되었기 때문에 나는 또 다른 질문을 시도 할 것이라고 생각했습니다. 우리의 정보 보증 프로세스에 대한 시스템 추적 양식을 구축하고 있으며 표 B에서 Affected_Machine_Name이라는 CSV 형식 필드를 가져 와서 표 A의 Affected_Machine_Name 필드에 삽입하려는 양식에 단추가 있습니다. 이것은 형식이 근거로하는 것입니다.Access 2007 vba 양식의 필드를 채울 단추에 쿼리를 연결하는 방법?

나는이 보이는 수행하려고 쓴 쿼리 (All_Machine_Names) 같은 : TableA의 INTO

INSERT (. Affected_Machine_Name [값])
SELECT TableB.Affected_Machine_Name
TableA의, TableB의 FROM ;

공공 하위 All_Button()

Screen.ActiveDatasheet Affected_Machine_Name = DoCmd을! 다음과 같이

다른 게시물 중 하나에 몇 가지 조사를하고 후에, 나는 그것은 VBA 온 클릭을 사용하여 버튼에 링크했다. OpenQuery를 "All_Machine_Names"

최종 하위 나의 현재 문제는 내가 서브 함수에 대한 구문 오류가 나는 오류 상자가 유용한 정보를 제공하지 않기 때문에 왜 아무 단서입니다

. 그 문제에 관해서는, 삽입을하는 방법에 대한 다른 게시물 중 일부를 복사하려고 했으므로 내 쿼리가 맞는지 확실하지 않습니다.

나는 내가 그 자체로 쿼리를 실행할 때 개별 레코드를 참조하지 않는다고 생각한다. 강조 표시된 레코드 대신 모든 180 개의 레코드를 수정하려고한다.

제공되는 도움을 주시면 매우 감사하겠습니다. 감사!

업데이트 :이 작업을 완료하는 방법에 대한 옵션을 살펴본 결과이 질문을 닫고 문제점을 다시 정의해야한다고 생각하고 있습니다. 힌트와 방향을 제시해 주신 모든 분들께 감사드립니다.

+0

예, Affected_Machine_name 내 마스터를 참조하는 확인란 양식 필드에서 다중 값 필드 시스템 호스트 테이블. 주어진 시스템 취약점에 영향을받는 모든 시스템의 이름을 저장해야합니다. 나는 접근 자습서를 통해 가고 있었다. 그리고 그것은 그것을하는 길인 것처럼 보였다. 나는 이것에 대해 틀렸는가? – user971584

+1

다중 값 필드는 사용자에게 편리하게 나타납니다. 개발자 관점에서 볼 때 다중 값 필드는 VBA 코드 및 SQL 문에서 사용하기가 더욱 어려워집니다.개인적으로 Access와 SharePoint 데이터 원본을 연결할 때만 사용할 것입니다. 다른 모든 경우에는 "상위 값"테이블의 행 키를 가리키는 외래 키가 포함 된 관련 테이블의 별도 행에 "다중 값"이 저장되는 전통적인 방식을 사용합니다. – HansUp

+0

불행히도이 양식과 함께 사용하는 표를 "개발"하고 있지만 나 자신이 후자의 역할보다 전자에서 더 많이 찾습니다. 기본적으로, 우리 집안의 DBA는 아마 잠을 잘 수 있으며, IA 준수 직원으로 사용할 수 없습니다. 나는 기본적으로 내 직업을 위해 필요한 것을 자택 거려야한다. 내 코드에는 아름다움이 없습니다. 단지 작업을 완료하려고합니다. 그래서 나는 끝까지 나를 붙잡을 수있는 일에 마음을 열었습니다. 지금까지 도움이되는 의견에 감사 드리며 귀하의 의견을 이해하려고합니다. 감사! – user971584

답변

0

양식에 고유 한 컴퓨터 ID (PK?)가 있다고 가정하고 Machine_ID (또는 ID/PK가 무엇이든간에) 현재 컴퓨터와 동일한 테이블 B의 Affected_Machine_Name을 원합니다 테이블 A에서 레코드를 작성합니다. 양식이 TableA에 대해 BOUND (기반이 아닌)이고 두 테이블의 ID 필드가 Machine_ID라고 가정 해 봅시다. 그런 경우라면

그 다음은 폼에서 버튼의 코드에서 작동합니다 : "나"그 코드에서

me!Affected_Machine_Name = dlookup("Affected_Machine_Name", "TableB", "Machine_ID = " & me!Machine_ID 

현재 선택된 레코드의 바운드 테이블 필드를 참조하는 방법입니다. Dlookup은 dlookup (field, table, condition) 인수를 사용하여 테이블에서 데이터를 반환합니다. 그러면 폼의 현재 레코드와 동일한 ID를 가진 TableB의 컴퓨터 이름이 반환됩니다.

(측면 질문 : 왜 당신은 별도의 테이블에 그것을 깨는 대신 데이터베이스에 CSV 데이터를 저장하는?)

+0

사실, 양식의 PK는 추적 목적으로 다른 몇 가지 항목을 복제 할 수있는 임의 번호입니다. 이 코드를 시도했을 때, & me! Machine_ID 부분에 질식하는 것처럼 보였습니다.
부수적 인 질문으로, affected.machine_name은 마스터 시스템 호스트 테이블에서 양식을 가져 오는 콤보 상자로 표시됩니다. 상자를 선택하면 입력을 CSV 형식으로 저장하는 것처럼 보입니다. 실제 테이블. 내가 말했듯이, 나는 멍청한 행동이고, 내가 이것을 잘못 해석했다고 생각하게 만든다. – user971584

관련 문제