2008-12-23 75 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语法存在。

相关问题