将包含计算字段的Access数据导出到Excel工作表中

我正在为我的Visual Basic类做一个编程项目,我们正在使用Visual Studios 2012.我想知道的是,如果可能的话,是否有办法将Access表导出到Excel文件中(通过按菜单然后我可以把文件的名字作为文件的创build时间和date。

现在,我有一个表单,带有一个菜单条,我放置了导出到Excel的选项。

该程序使用户input他们正在发送的物品,并从衣物中接收数量。 我已经完成了从表格到Access表格的数据移动,但是我需要能够用date和时间作为文件名来创build一个包含该表格中的数据的excel文件。 我不使用VBA,我认为在这个阶段开始使用VBA可能为时已晚。 我正在使用YouTube上发现的一系列video中的技术,这里是链接:

我完全停留在这一点上,所有我寻找的解决scheme都是在VBA中,但我需要Visual Studios 2012使用的任何解决scheme。 所提供的任何帮助将非常感激,如果需要VBA,我会问你会把我作为一个初学者与任何解释或代码,因为我是一个初学者的视觉基本,我不知道如何VBA工作。

编辑:

这里描述的技术看起来很有希望,但是我想要导出的一个字段是Calculated字段,并且触发了错误

SELECT INTO语句中不允许计算列。

也许有这个解决方法?

似乎Access不允许计算字段包含在SELECT INTO语句中。 对于名为[SampleData]的表

 SampleID Prefix FirstName LastName FullName -------- ------ --------- -------- ---------------- 1 Mr Gord Thompson Mr Gord Thompson 2 Miss Anne Elk Miss Anne Elk 

其中[FullName]是计算字段,如果我们尝试

 using (var cmd = new OleDbCommand()) { cmd.Connection = con; cmd.CommandText = @"SELECT SampleID, FullName " + @"INTO [Excel 8.0;HDR=YES;DATABASE=C:\__tmp\zzzNew.xls].[Sheet1] " + @"FROM SampleData"; cmd.ExecuteNonQuery(); } 

我们得到错误

SELECT INTO语句中不允许计算列。

但是,我们可以通过在其中一个输出列的expression式中使用计算字段来愚弄Access进行出价:

 using (var cmd = new OleDbCommand()) { cmd.Connection = con; cmd.CommandText = @"SELECT SampleID, '' & FullName AS FullName " + @"INTO [Excel 8.0;HDR=YES;DATABASE=C:\__tmp\zzzNew.xls].[Sheet1] " + @"FROM SampleData"; cmd.ExecuteNonQuery(); } 

(这是C#代码,但VB.NET代码将非常相似。)

编辑re:评论

要以更新的.xlsx格式创buildExcel文档,请使用此

 using (var cmd = new OleDbCommand()) { cmd.Connection = con; cmd.CommandText = @"SELECT SampleID, '' & FullName AS FullName " + @"INTO [Excel 12.0 Xml;HDR=YES;DATABASE=C:\__tmp\zzzNew.xlsx].[Sheet1] " + @"FROM SampleData"; cmd.ExecuteNonQuery(); }