- 締切済み
アクセスのVisual Basicでのエラー。
アクセスでデータベースを作成してて、フォーム上にあるコマンドボタンにDAOを使用しましたが、 そのボタンを押すと「オブジェクトはこのプロパティまたはメソッドをサポートしていません。」というエラーがでてしまいます。 どうしたらいいでしょうか?宜しくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- palmmy
- ベストアンサー率38% (841/2169)
>他に方法はありますでしょうか? 参照設定で順番が入れ替えれると思います。 Microsoft DAO は可能な限り上にありますか? (上から3番目までもってこれると思います。)
- finalstarforce
- ベストアンサー率64% (16/25)
まず、Visual Basic Editor(ソースを入力するウインドウ)のメニューの 「デバッグ」→「(プロジェクト名)のコンパイル」 を実行してください。 コマンドボタンを押したときと同じエラーが出るようであれば、 Visual Basic Editorのメニューの 「ツール」→「参照設定」を開いて、 Microsoft DAO 3.6 Object Library(Access2000の場合) にチェックが入っているかをご確認ください。 チェックを入れないとDAOは使用できません。
補足
ご回答ありがとうございます! 記載されてたとおりにしてみましたが、やはり同じエラーがでてしまいます。 ちなみにアクセス2002を使用してます。 他に方法はありますでしょうか?
- sakura-pon
- ベストアンサー率20% (153/744)
ちょっとこれだけの情報では判断つきかねます。 クリックイベントのソースを見せて貰ったほうが、みなさん回答し易いと思いますよ。
補足
申し訳ありません。。。 下記クリックイベントのソースになります。 宜しくお願い致します。 Private Sub cmd表示_Click() On Error GoTo Err_cmd表示_Click Dim stDocName As String Dim stLinkCriteria As String Dim strWhere As String 'Where句格納用変数 Dim strSQL As String 'SQL文格納用変数 Dim dbs As Database 'DAO DATABASEオブジェクト Dim qdf As QueryDef 'DAO QueryDefオブジェクト 'フォームに入力された値から抽出条件を作成する 'Where条件を初期化 strWhere = "" '代表者姓フリガナ 先頭一致 If Len(Me.代表者姓フリガナ) > 0 Then strWhere = strWhere & "AND 代表者姓フリガナ Like '" & Me.代表者姓フリガナ & "*'" End If '会社名フリガナ 曖昧 If Len(Me.会社名フリガナ) > 0 Then strWhere = strWhere & " AND 会社名フリガナ Like '*" & Me.会社名フリガナ & "*'" End If '登記都道府県 If Len(Me.登記都道府県) > 0 Then strWhere = strWhere & " AND 登記都道府県 = '" & Me.登記都道府県 & "'" End If '住所1 先頭一致 If Len(Me.住所1) > 0 Then strWhere = strWhere & " AND 住所1 Like '" & Me.住所1 & "*'" End If '分類 If Len(Me.分類) > 0 Then strWhere = strWhere & " AND 分類 = " & Me.分類 End If '業種 If Len(Me.業種) > 0 Then strWhere = strWhere & " AND 業種 = " & Me.業種 End If '挨拶状 Yes / No If Not IsNull(Me.挨拶状) Then strWhere = strWhere & " and 挨拶状 = " & Me.挨拶状 End If 'Newsletter Yes / No If Not IsNull(Me.Newsletter) Then strWhere = strWhere & " and Newsletter = " & Me.Newsletter End If If strWhere <> "" Then '組み立てたWhere条件文の先頭には不要な and がついているので除去する。 strWhere = Mid(strWhere, 6) '取得件数0件の場合メッセージを表示し、処理を抜ける If DCount("*", "[tbl基本情報] ", strWhere) = 0 Then MsgBox ("該当データはありません。検索条件を見直してください。") Exit Sub End If 'Where条件があるので、セットする。 strSQL = strSQL & " WHERE " & strWhere End If 'SQL文の作成 strSQL = " SELECT * FROM tbl基本情報 " & strSQL 'qry条件抽出リストを削除する DoCmd.DeleteObject acQuery, "qry条件抽出リスト" 'DATABASEオブジェクトにカレントデータベースをセット Set dbs = CurrentDb '作成したSQL文でqry条件抽出リストを作成 Set qdf = dbs.CreateQueryDef("qry条件抽出リスト", strSQL) 'DAOオブジェクトのクローズ qdf.Close dbs.Close 'frm条件抽出リストのオープン stDocName = "frm条件抽出リスト" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_cmd表示_Click: Exit Sub Err_cmd表示_Click: MsgBox Err.Description Resume Exit_cmd表示_Click End Sub
補足
ご返事ありがとうございます。 上から6番目だったので、3番目までにもってこれたので 変更しましたが、それでもできませんでした。