出差前為了卡在一個坎兒,心裡很困惑。我的目的要用EXCEL 調用 ACCESS資料庫,照著書本上將程式寫下,一運行就提出錯誤,而且是令人很心虛的“系統錯誤”還有一系列號碼等等。依照錯誤提示上網查,網友都說是因為電腦配置太舊或太低,必須重裝電腦,讓我覺得很煩心。
出差回來,我原本想先試用老五的電腦,先試著排錯其他的地方,真的不行,只好重裝電腦;後來我還是再把書本拿起來,一行一行研究老師寫的程式,再想電腦提出錯誤時也曾提示不認識accdb這個格式,換句話說,這本2003年版的書上面寫的程式,只認識ACCESS2003的mdb格式,可能不認識ACCESS2007的accdb格式?於是我再度上網求教,這次我不用系統錯誤的提示找答案,而是針對microsoft. ject. oledb. 4.0提出問題,就五秒鐘吧,看到microsoft.ACE.oledb.12.0這個名詞,我就猜到版本升級之後,應該要用這個名為“引擎”的玩意兒。
Public Sub 連接數據庫()
Dim mydata As String, mytable As String, k As Integer
mydata = "C:\Documents and Settings\maymay\My Documents\第三章數據庫.accdb"
mytable = "資料表"
Dim myconnect As ADODB.Connection
Set myconnect = New ADODB.Connection
myconnect.ConnectionString = "provider=microsoft.ACE.OLEDB.12.0;data source=" _
& mydata
myconnect.Open
Dim myres As ADODB.Recordset
Set myres = New ADODB.Recordset
myres.Open mytable, myconnect, adOpenKeyset, adLockOptimistic
k = myres.RecordCount
MsgBox "與數據庫" & mydata & "連接成功!" & vbCrLf & vbCrLf _
& "在數據庫中的" & mytable & "表中共有" & k & "條記錄", _
vbInformation, "與數據庫連接"
For i = 1 To k
MsgBox "編號:" & myres.Fields(0) & "的職工信息:" & vbCrLf & vbCrLf _
& "姓名:" & myres.Fields(1) & vbCrLf _
& "性別:" & myres.Fields(2) & vbCrLf _
& "部門:" & myres.Fields(3) & vbCrLf _
& "工資總額:" & myres.Fields(8), vbInformation, "職工信息"
myres.MoveNext
Next i
myres.Close
myconnect.Close
Set myres = Nothing
Set myconnect = Nothing
End Sub
接下來兩個實驗也成功,然而,就在我信心十足的當兒,又來一個不知道錯在什麼地方的坎兒,一跑就提錯。
看來,只拿了ACE還是不夠的。