我使用类似以下的函数将临时表从crosstabs查询中移出。MS Access 2003 - 用于在“SELECT * INTO tblTemp FROM tblMain”语句之后更改表的VBA
Function SQL_Tester()
Dim sql As String
If DCount("*", "MSysObjects", "[Name]='tblTemp'") Then
DoCmd.DeleteObject acTable, "tblTemp"
End If
sql = "SELECT * INTO tblTemp from TblMain;"
Debug.Print (sql)
Set db = CurrentDb
db.Execute (sql)
End Function
我这样做,这样我就可以使用更多的VBA采取临时表到Excel,使用一些Excel功能(公式和这样的),然后将值返回到原来的表(tblMain)。简单点我收到绊倒的是,SELECT INTO语句后,我需要一个全新的附加列添加到临时表中,我不知道如何做到这一点:
sql = "Create Table..."
就像是唯一的出路我知道如何做到这一点,当然这与上述方法无法兼得,因为我无法创建一个在事实之后已经创建的表,而且之前我无法创建它,因为SELECT INTO语句方法将返回“表已经存在”消息。
任何帮助?多谢你们!
这听起来像是一个有问题的设计。首先,你不应该在应用程序的前端创建表。其次,重复的任务不应该经常要求改变目标表的结构。偶尔,当然,但不是当然。确定导入格式,你可以完全避免这个问题。 – 2010-03-17 20:09:32
这实际上是一个自动化部分,它通过创建的我的临时访问应用程序调用excel中的财务函数,并使用由我提供的查询生成的表。然而,造成问题的原因是让“幕后卓越”的方法起作用,结果回到了桌子上。所以我需要在这个动态方法中创建空字段,并将结果数据字段发送到表单(我的实际数据库)上,或者使用ppt自动化表示等等。因为这个excel的主意确实有效,但这是我知道的唯一方法... – Justin 2010-03-18 01:04:11
...如何让它发挥作用,因为我从烹饪书中学到了这个excel利用技巧。我也有一个自定义的添加内置到Excel通过类模块的自助餐,让我能够在Excel中创建带有公式的迷你图。所以我相信我可以得到上面的概念来处理图表(它只是基本上将它们创建为形状,而不是MS图表)只需要找出如何将OLE.copy方法返回到表单而不是rs.fields ....如果它做得很好,如果不是很好。我明白你在说什么,这都是非常非常不自然的东西。 – Justin 2010-03-18 01:07:49