[[20140404102650]] 『ISAMドライバ』(FUJI) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『ISAMドライバ』(FUJI)

 お世話になります。
 エクセルからパスワード付きアクセスデータをシートに読み込みたくて
 下記のように組んでみたのですが、実行すると「インストール可能なISAMドライバが見つかりませんでした」とエラーが出ます。

 まだまだ初心者で、勉強中なもので。。
 どこが悪いのか教えて頂けると助かります。
 よろしくお願いいたします。m(__)m

 Sub 月データ読込()
    Dim adoCON  As New ADODB.Connection
    Dim adoRS       As New ADODB.Recordset
    Dim strSQL      As String
    Dim odbdDB      As Variant
    Dim wSheetName  As Variant
    Dim i           As Integer

    'カレントディレクトリのデータベースパスを取得
    odbdDB = ActiveWorkbook.Path & "実施台帳DB.mdb"

    adoCON.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=実施台帳DB.mdb;ACE OLEDB:Database Password=hik@w@;"
    adoCON.Open

    'データベースに接続する

    'DB接続用SQL
    strSQL = "SELECT T_実施台帳.* FROM T_実施台帳 ORDER BY T_実施台帳.ID;"

    'レコードセットを開く
    adoRS.Open strSQL, adoCON, adOpenDynamic

    'アクティブなシート名を取得
    wSheetName = ActiveSheet.Name

    'スタート行をセット
    i = 85

    'テーブルの読み込み
    Do Until adoRS.EOF
        With Worksheets(wSheetName)
            .Cells(i, 1).Value = adoRS!F_日付
            .Cells(i, 2).Value = adoRS!F_コード1
            .Cells(i, 3).Value = adoRS!F_コード2
            .Cells(i, 4).Value = adoRS!F_コード3
            .Cells(i, 5).Value = adoRS!F_J1
            .Cells(i, 6).Value = adoRS!F_K
            .Cells(i, 7).Value = adoRS!F_18
            .Cells(i, 8).Value = adoRS!F_20
            .Cells(i, 9).Value = adoRS!F_25
            .Cells(i, 10).Value = adoRS!F_T
            .Cells(i, 11).Value = adoRS!F_J2
            .Cells(i, 12).Value = adoRS!F_A
            .Cells(i, 13).Value = adoRS!F_Y
            .Cells(i, 14).Value = adoRS!F_P
                    End With
        i = i + 1
        adoRS.MoveNext
    Loop

    'クローズ処理
    adoRS.Close
    Set adoRS = Nothing
    adoCON.Close
    Set adoCON = Nothing

 End Sub

< 使用 Excel:Excel2007、使用 OS:Windows7 >


ぱっと見ただけですが、odbdDBという変数を使っていない。odbdDBのパス名とファイル名の間に"\"が足りない。
ステップ実行して、どこでエラーになるか特定すべし。まぁ、Open時と思いますが。
(???) 2014/04/04(金) 12:45

 (???)様
 早速ありがとうございます。
 お察しの通り、Open時にエラーになります。

 因みに"\"が文中にどんな感じで入るのか教えて頂けると助かります。
 よろしくお願いいたします。
(FUJI) 2014/04/04(金) 14:40

DBを扱うコーディングができた人は初心者ではないし、デバッグは自力で行うべき。
自力解決の努力をせず、他人に尋ねるのは甘え。

とりあえず、User Id指定が無いのが気になりますが、たぶんこんな感じ。

    odbdDb = ActiveWorkbook.Path & "\実施台帳DB.mdb"
    adoCON.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=""" & odbdDb & """;Password=hik@w@;"
(???) 2014/04/04(金) 16:27

 (????)様
 おっしゃる通りです。
 ですが、コーディングが出来るというよりは、例題を加工して手探りで作っている状態なので
 全てを理解できている訳でもなく、手探りでいじっている状況です。
 限られた時間の中で処理を迫られていて、甘えと取られても仕方がないのですが
 ご対応本当に感謝いたします。
 何とか頑張ってみます。ありがとうございます。
(FUJI) 2014/04/04(金) 17:33

 ADO の指定自体は問題なさそうなので、まずはパスワードをはずしたファイルで
 動作検証してみてはどうでしょうか。
 Provider の指定が正しくない場合にも、該当エラーが表示されるようです。

 こちらでは素のファイル指定であれば、上記の記述でOpenまではできました。
(Mook) 2014/04/04(金) 20:16

 adoCON.ConnectionString = _
   "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & _
   odbdDb & ";Jet OLEDB:DatabasePassword=hik@w@;"

 これでは? いかがですか?

(ichinose) 2014/04/05(土) 01:03


 皆様、本当にありがとうございます。
 仕事場のパソコンからなので、お返事が遅くなりました。

 ファイル名の前に¥を付けて、Jetにしたら
 「インストール可能なISAMドライバが見つかりませんでした」のエラーは出なくなりました。

 しかし今度は

  'レコードセットを開く
    adoRS.Open strSQL, adoCON, adOpenDynamic

 のところで「一つ以上の必要なパラメーターの値が設定されていません。」とのエラーが…。
 例文と照らし合わせてみても間違いは無いはずなのですが。

 皆様のおかげで少し進んだので、もう一歩と思いながら向かっております。

(FUJI) 2014/04/07(月) 09:32


 >一つ以上の必要なパラメーターの値が設定されていません。

 というエラーメッセージで検索してみれば、色々でてきますよ!!

 大抵は、SQL文にミスがある場合みたいですよ!!

 全角で記述されている箇所がある(本来は、半角なのに)

 もう一度、sqlをご自分で実際に打ち直してみてください。

(ichinose) 2014/04/07(月) 20:16


 (ichinose)様
 本当にありがとうございます!
 やってみます!
 実は近いうちに今の職場を離れなくてはならなくて
 前任者はセキュリティー強化の為にパスワードを設定したのだと思いますが
 OSのバージョンアップとか、様々なハードルがありまして…。
 でも、少しでも後任の為に良い状態にして去りたいのです。

 皆様のご協力で、うまくいく事が出来たら最高に嬉しいです。
 お陰様で凄い勉強になります!
 結果はまた明日、職場でやってみてご報告致します!
(FUJI) 2014/04/07(月) 23:40

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.