2009-10-05 5 views
0

나는 간단한 쿼리를 가지고,하지만 난 오류가 받고 있어요이 쿼리를 실행하기 위해 노력하고있어 때MSACCESS 삽입 선택 실 거예요 작업

Query input must contain at least one table or query. (Error 3067)

쿼리 :

INSERT INTO FV_Ko (FvId, OldPriceNetto) 
SELECT [PFvId], (SELECT FV.PriceNetto1 FROM FV WHERE FV.FVnr = '123'); 

답변

1

[PFvId]를 요청한다 합니다 (MSACCESS 데이터베이스의 일부), 당신은 할 수 있어야한다 : 그것은 당신이 즉시 쿼리를 구성하는 경우

Dim qdf As DAO.QueryDef 
Set qdf = db.QueryDefs("MyQuery") 
qdf.Parameters("[PFvld]") = myValue 

및 실행 일 매개 변수 대신 SQL 코드를 작성할 때 값을 지정할 수도 있습니다 (더 나은 해결책은 아닙니다).

+0

그게 사실이 아니에요, 내가 그 방법으로 그 querry를 실행할 때 나는 오류를 얻고 있습니다. Im이 Access에서 querry을 열 때도 마찬가지입니다. – Dariusz

+0

매개 변수가 포함 된 쿼리를 MSAccess에서 직접 열 때 (두 번 클릭하거나 메뉴를 열 때) 매개 변수를 입력하라는 대화 상자가 나타납니다. 그거야? 그렇지 않으면 MSAccess는 매개 변수가 아니라 일부 필드 등으로 생각합니다. 그러나 DJ의 대답은 SQL을 작성하는 올바른 방법이기도합니다. – van

1

하위 쿼리가를 좋아요,하지만 PFvID가 어디에서 왔는지는 말하지 않고 있습니다. 귀하의 INSERT는 다음과 같이해야한다 :

INSERT INTO FV_Ko (FvId, OldPriceNetto) 
SELECT AnotherTable.PFvId, 
(SELECT FV.PriceNetto1 FROM FV WHERE FV.FVnr = '123') FROM AnotherTable 
+0

[PFvId]는 다른 테이블에서가 아니라 VBA 스크립트에서 전달 된 매개 변수입니다. 그게 문제입니다. 그 querry에 대한 매개 변수를 전달하는 방법에 대한 아이디어가 있습니까? – Dariusz

0
... 
SELECT [PFvId], --> you should define a FROM table at end of the query 
(SELECT FV.PriceNetto1 FROM FV WHERE FV.FVnr = '123'); 
2

이 작동합니다 - PFvld가 저장되어있는 매개 변수와 쿼리 (을 MyQuery) 인 경우는

INSERT INTO FV_Ko (FvId, OldPriceNetto) 
SELECT [PFvId], FV.PriceNetto1 FROM FV WHERE FV.FVnr = '123';