2009-11-24 66 views
0

我通過interop/COM成功連接到Microsoft Access數據庫..我需要將一些數據放入組合框和Requery,以便我可以獲取顯示的信息。C#/ Access Interop DoCmd值組合框

  // 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"); 

有沒有辦法通過Interop發送文本到控件中? (我見過GoToControl,但這是爲重點),但我仍然失去了,並嘗試谷歌搜索沒有太多運氣..

+0

有一點需要注意:辦公環境不支持Office互操作。請參閱http://support.microsoft.com/default.aspx/kb/257757 – JeffreyABecker 2009-11-24 02:40:46

+0

我認爲Jeffrey的意思是「在服務器環境中」。 – 2009-11-25 02:44:15

+0

嗯..我正在訪問網絡驅動器上的Access數據庫,但通過物理方式(在本地網絡上)。 – 2009-11-27 00:25:04

回答

0

在Access VBA中,通常足以將組合的行來源設置爲SQL字符串(RowSourceType:Table/Query)或值列表(RowSourceType:Value List)。列數也需要設置。你是這個意思嗎?

或者你的意思是你想設置一個特定的值?這可以通過使組合等於所需值的綁定列來設置。

+0

基本上我有組合框將已經填充的信息。組合框的值影響窗體:我所要做的就是插入其中一個項目,它應該自動完成它的意義。我明白你在說什麼,但是我怎樣才能通過.NET辦公室/訪問互操作插入文本,標題到這個組合框?謝謝。 – 2009-11-24 23:28:13

0

我不知道C#一個該死的東西,但你嘗試過了很明顯的:

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

這就是代碼將在訪問自己的工作方式。

+0

通過C#/ COM進行只讀。無法修改。 – 2009-11-27 00:24:21

+0

對不起!必須有辦法做到這一點,我只是不知道它會是什麼。 – 2009-11-27 20:55:08

+0

你提供的是真實而直觀的,即使它不是答案。 – 2009-12-02 00:16:31