2011-03-29 75 views
0

我們如何有條件地在MS-ACCESS表中插入記錄。 我正在嘗試以下,但它給我錯誤。 注意:這是一個存儲的查詢。ms-access中的條件插入

PARAMETERS [@Value1] Long, [@Value2] Text (255), [@Value3] DateTime, [@Value4] DateTime; 
INSERT INTO tblTest (Field1, Field2, Field3, Field4) 
SELECT [@Value1] AS expr1, [@Value2] AS expr2, [@Value3] AS expr3, [ @Value4] AS expr4 
WHERE (((Exists (Select * from tblTest where [email protected] and [email protected] and [email protected]))=False)); 

回答

0

在Access中,如果你有一個WHERE子句,你必須有一個FROM子句,這意味着你必須在查詢中包括一個表,即使你不從表中使用任何值。所以,我知道做這項工作的唯一方法是在數據庫中添加一個虛擬表,其中只有一行。不管它有什麼列/數據類型都沒關係。在我的例子我把它叫做ATable:

PARAMETERS [@Value1] Long, [@Value2] Text (255), [@Value3] DateTime, [@Value4] DateTime; 
INSERT INTO tblTest (Field1, Field2, Field3, Field4) 
SELECT [@Value1] AS expr1, [@Value2] AS expr2, [@Value3] AS expr3, [ @Value4] AS expr4 
FROM ATable 
WHERE (((Exists (Select * from tblTest where [email protected] and [email protected] and [email protected]))=False)); 

這是個雜牌,以及難看的人決定到另一行添加到ATable,將盡快開始插入重複記錄。因此,最好使用If/Then來決定是否運行查詢。