2016-09-30 4 views
1

임 액세스 2007에서 연결된 SQL 테이블에 삽입하려고하지 않고 액세스에 링크 된 테이블에 삽입 아래에있는 내 쿼리입니다기본 키

INSERT INTO tblProducts (ProductPrefix, ProductCode, ProductDescription, MadeFrom, MadeFromDescription, SamFamilySort1, SamFamilySort2, SamFamilySort3, SamFamilySort4, SamFamilySort5, Grade, Length, Thickness, fWidth, Factor, CubicMtrs, CubicMtrsFull, [Weight(T)], DrawingFilepath, EFACSProductGrouping, BatchSize, PackSize, Density, createdby, createddate, ProductType, customer, DimA, DimB, DimC, DimD, DimE, DimF, DimG, DimH, DimI, DimJ, DimK, DimL, DimM, DimN, DimO, DimP, DimQ, DimR, DimS, DimT, DimU, DimV, DimW, DimX, DimY, DimZ, TolA, TolB, TolC, TolD, TolE, TolF, TolG, TolH, TolI, TolJ, TolK, TolL, TolM, TolN, TolO, TolP, TolQ, TolR, TolS, TolT, TolU, TolV, TolW, TolX, TolY, TolZ, Dimension, Main, Saws, Moulders, PaintLines, XCut, DET, Wrapper, Blocks, HingeRecess, reorderpolicy, machinedaway, UseOtherM3XC, UseOtherM3MS, ShrinkWrap, ShrinkWrapPackSize, SW, samtype1, vtype1, vtype2, profile, productchamp, UOM, SAMPartGrp, PostingClass, ProductID) 
SELECT DISTINCT tblProducts.ProductPrefix, tblProducts.ProductCode, tblProducts.ProductDescription, tblProducts.MadeFrom, tblProducts.MadeFromDescription, tblProducts.SamFamilySort1, tblProducts.SamFamilySort2, tblProducts.SamFamilySort3, tblProducts.SamFamilySort4, tblProducts.SamFamilySort5, tblProducts.Grade, tblProducts.Length, tblProducts.Thickness, tblProducts.fWidth, tblProducts.Factor, tblProducts.CubicMtrs, tblProducts.CubicMtrsFull, tblProducts.[Weight(T)], tblProducts.DrawingFilepath, tblProducts.EFACSProductGrouping, tblProducts.BatchSize, tblProducts.PackSize, tblProducts.Density, tblProducts.createdby, Date() AS Expr1, tblProducts.ProductType, tblProducts.customer, tblProducts.DimA, tblProducts.DimB, tblProducts.DimC, tblProducts.DimD, tblProducts.DimE, tblProducts.DimF, tblProducts.DimG, tblProducts.DimH, tblProducts.DimI, tblProducts.DimJ, tblProducts.DimK, tblProducts.DimL, tblProducts.DimM, tblProducts.DimN, tblProducts.DimO, tblProducts.DimP, tblProducts.DimQ, tblProducts.DimR, tblProducts.DimS, tblProducts.DimT, tblProducts.DimU, tblProducts.DimV, tblProducts.DimW, tblProducts.DimX, tblProducts.DimY, tblProducts.DimZ, tblProducts.TolA, tblProducts.TolB, tblProducts.TolC, tblProducts.TolD, tblProducts.TolE, tblProducts.TolF, tblProducts.TolG, tblProducts.TolH, tblProducts.TolI, tblProducts.TolJ, tblProducts.TolK, tblProducts.TolL, tblProducts.TolM, tblProducts.TolN, tblProducts.TolO, tblProducts.TolP, tblProducts.TolQ, tblProducts.TolR, tblProducts.TolS, tblProducts.TolT, tblProducts.TolU, tblProducts.TolV, tblProducts.TolW, tblProducts.TolX, tblProducts.TolY, tblProducts.TolZ, tblProducts.Dimension, tblProducts.Main, tblProducts.Saws, tblProducts.Moulders, tblProducts.PaintLines, tblProducts.XCut, tblProducts.DET, tblProducts.Wrapper, tblProducts.Blocks, tblProducts.HingeRecess, tblProducts.reorderpolicy, tblProducts.machinedaway, tblProducts.useotherm3XC, tblProducts.useotherm3MS, tblProducts.ShrinkWrap, tblProducts.ShrinkWrapPackSize, tblProducts.SW, tblProducts.samtype1, tblProducts.vtype1, tblProducts.vtype2, tblProducts.profile, tblProducts.productchamp, tblProducts.UOM, tblProducts.SAMPartGrp, tblProducts.PostingClass, tblProducts.ProductID 
FROM tblProducts 

이 새로운 키를 사용하여 테이블에서 잘 작동 및 업로드 모든 레코드 내가 원한다면 (나). 나는 단지 하나의 제품 필자을 다시 할 아래

테스트는 사용자 입력을위한 popupbox입니다
WHERE (((tblProducts.ProductID)=[tests])); 

추가 시도

내가 얻을 테이블에 내 차 키가 호출 enter image description here

아래 오류 [ 제품 ID]. WHERE [ProductID] = 1234를이 쿼리에 어떻게 든 추가 할 수 있습니까?

+0

테스트 란 무엇입니까? 누구도 도움을 줄 수있는 정보를 거의 제공하지 않았습니다. 당신을 도우려는만큼 정보가 충분하지 않습니다. –

+0

Sorry tests는 사용자가 변수를 입력하는 팝업 상자입니다. 나는 autonumber로 ProductID를 삽입하고 싶지 않다. 사용자가 popupbox = ProductID를 사용하여 지정한 한 행만 삽입하고 싶다. 그 말이 맞는다면. – Bunion

+0

그럼 당연히 기본 키 위반이 발생합니다. 테이블에 정확히 같은 행을 다시 삽입하고 있습니다. 또한 쿼리를 매개 변수화하는 방법을 살펴볼 수도 있습니다. 예를 들어 SQL 주입에 대해 열어 본 것입니다. –

답변

1

INSERT INTO 절의 열 목록에있는 마지막 항목은 ProductID입니다. 따라서 기존 기본 키 값이있는 새 행을 삽입하려고하면 작동하지 않습니다. 간단한 예를 들어,

INSERT INTO tblProducts (ProductDescription, ProductID) 
SELECT tblProducts.ProductDescription, tblProducts.ProductID 
FROM tblProducts 
WHERE tblProducts.ProductID=1 

기본 키 위반 실패합니다. ProductID를 INSERT INTO와 SELECT 절에서 모두 제거하고 WHERE 절에서만 사용하십시오.

INSERT INTO tblProducts (ProductDescription) 
SELECT tblProducts.ProductDescription 
FROM tblProducts 
WHERE tblProducts.ProductID=1 
+0

아아, 제품에서 필터에 추가 할 때 액세스가 필드에 다시 추가되었습니다. 나는 바보입니다. 정말 고맙습니다! – Bunion