如何通过检查第二个中的值来更新MS Access 2007中另一个表中的某些数据?

时间:2014-06-16 13:36:41

标签: ms-access-2007

我希望通过检查以下条件,通过另一个表的数据更新MS_Access 2007中的表(ehraz)中的一些数据:if tableA.siba = Table2.siba然后通过Table2.Field2更新Table1.field1。 我在sql server中使用这个t-sql命令并运行:

 update ehraz set 
 ehraz.B_CODEMELI =bn.B_CodeMelli ,
 ehraz.B_NAME =ltrim(rtrim(cast(bn.B_Name as nvarchar(20)))) ,
 ehraz.B_FAMILY =ltrim(rtrim(cast (bn.B_Family as nvarchar(30)))) ,
 ehraz.B_FATHER_N = ltrim(rtrim(cast(bn.B_Father_N as nvarchar(20)))),
 ehraz.B_SHENAS =ltrim(rtrim(bn.B_Shenas)) ,
 ehraz.B_TAVALOD = ltrim(rtrim(cast(bn.B_Tavalod as nvarchar(15)))),
 ehraz.B_MOSHTARI = ltrim(rtrim(cast(bn.B_Moshtari as nvarchar(20)))) ,
 ehraz.B_BARNO = ltrim(rtrim(cast(bn.B_Brno as nvarchar(10)))) ,
 ehraz.CLOS = ltrim(rtrim(cast(bn.CLOS as nvarchar(5))))
 from bn_data bn
 where ehraz.siba = bn.Siba

我如何在MS-Access 2007中执行此操作?此查询在ms访问中无效。

2 个答案:

答案 0 :(得分:0)

此查询在MS-Access中不起作用,因为MS-Access不支持查询中使用的某些关键字,因为MS-Access不支持强制转换功能。而是使用CStr函数将类型转换为文本格式,使用CInt函数以数字格式输入转换....

尝试替换这些关键字并告诉我这是否有帮助。

答案 1 :(得分:0)

这对你有用吗?

update ehraz 
inner join bn_data bn
on ehraz.siba = bn.Siba
set 
ehraz.B_CODEMELI = bn.B_CodeMelli,
ehraz.B_NAME = Trim(CStr(bn.B_Name)),
ehraz.B_FAMILY = Trim(CStr(bn.B_Family)),
ehraz.B_FATHER_N = Trim(CStr(bn.B_Father_N)),
ehraz.B_SHENAS = Trim(CStr(bn.B_Shenas)),
ehraz.B_TAVALOD = Trim(CStr(bn.B_Tavalod)),
ehraz.B_MOSHTARI = Trim(CStr(bn.B_Moshtari)),
ehraz.B_BARNO = Trim(CStr(bn.B_Brno)),
ehraz.CLOS = Trim(CStr(bn.CLOS));