? asked in 電腦與網際網路程式設計 · 1 decade ago

如何用 NET (VB) 開啟檔案?如WORD檔

我想用 visual studio 的 visual basic 開啟 word 檔,或是 *.mdb (access file)

如同用 mouse double click 該檔一样,檔案會打開來

請問指令要怎広下啊?

shell 只能拿來開 「exe」澢,

請高手告之吧,謝謝

Update:

TO YogiBear

那若是要開啟 A.mdb 中的某一個資料庫,要怎広傳鍵盤值呢?

比如A.mdb 內有3個資料庫,分別為 分數, 班別, 年級

我想一氣呵成,直接開 「分數」這個資料庫,指令如何下??

My.Computer.Keyboard.SendKeys("分數", True)

這樣對吗?我試不行耶

Update 2:

非常感謝,試过大致可以了。但不好意思,我还有2個問題

1, 目前程式報行路徑,我忘了用何指令來得到

用 OpenFileDialog1 可以得到目前執行程式的目錄吗?

2. My.Computer.Keyboard.SendKeys("分數", True) => 我还是沒法直接開這個資料表

原諒我吧,我非專業人士,以前學的,又都忘了啊,自己找了半天,找不到哦~~

我MSN srf5198@livemial.tw =>看看会不会比較快些

Update 3:

實在太感謝你了,解決了我一個大問題,哈哈

除了

My.Computer.Keyboard.SendKeys("分數", True) => 我仍然無法打開這個資料表

這個似乎不好解決,但我的問題,已解決了95% 了,也不錯

其它都OK啦

現在还沒法決標啊,末滿4小時,時間到,就选你了哈~~

Update 4:

我是2003 專業版,是不是版本的問題啊??

Update 5:

我把程式碼貼出來好了 (~表因字數限制,略)

MyFile = Application.StartupPath & "\..\..\案例.mdb"

Shell("~\msaccess.exe " & MyFile, AppWinStyle.NormalFocus)

~

My.Computer.Keyboard.SendKeys("案例", True) =>要用人手點,才能開此檔哦

Update 6:

我試了,只問一次:

「要不要打開此檔」 => 用My.Computer.Keyboard.SendKeys("O", True) 即可

我把 My.Computer.Keyboard.SendKeys("N", True) 拿掉

一樣開不了 「分數」這個表單

Update 7:

是程式亂了吗?我重新開一次電腦好了

Update 8:

我試的結果是:

開了ACCESS後,「駐點」會停留在「分數」這個表單上,但不會打開它。

Update 9:

我是2008 Visual studio Pro. 版

2 Answers

Rating
  • chien
    Lv 7
    1 decade ago
    Favorite Answer

    Process.Start("c:\test.mdb")

    2009-06-18 18:11:30 補充:

    那你要改成如下:

    Shell("C:\Program Files\Microsoft Office\OFFICE11\msaccess.exe d:\test.mdb", AppWinStyle.NormalFocus)

    Application.DoEvents()

    My.Computer.Keyboard.SendKeys("N", True)

    ' 假如有問你是否阻擋不安全運算式。

    My.Computer.Keyboard.SendKeys("O", True)

    ' 假如有問你是否開啟。

    My.Computer.Keyboard.SendKeys("分數", True)

    ' 表單名稱。

    2009-06-18 18:33:39 補充:

    程式執行的路徑

    application.startpath

    2009-06-18 18:57:20 補充:

    可是我的打的開耶。

    真的。

    2009-06-18 19:14:48 補充:

    我也是 2003 專業版。

    它有確認 2 次嗎?

    有確認才要這 2 行。

    My.Computer.Keyboard.SendKeys("N", True)

    My.Computer.Keyboard.SendKeys("O", True)

    你先放一個檔在桌面上,手動開看看。

    2009-06-18 19:58:47 補充:

    SORRY 說漏了

    後面要送一個 Enter

    2009-06-18 21:27:54 補充:

    My.Computer.Keyboard.SendKeys(vbCr, True)

  • 1 decade ago

    我試了,还是沒用咧

    My.Computer.Keyboard.SendKeys("O", True)

    My.Computer.Keyboard.SendKeys("分數", True)

    My.Comuter.Keyboard.SendKeys("Enter", True)

    2009-06-19 02:08:03 補充:

    啊~~啊~~啊~~救人喔~~~

    真的有效耶~~啊~~哈哈~~

    跪謝啦~~你真是民族的救星,世界的燈塔啦,哈哈

Still have questions? Get your answers by asking now.