返回列表 上一主題 發帖

[發問] Excel工作表單與Access資料庫的VBA互動問題

本帖最後由 c_c_lai 於 2013-12-27 18:03 編輯

回復 30# JEAN
這個是刪除資料錄的程式碼,
其內容是首先會刪除 Sheets("data") 內對應的被刪除資料,
接著、回頭又繼續去刪除儲存在 Access 的對應的資料,以保持兩者資料同步之故。
首先、妳幫我檢查一項動作:
A、  先勾選  "SQL Data"。然後在 "名字" 欄隨便輸入一名字、如: LuLu。
B、  輸完 LuLu 後,點選 "輸入確定" 按鈕,接著點選 "簽證內容1"、或者是
         "簽證內容2",然後瞧瞧裡面有沒有 "簽證選項",如果答案是 "Yes",
        那便要恭喜妳已找到(連結到) Access 資料庫了。
C、  最後妳才告訴我,妳實際想做的是甚麼?

TOP

回復 26# JEAN
這裡,我已再加入一個新的工作表單 Sheets("機票登錄"),在此表單內
"機票登錄" 只單純處理資料新增、更新、刪除、重置等輸入作業,相關的
資料儲存作業則全交由 Access 機票記錄明細表.mdb 資料庫存取紀錄。
至於原 Sheets("data") 的紀錄則依然保留給工作表單 "機票作業",
作為雙向儲存範例之用。也就是說、工作表單 "機票登錄" 或許就是
妳的需求 (程式碼在其"機票登錄"本身工作表單內),妳可以將它與
"機票作業"內之程式碼相互比較,便可領會兩者之間處理上的差異,
進而可作為妳個人領域上之探討及研究。

TOP

回復 26# JEAN
順序應先從 ThisWorkbook 的程式碼看起,然後再分別去瞭解
Sheets("機票作業")、以及 Sheets("機票登錄") 內的程式碼,
妳的重點可以先放在 ("機票登錄") 上。 理解後再行去體會
("機票作業")、如此妳的進展才會順利。最後才去瞭解 "模組"
裡如何處裡 ComboBox 內如何應用滑鼠滾軸的運作(Hook)、
以及如何釋放 (UnHook)。至於資料庫結構保持不變(Mdf、Accdb)。
最後、祝妳一帆風順!
2014年機票記錄.rar (123.68 KB)

TOP

回復 33# c_c_lai


    您好:   我有你的方法...會出現這個錯誤~~~
      

    您好:   我把檔案二個放在一起上傳給你~~請幫我看看..謝謝您
      2014年機票記錄二個檔案一起.rar (141.5 KB)

TOP

回復 34# JEAN
請問妳是要執行 MDF 資料庫、抑或是 ACCDB 資料庫?
因這兩種資料庫的驅動程式是不同的。
For Access MDF (2003):
  1.     .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & _
  2.                           ThisWorkbook.Path & Application.PathSeparator & "機票記錄明細表.mdb" & ";"
複製代碼
For Access Accdb (2007、2010):
  1.     '  For Microsoft.ACE.OLEDB.12.0,you need Microsoft Office 12.0 Access Database Engine to be installed.
  2.     .ConnectionString = "Provider=Microsoft.Ace.OLEDB.12.0;" & "Data Source=" & _
  3.                          ThisWorkbook.Path & Application.PathSeparator & "機票記錄明細表檔案.accdb" & ";"
複製代碼
當妳要使用 Accdb 資料庫時,妳程式碼的驅動程式便要啟動 For Access Accdb、反之亦然。

TOP

回復 35# c_c_lai


    您好: 公司的電腦是用office 2007的    不過excel儲存的方式是2003   因為其他人是用2003的版本。
               不過 access 2007的  所以會用2007的方式儲存。

               請問你說的MDF資料庫是什麼??   沒有學過  .不真好意思

TOP

回復  c_c_lai


    您好: 公司的電腦是用office 2007的    不過excel儲存的方式是2003   因為其他人是 ...
JEAN 發表於 2013-12-30 12:25

因為看到妳附件的檔案型態是 .accdb 才會有此一問。
MDF 是 Access 2003 的儲存檔的存檔類型,
ACCDB 則是 Access 2007、2010 的儲存檔的存檔類型。
在  Excel 2007、2010 的環境下可以存取 2003、及其 (2003) 以上版本
的資料庫。也就是說因為貴公司其他人均使用 2003 版本的 Office,
雖然妳的是 Office 2007, 在此條件情況下, 你便可以考量全體均
使用 mdf 的檔案。就不要使用 accdb 型態的資料庫檔案,否則其他
使用 2003 版本的同事都無法使用,太突出的表現也是不好的。
如此解說可否解決了妳的困惑? 此時驅動方式則要用:

  1.        .ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & _
  2.                           ThisWorkbook.Path & Application.PathSeparator & "機票記錄明細表.mdb" & ";"
複製代碼

TOP

回復 34# JEAN
原本語法在 2010 執行 OK,為避免困擾請修正如下:

TOP

回復 36# JEAN
2014年機票記錄.xls 我稍稍修正如下:


2014年機票記錄.rar (153.35 KB)

TOP

回復 39# c_c_lai


  您好:  謝謝您的幫忙~~~我有一點想放棄了,因為一直發生錯誤,問工程師,他也說不知道。

TOP

        靜思自在 : 一個人不怕錯,就怕不改過,改過並不難。
返回列表 上一主題