2008-12-23 91 views
11

我有一些VBA中的代碼塊模塊可以在幾個Access數據庫上運行。我想知道如果我想將編碼轉換爲C#環境應如何繼續。是否可以實現並獲得與Access和VBA一樣的結果? 在這一點上,我完全是C#的新手。是否可以將VBA轉換爲C#?

+0

你的mdb中有任何訪問表單嗎? – 2008-12-23 13:04:45

+0

好的是代碼從表單運行 – tksy 2008-12-23 13:08:16

回答

10

自動轉換目前是不可能的,但手動執行它也有助於提高C#技能。有一個十大這裏的文章,帶您通過共同的差異:

http://msdn.microsoft.com/en-us/library/aa164018%28office.10%29.aspx

您還可以找到以下鏈接有用:

用C#開發Office解決方案的MSDN頁:

http://msdn.microsoft.com/en-us/library/ms228286.aspx

MSDN Visual C#應用程序開發頁面(用於在C#開發中開始):

http://msdn.microsoft.com/en-us/library/aezdt881.aspx

祝你好運,我希望這會有所幫助。

2

您可以找到有關這個主題的確切一些有用的信息在MSDN上here

1

一般來說,你應該能夠走的代碼手動轉換。你不會找到任何自動化的代碼轉換器。這就是說,用於訪問數據的框架在C#和VBA世界中是完全不同的(它們在VB.NET和VBA之間甚至完全不同!)。因此,在開始之前,您需要閱讀ADO.NET。

3

有一點需要注意的是,當您在VBA中編碼時,會自動包含一些對象名稱空間和庫引用。這些需要在使用C#時明確添加。例如,

Selection.TypeText("foo") 
在VBA

變得

using Microsoft.Office.Interop.Word; 

Application word = new Application(); 
word.Selection.TypeText("foo"); 

在C#。可以通過右鍵單擊解決方案資源管理器中的引用文件夾並選擇「添加引用」來添加庫引用。

0

鑑於VBA與vb.net非常相似,那麼我建議你轉換爲VB.net。事實上,你通常可以在代碼中剪切+粘貼,特別是如果這樣的代碼來自代碼模塊。如果你的代碼有DAO.Recordsets,那麼我建議在VB.net中創建一個「模仿」dao.recordset的類。因爲大多數VBA代碼可以接近100%進入vb.net代碼模塊。所以這表明你不需要轉換,而只需將VBA代碼移動到VB.net。實際上,VB.NET中的99%的命令都以SAME語法存在。

相關問題