【问题标题】:C#/Access Interop DoCmd value comboboxC#/Access Interop DoCmd 值组合框
【发布时间】:2009-11-24 02:27:20
【问题描述】:

我已通过 interop/COM 成功连接到 Microsoft Access 数据库。我需要将一些数据放入组合框并重新查询,以便显示信息。

         // Create app
         MsAccess.Application app = new MsAccess.Application();

         // Open the database
         app.OpenCurrentDatabase(
            @"C:/Prog.mdb"
            , false, "");

         // Open the form
         app.DoCmd.OpenForm("frmMain",
            MsAccess.AcFormView.acNormal,
            System.Reflection.Missing.Value,
            System.Reflection.Missing.Value,
            MsAccess.AcFormOpenDataMode.acFormPropertySettings,
            MsAccess.AcWindowMode.acWindowNormal, 
            System.Reflection.Missing.Value
         );

         app.Forms["frmMain"]["ctrlCustList"] .. . 
              // This gets me the control instance validly.. 
              // but do I put text in it?
         app.DoCmd.Requery("ctrlCustList");

有没有办法通过互操作将文本发送到控件中? (我见过 GoToControl 但这是重点)但我仍然迷路并尝试谷歌搜索但没有太多运气..

【问题讨论】:

  • 需要注意的一点:办公环境中不支持 Office 互操作。见support.microsoft.com/default.aspx/kb/257757
  • 我认为 Jeffrey 的意思是“在服务器环境中”。
  • 嗯.. 我正在访问网络驱动器上的 Access DB,但通过物理方式(在本地网络上)。
  • Jeffrey 引用的文章仅适用于尝试从 Web 应用程序(即 Web 服务器上)自动化 Office。

标签: c# ms-access combobox interop


【解决方案1】:

在 Access VBA 中,通常将组合的 RowSource 设置为 SQL 字符串 (RowSourceType: Table/Query) 或值列表 (RowSourceType: Value List)。列数也需要设置。这是你的意思吗?

或者你的意思是你想设置一个特定的值?这可以通过使组合等于所需值的绑定列来设置。

【讨论】:

  • 基本上我有组合框将被填充的信息。组合框的值会影响表单:我所要做的就是插入其中一个项目,它应该会自动执行它应该做的事情。我明白你在说什么,但是如何通过 .NET office/access 互操作将文本、标题插入此组合框中?谢谢。
【解决方案2】:

我对 C# 一无所知,但你有没有尝试过显而易见的:

  app.Forms["frmMain"]["ctrlCustList"] = "value you want to set it to"

这就是代码在 Access 本身中的工作方式。

【讨论】:

  • 通过 C#/COM 只读。无法修改。
  • 对不起!必须有办法做到这一点,我只是不知道会是什么。
  • 您提供的内容真实而直观,即使它不是答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多