【问题标题】:Is it possible to convert VBA to C#?是否可以将 VBA 转换为 C#?
【发布时间】:2010-09-28 04:16:25
【问题描述】:

我在 VBA 中有几个代码块模块可以在几个 Access 数据库上运行。如果我想将编码转换为 C# 环境,我想知道我应该如何进行。是否有可能实现并获得与现在使用 Access 和 VBA 相同的结果? 在这一点上,我对 C# 完全陌生。

【问题讨论】:

  • 您的 mdb 中有访问表单吗?
  • 是的,代码从表单运行

标签: c# vba ms-access


【解决方案1】:

一般来说,您应该可以手动转换代码。您不会找到任何可以做到这一点的自动代码转换器。

话虽如此,您用来访问数据的框架在 C# 和 VBA 世界中是完全不同的(它们甚至在 VB.NET 和 VBA 之间也完全不同!)。因此,在开始之前,您需要先阅读 ADO.NET。

【讨论】:

    【解决方案2】:

    目前无法进行自动转换,但手动进行也有助于提高您的 C# 技能。这里有一篇 Top 10 文章带您了解常见差异:

    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

    祝你好运,我希望这会有所帮助。

    【讨论】:

      【解决方案3】:

      需要注意的一点是,当您在 VBA 中编码时,会自动包含一些对象名称空间和库引用。在 C# 中工作时需要显式添加这些。例如,

      Selection.TypeText("foo")
      

      在 VBA 中变成

      using Microsoft.Office.Interop.Word;
      
      Application word = new Application();
      word.Selection.TypeText("foo");
      

      在 C# 中。可以通过右键单击解决方案资源管理器中的 References 文件夹并选择“添加引用”来添加库引用。

      【讨论】:

      • 那是嵌入 Interop,我没有嵌入它,因此它不起作用:/
      【解决方案4】:

      鉴于 VBA 与 vb.net 非常相似,那么我建议您转换为 VB.net。实际上,您通常可以剪切 + 粘贴代码,尤其是如果此类代码来自代码模块。如果您的代码有 DAO.Recordsets,那么我建议在 VB.net 中创建一个“模仿”dao.recordset 的类。因此,大多数 VBA 代码可以接近 100% 进入 vb.net 代码模块。所以这表明您不需要转换,只需将 VBA 代码移至 VB.net。事实上,VBA 中 99% 的命令在 VB.net 中都以相同的语法存在。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-05-08
        • 2012-03-26
        • 2011-05-20
        • 1970-01-01
        • 1970-01-01
        • 2012-06-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多