2016-11-07 74 views
0

我正在从Excel工作并自动打开Access并运行一个将导入数据,刷新我的查询并导出它们的宏。使表查询和删除查询访问VBA

但是,我的两个疑问更困难。我有一个从查找重复查询运行的生成表查询,然后是从同一个表中取出重复项的删除查询。我假设如果我想要更新表,我必须重新运行make表并删除查询与我新导入的数据。我如何在Access中执行此操作?

我试过查找它,它似乎runSQL命令是我应该使用?我不知道如何格式化,特别是因为当我试图包含我的查询的SQL版本时,VBA不接受它。

此外,我应该这样做一个单独的宏吗?或者我可以在我工作的那个内部运行它吗?

下面是来自两个查询的SQL:

对于化妆表查询:

SELECT [NameDupQuery1].* INTO [TableMakingAndEditing] 
FROM [NameDupQuery1]; 

对于删除查询:

DELETE [TableMakingAndEditing].Carrier, [TableMakingAndEditing].[Field1], [TableMakingAndEditing].[Field2], [TableMakingAndEditing].[Field3], [TableMakingAndEditing].[Field4], [TableMakingAndEditing].[Field5], [TableMakingAndEditing].[Field6], [TableMakingAndEditing].[Field7], [TableMakingAndEditing].[Field8] 
FROM [TableMakingAndEditing] 
WHERE ((([TableMakingAndEditing].Carrier) In (SELECT [Carrier] FROM [TableMakingAndEditing] As Tmp GROUP BY [Carrier],[Field1],[Field2] HAVING Count(*)>1 And [Field1] = [TableMakingAndEditing].[Field1] And [Field2] = [TableMakingAndEditing].[Field2]))); 

任何帮助或建议?

回答

0

没关系!我发现只要我已经有查询,只要使用

DoCmd.SetWarnings False 
DoCmd.OpenQuery ("MakeTable Query") 
DoCmd.OpenQuery ("Delete from table query") 
DoCmd.SetWarnings True 

将运行我的表查询和删除查询!真棒!