Sql 使用内部联接将两个表合并为第三个表

Sql 使用内部联接将两个表合并为第三个表,sql,vba,ms-access,Sql,Vba,Ms Access,我正在使用MS Access,试图将两个表合并到第三个表中: 从具有以下字段的表“dbHoldings”: (ID、isin、代码\ BB、名称\ BB、资产\名称、重量、数据分类) 与表“dbSecurities2”一起: (ID、isin、fldName、blkName、fldValue) 在表“dbAssetGroup”中输入以下字段: (ID、isin、代码\ BB、名称\ BB、资产\名称、BB \重量、字段名称、散货名称、散货重量、分配重量、数据分类) 我收到运行时错误“3131”

我正在使用MS Access,试图将两个表合并到第三个表中:

从具有以下字段的表“dbHoldings”:

(ID、isin、代码\ BB、名称\ BB、资产\名称、重量、数据分类)

与表“dbSecurities2”一起:

(ID、isin、fldName、blkName、fldValue)

在表“dbAssetGroup”中输入以下字段:

(ID、isin、代码\ BB、名称\ BB、资产\名称、BB \重量、字段名称、散货名称、散货重量、分配重量、数据分类)

我收到运行时错误“3131”
这是我的尝试:

strSQL = "INSERT INTO dbAssetGroup(isin, Code_BB, Name_BB, asset_name, BB_Weighs, fieldName, bulkName, fldValue, DataDiEstrazione) " & _                     
"SELECT H.isin, H.Code_BB, H.Name_BB, H.asset_name, H.Weighs, S.fldName, S.blkName, S.fldValue, H.DataDiEstrazione " & _                       
        "FROM " & _                                                 
        "dbHoldings AS H " & _                                               
        "INNER JOIN dbSecurities2 AS S " & _                                           
        "ON H.isin=S.isin) "  
                         
db.Execute strSQL
试一试:

strSQL = "INSERT INTO dbAssetGroup(isin, Code_BB, Name_BB, asset_name, BB_Weighs, fieldName, bulkName, fldValue, DataDiEstrazione) " & _                     
"SELECT H.isin, H.Code_BB, H.Name_BB, H.asset_name, H.Weighs, S.fldName, S.blkName, 
S.fldValue, H.DataDiEstrazione " & _                       
        "FROM " & _                                                 
        "dbHoldings AS H " & _                                               
        "INNER JOIN dbSecurities2 AS S " & _                                           
        "ON H.isin=S.isin "  
                     
db.Execute strSQL
试一试:

strSQL = "INSERT INTO dbAssetGroup(isin, Code_BB, Name_BB, asset_name, BB_Weighs, fieldName, bulkName, fldValue, DataDiEstrazione) " & _                     
"SELECT H.isin, H.Code_BB, H.Name_BB, H.asset_name, H.Weighs, S.fldName, S.blkName, 
S.fldValue, H.DataDiEstrazione " & _                       
        "FROM " & _                                                 
        "dbHoldings AS H " & _                                               
        "INNER JOIN dbSecurities2 AS S " & _                                           
        "ON H.isin=S.isin "  
                     
db.Execute strSQL

结尾的)匹配吗?你说的对,也不匹配…为什么你在VBA中构建SQL而没有任何VBA变量的串联?考虑使用保存的查询,它更可读性、可维护性和高效性,因为访问引擎编译最佳执行计划,尤其是使用<代码>连接< /代码>来保存查询。另外,您不能保存有语法错误的查询!谢谢冻糕,我将尝试使用查询然后。。。“在VBA中构建SQL而不连接任何VBA变量”是什么意思?请您再详细说明一下,好吗?我想帕菲想知道为什么您要在VBA中构建一个没有动态参数的SQL语句。通过将变量连接到构造的SQL语句中而提供的参数。由于此SQL没有变量输入,可能是Access中的查询对象,Excel VBA调用该查询对象而不是生成SQL语句。末尾的)匹配吗?您的权利也不匹配…为什么在VBA中生成SQL而没有任何VBA变量串联?考虑使用保存的查询,它更可读性、可维护性和高效性,因为访问引擎编译最佳执行计划,尤其是使用<代码>连接< /代码>来保存查询。另外,您不能保存有语法错误的查询!谢谢冻糕,我将尝试使用查询然后。。。“在VBA中构建SQL而不连接任何VBA变量”是什么意思?请您再详细说明一下,好吗?我想帕菲想知道为什么您要在VBA中构建一个没有动态参数的SQL语句。通过将变量连接到构造的SQL语句中而提供的参数。由于此SQL没有变量输入,因此可能是Access中的查询对象,Excel VBA调用该查询对象而不是生成SQL语句。