2011-10-25 75 views
0

我有一個Access項目,我希望只有在查詢返回結果時打開表單才能顯示標籤。連接到數據庫從VB到Access的錯誤

我有以下代碼:

Private Sub Form_Load() 
Dim stSQL As String 
Dim db As DAO.Database 
Dim rs As DAO.Recordset 

Set db = DBEngine.Workspaces(0).Databases(0) 

Dim cn As DAO.Connection 
Set cn = DAO.Connection 


cn.Provider = "Microsoft.Jet.OLEDB.4.0" 

cn.Open stdbName 
stSQL1 = "SELECT * FROM tbl_lessons" 
Set rs = db.OpenRecordset(stSQL1, dbOpenDynaset) 

If (rs Is Not Nothing) Then 
    If (rs.GetRows() > 0) Then 
     lbl_alert.Visible = True 
    Else 
     lbl_alert.Visible = False 
    End If 

End If 

當我嘗試打開我收到以下錯誤形式: 編譯錯誤: 方法或數據成員找不到

我使用Access 2007與VB7

有人可以幫忙嗎?

+0

什麼是VB7?我們的代碼似乎是ADO,而不是DAO。你不應該只是將DAO.Connection更改爲ADO.Connection? –

+0

如果您不使用Access,只需使用其他工具/語言的MDB,請重新標記:用「Jet」替換「ms-access」 –

回答

0

注意 - 當在VBA中發生編譯錯誤時,總是突出顯示一行代碼。仔細查看突出顯示的行將幫助您找出您做錯了什麼。另外請注意,在嘗試運行表單之前,您應該始終編譯您的代碼。 (打開「調試」菜單>單擊「編譯VBAProject」或類似的東西)。

似乎有一堆問題,你可能必須一次解決一個問題。只是不斷修復問題並重新編譯代碼。

  1. 1cn.Open stdbName1
    - >stdbname沒有在你向我們展示了代碼的任何定義。
  2. Dim stSQL As String
    - >您將連接字符串定義爲stSQL,但在您使用的代碼中爲:stSQL1 = "..."。修復你的變量名稱。
+0

謝謝大家的幫助;不過,我仍然陷入困境。 我已經搜索了一整天,但找不到一個很好的教程。 我正在嘗試做一些我在10年左右沒有的事情..所以我對這些愚蠢的問題表示歉意...... 我試圖連接到我的訪問數據庫,運行查詢,並對結果做了些什麼組。 有人可以分享一個簡短的解釋,以便如何做到這一點? 謝謝 – user1013176

+0

我建議你如果它幫助了你,請提出這個問題,如果它回答了你最初的問題就接受它,然後問一個新的問題,如果你需要任何其他的幫助。我個人沒有關於連接到Access數據庫的教程。 – Alain