使用另一个表MS Access中的值将值插入表中

时间:2015-04-17 21:42:13

标签: sql ms-access access-vba

我正在使用MS-Access 2013.我需要将值插入表中,表中的某些值将是其他表中的ID号。我将插入一个IMEI号码,然后下一列将是来自不同表格的ID号码。此ID号来自包含不同设备的所有品牌和型号的表。该表如下所示:

ID Number  |     IMEI     |    Model ID
   1       |  1122334455  |      565
   2       |  2222555555  |      400
   3       |  9999944444  |      309

Model表格如下:

Model ID   |    Make        |     Model
  565      |    Apple       |    iPhone 6
  400      |    Samsung     |    Galaxy S4
  309      |    HTC         |    One M8

有很多品牌和型号,所以查找每个插页的模型ID是不现实的。

到目前为止我所尝试的是:

INSERT INTO Device (IMEI, [Model ID])
SELECT [Enter IMEI], [Model Table].[Model ID]
FROM [Model Table]
WHERE [Enter Make]=[Model Table].Make AND [Enter Model]=[Model Table].Model

只要Make和Model已经存在,这就有效。但是,如果它们不存在,则不会插入查询。这就是我陷入困境的地方。任何帮助都会受到高度赞赏,甚至是正确的方向。

1 个答案:

答案 0 :(得分:0)

检查Make / Model是否存在,如果是,则插入IMEI和模型,如果不是仅插入IMEI

DECLARE @IMEI NVARCHAR(50)
DECLARE @MODEL NVARCHAR(100)
DECLARE @MAKE NVARCHAR(100)

SET @IMEI = '97658769'
SET @MAKE = NULL
SET @MODEL = NULL

IF EXISTS
(
    SELECT 1 from [Model Table] 
    WHERE [Model Table].Make = @MAKE
    AND [Model Table].Model = @MODEL
)
BEGIN
    INSERT INTO Device (IMEI, [Model ID])
    VALUES (@IMEI, @MODEL)
END
ELSE
BEGIN
    INSERT INTO Device (IMEI, [Model ID])
    VALUES (@IMEI, NULL)
END