2011-07-29 14 views
0

私は、Access 2003を使用していたVBコードでフォームを作成しました。最近、SQL Serverを持つ別のデータベースの小さなフロントエンドインターフェイスと同じフォームを使用したかったバックエンド。ただし、Accessでのこのプロジェクトのファイルの種類は.adpであり、すべてのvbコードが適切に動作しているわけではありません。それはDAO.DatabaseとDAO.Recordsetのためにエラーを投げているヘルプこのコードを.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 

:あなたは私がこのコードのバグを修正するのに役立つことができれば。

ありがとうございました!

+2

どのようなエラーがスローされるのですか? – Jacob

+0

最初の行がハイライト表示され、「ユーザー定義型が定義されていません」 – Martian

+0

既存のAccessアプリケーションをADPに変換する魅力的な理由はありません。 MDB/ACCDBから直接変換するものがほとんどないため、ADPで開発する必要がある場合(次のバージョンのAccessで恐竜の形になっているように見えます)、NEW開発でなければなりません。 –

答えて

0

このような行にエラーメッセージ「定義されていないユーザー定義型」...

Dim db_CFC As DAO.Database 

は...あなたのアプリケーションがMicrosoft DAOオブジェクトライブラリへの参照が含まれないことを意味します。その後、

オープンコードモジュール、VBEエディタのメインメニューからチェック:ツール - >は

を参照します。通常の治療法は、次のMicrosoft DAOをクリックし、オブジェクトライブラリのボックスにチェックマークを配置するだろうOK。しかし、あなたのアプリケーションはADPであり、私はDAOがADPでも使用できるかどうかわかりません。あなたが試すことができます。 :-)

申し訳ありませんもっと詳しく説明できません。私は数年前にADPを使用して終了しました。代わりに、SQL ServerデータベースオブジェクトへのODBCリンクでMDB形式を使用します。必要に応じてADPバージョンを動作させることができない場合は、おそらく同じアプローチを検討することができます。

関連する問題