我在VBA中有几个代码块模块可以在少数Access数据库上运行。如果我想将编码转换为C#环境,我想知道如何继续。是否有可能实现和获得与我现在使用Access和VBA相同的结果? 此时我对C#完全不熟悉。
答案 0 :(得分: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
祝你好运,我希望这会有所帮助。
答案 1 :(得分:3)
需要注意的一点是,在VBA中编码时会自动包含一些对象名称空间和库引用。在C#中工作时需要明确添加这些内容。例如,
Selection.TypeText("foo")
VBA中的变为
using Microsoft.Office.Interop.Word;
Application word = new Application();
word.Selection.TypeText("foo");
在C#中。可以通过右键单击解决方案资源管理器中的“引用”文件夹并选择“添加引用”来添加库引用。
答案 2 :(得分:2)
您可以在msdn here
上找到有关此确切主题的一些有用信息答案 3 :(得分:1)
通常,您应该可以手动转换代码。您将找不到任何可以执行此操作的自动代码转换器。
话虽这么说,你用来访问数据的框架在C#和VBA世界中是完全不同的(它们在VB.NET和VBA之间甚至是完全不同的!)。因此,在开始之前,您将要阅读ADO.NET。
答案 4 :(得分:0)
http://www.developerfusion.com/tools/convert/vb-to-csharp/
不完美,但它会让你开始使用sytax。为了记录,这与您自己学习的内容无法比较。
答案 5 :(得分:0)
鉴于VBA与vb.net非常相似,我建议您转换为VB.net。实际上,您通常可以在代码中剪切+粘贴,特别是如果此类代码来自代码模块。如果您的代码有DAO.Recordsets,那么我建议在VB.net中创建一个“模仿”dao.recordset的类。因此,大多数VBA代码可以接近100%进入vb.net代码模块。因此,这表明您不需要转换,只需将VBA代码移动到VB.net即可。事实上,VBA中99%的命令都存在于VB.net中的SAME语法。