2013-11-23 62 views
1

我正在爲我的Visual Basic類做一個編程項目,我們正在使用Visual Studios 2012.我想知道的是,如果可能的話是否有辦法將Access表導出到Excel文件中(通過按下表單中的菜單項),然後可以將文件的名稱作爲創建文件的時間和日期。將包含計算字段的Access數據導出到Excel工作表中

現在,我有一個窗體,帶有菜單條,我在其中放置了導出到Excel的選項。

程序讓用戶輸入他們發送給洗衣店的物品並從洗衣店接收數量。我已經完成了從表格到Access表格的數據移動,但是我需要能夠使用該表格中的數據創建一個帶有日期和時間作爲文件名稱的excel文件。我沒有使用VBA,我認爲在項目的這個階段開始使用VBA可能爲時已晚。我使用從一系列的我在YouTube上找到視頻的技術,這裏是鏈接:

https://www.youtube.com/watch?v=07ioTflBrHQ

我完全卡在這,所有的解決方案,我期待在VBA,但我需要無論Visual Studios 2012使用什麼。提供的任何幫助都將非常感激,如果需要VBA,我會要求您將我視爲初學者,並提供您可能具有的任何解釋或代碼,因爲我是初學者可視化基礎知識,並且我不知道VBA如何工作。

編輯:

的技術描述here看起來很有希望,但我要導出的領域之一是Calculated場,並觸發錯誤

計算列未在SELECT允許進入語句。

也許有這樣的解決方法?

+0

這絕對不是VB6。 VB6是古老的。 –

+0

你認爲是錯誤的 – Plutonix

+1

[導出訪問查詢在控制檯應用程序中出現excel的可能的重複](http://stackoverflow.com/questions/11230015/export-access-query-to-excel-in-console-application) –

回答

2

看來,Access不允許計算字段包含在SELECT INTO語句中。名爲[sampleData在表

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

其中[全名]是一個計算字段,如果我們試圖

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(); 
} 

我們得到

計算列是不允許在選擇錯誤INTO聲明。

但是,我們可以欺騙接入到使用計算字段在表達的輸出列的一個做我們的招標:

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代碼將非常相似。)

編輯回覆:發表評論

要在新.xlsx格式創建一個Excel文件,使用該

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(); 
} 
+0

再次感謝Gord,我讓它工作。我想知道,這可能與Excel 2010 0r 2013文件的「.xlsx」文件擴展名有關嗎?我試過了,文件已經生成,但我無法打開.xlsx文件,因爲擴展名「無效」我相信這是因爲代碼的一部分「Excel 8.0;」我將不得不將其更改爲14.0或15.0,具體取決於我希望使用的Excel版本是否正確?當我將其更改爲14.0時,出現未處理的異常錯誤。做這件事並不是特別重要,但我只是想知道是否可以做到。 – user3025707

+0

@ user3025707是的,它可以完成。我已經更新了我的答案。 –

相關問題