2011-07-29 59 views
0

我有一個使用Access 2003的VB代碼的窗體。最近,我們希望使用與另一個具有SQL Server的數據庫的小型前端界面相同的窗體後端。但是,Access中該項目的文件類型是.adp,並非所有的vb代碼都能正常工作。如果你能幫助我修正錯誤在此代碼:幫助調試此代碼轉換爲.adp文件類型

Private Sub SurveyNameCombo_AfterUpdate() 

Dim db_CFC As DAO.Database 
Set db_CFC = CurrentDb 

Dim rst As DAO.Recordset, query As String, count As Integer 
query = "SELECT DISTINCT SurveyID FROM tbl_SurveyMeta WHERE SurveyName = " & Chr(34) & Me.SurveyNameCombo.Value & Chr(34) 

Set rst = db_CFC.OpenRecordset(query) 
count = rst.RecordCount 

If count > 1 Then 
    Me.SurveyIDCombo.RowSource = query 
Else 
    rst.MoveFirst 
    Me.SurveyIDCombo.Value = rst.Fields(0).Value 
    Call SurveyIDCombo_AfterUpdate 
End If 

End Sub 

它引發錯誤在爲DAO.DATABASE和DAO.Recordset。

謝謝你的幫助!

+2

拋出哪些錯誤? – Jacob

+0

它突出顯示第一行,並顯示「用戶定義的類型未定義」 – Martian

+0

將任何現有的Access應用程序轉換爲ADP從來沒有令人信服的理由。如果任何開發過程都應該使用ADP(它看起來像下一版Access中的恐龍格式),那麼它應該只是新開發,因爲很少直接從MDB/ACCDB轉換。 –

回答

0

一行像這樣的錯誤消息「未定義的用戶定義類型」 ......

Dim db_CFC As DAO.Database 

...意味着您的應用程序不包含對Microsoft DAO的引用對象庫。

打開一個代碼模塊,然後在VBE編輯器主菜單中檢查:工具 - >參考

按說的解決方法是放置一個複選標記框旁邊對Microsoft DAO對象庫,然後單擊好。但是,您的應用程序是ADP,我不知道DAO是否可以用於ADP。你可以試試。 :-)

對不起,我不能告訴你更多。幾年前我停止使用ADP。相反,我使用MDB格式和ODBC連接到SQL Server數據庫對象。如果您無法根據需要獲取ADP版本,也許您可​​以考慮使用相同的方法。