修改新记录并将其添加到Access数据库

时间:2016-06-21 00:57:57

标签: sql database ms-access mod-rewrite access-vba

我们有一个MS Access 2016数据库。我们查询数据库以找到库存中的一些零件。查询结果的前几行如下。我们有一个名为DBID的主键,它具有原始表中所有记录的唯一编号。

ORIGINAL QUERY:

SELECT [Slash Series Query].BRAND, [Slash Series Query].[PRODUCT ID], [Slash Series Query].[STOCK QUANTITY] FROM [Slash Series Query] WHERE ((([Slash Series Query].[PRODUCT ID]) Not Like "k"));

结果:

Slash Straight Bore Query

BRAND PRODUCT ID
FAG 230/500 BMB H14C W33
SKF 230/500 CA C08 W509
ZKL 230/500 MW33
KOY 230/500 RW513 SOFY
KOY 230/500R W33 C3 FY
FAG 230/530 MBR50150H78CW209C
FAG 230/530 C3 H40AC
NSK 230/530CAM E4 C3 S11
FAG 230/600 BM C3 W33 T52BW
FAG 230/600 C08W503
SKF 230/600 CA C08 W509
FAG 239/530 MBH40.T52BW
FAG 239/530MB
SKF 248/530 CAMA/C3/W20
TOR 249/850 W33 W45 CW57 C2

我们希望插入一个解决方案,在数据库中添加一个新记录,在部件号中添加“K”,并在部件号的末尾添加“_(MOD)”,此外还有现有的部件号,所以它看起来像这样:

(品牌= 3个字母的制造商代码,产品ID =部件号)

Slash Tapered Bore Query

BRAND PRODUCT ID
FAG 230/500 K BMB H14C W33 (MOD)
SKF 230/500 K CA C08 W509 (MOD)
ZKL 230/500 K MW33 (MOD)
KOY 230/500 K RW513 SOFY (MOD)
KOY 230/500 K R W33 C3 FY (MOD)
FAG 230/530 K MBR50150H78CW209C (MOD)
FAG 230/530 K C3 H40AC (MOD)
NSK 230/530 K CAM E4 C3 S11 (MOD)
FAG 230/600 K BM C3 W33 T52BW (MOD)
FAG 230/600 K C08W503 (MOD)
SKF 230/600 K CA C08 W509 (MOD)
FAG 239/530 K MBH40.T52BW (MOD)
FAG 239/530 K MB (MOD)
SKF 248/530 K CAMA/C3/W20 (MOD)
TOR 249/850 K W33 W45 CW57 C2 (MOD)

实现这一目标的最有效方法是什么?

2 个答案:

答案 0 :(得分:0)

您可以尝试MS Access子字符串和连接运算符:

SELECT S.BRAND, 
Mid(S.[PRODUCT ID], 1, 7) & " K" & Mid(S.[PRODUCT ID], 8) & " (MOD)" as [PRODUCT ID], 
S.[STOCK QUANTITY] 
FROM [Slash Series Query] S WHERE (S.[PRODUCT ID] Not Like "k");

我使用了表别名而不是整个表名来减少查询的大小。

说明:

Mid(columnName, starting char position, [optional last character position]) 
如果指定了

,则将列值的一部分从起始字符位置返回到最后一个字符位置(如果未指定,则返回字符串的结尾。)

"a" & "b" & "c"使用MS访问并置运算符&并生成"abc"

答案 1 :(得分:0)

如果您只想选择值:

SELECT ssq.BRAND, ssq.[PRODUCT ID], ssq.[STOCK QUANTITY],
       ("K" & ssq.[PART NUMBER] & " (MOD)") as [PRODUCT ID]
FROM [Slash Series Query] as ss1q
WHERE ssq.[PRODUCT ID] Not Like "k";

如果要将其插入数据库,请使用INSERT . . . SELECT