Access2003VBAでパスワード付きのリンクテーブルを作成する方法

このQ&Aのポイント
  • Access2003VBAを使用して、パスワード付きのリンクテーブルを作成する方法を教えてください。
  • Cドライブ直下にあるA.mdbとB.mdbという2つのファイルがあります。B.mdbには『テーブルX』というテーブルがあります。A.mdbにはB.mdbの『テーブルX』をリンクさせたいのですが、B.mdbにはパスワードが設定されています。パスワードが設定されている場合、どのようにすればリンクテーブルを作成できるのか教えてください。
  • DoCmd.TransferDatabase関数を使用して、『テーブルX』をB.mdbからA.mdbにリンクさせることができますが、B.mdbがパスワードで保護されている場合はどうすればよいですか?ネットで検索しても情報が見つからず、急いでいるので教えていただけませんか?
回答を見る
  • ベストアンサー

Access2003VBA リンクテーブル(パスワード付き)を作成するには?

Cドライブ直下に、A.mdbとB.mdbがあります。 また、B.mdbには、『テーブルX』があります。 A.mdbに、B.mdbの『テーブルX』をリンクさせたいのですが、 b.mdbは、パスワードで保護されています。 以下のコードは、b.mdbに、パスワードの設定が無い場合、使用可能ですが、b.mdbに、パスワードの設定がある場合、どうすればよいのでしょうか?色々ネットで検索したのですが、出てきません。>< 急ぎなので、すみませんが、教えていただけませんでしょうか。 DoCmd.TransferDatabase acLink, "Microsoft Access", "C:\B.mdb", acTable, "テーブルX", "テーブルX", False

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

ODBCでリンクする方法があるようです。 DoCmd.TransferDatabase acLink, "ODBC", "MS Access;DATABASE=C:\B.mdb;PWD=pass", acTable, "テーブルX", "テーブルX", False ただ、主キーが設定してない場合は、ダイアログが出ますが・・・

関連するQ&A

  • アクセス リンク先のバックアップテーブル削除

    お世話になっております。 以前、リンク先DBでリンクテーブルのバックアップをとり、 同じ名称のテーブルがあったら処理しない というVBAを教えていただいたのですが・・・ そこに付随して質問です。 Dim appAccess As Access.Application Set appAccess = CreateObject("Access.Application") With appAccess .OpenCurrentDatabase strLinkDB If numHantei = 1 Then .DoCmd.TransferDatabase acImport, "Microsoft Access", _ strLinkDB, acTable, "T_権限情報", "BK_テーブル1_" & Format(Date, "yymmdd") .DoCmd.TransferDatabase acImport, "Microsoft Access", _ strLinkDB, acTable, "T_社員情報", "BK_テーブル2_" & Format(Date, "yymmdd") End If .Quit End With Set appAccess = Nothing 7日以上経過したバックアップファイルを削除するには (DoCmd.DeleteObject acTableを使って削除になるかと思いますが)、 実際、どのようにしたら可能でしょうか。 初心者につき、ご教示いただけると幸いです。 よろしくお願い致します。

  • インポートの上書

    アクセス2003で DoCmd.TransferDatabase acImport, "Microsoft Access", "C:\DATA\データ.mdb", acTable, "データ", "データ"を実行してテーブルをインポートしましたが 実行する度にテーブルが データ データ1 データ2と増えていきます 上書させるにはどの様にすればよいでしょうか

  • VBSにて、Accessのテーブルを削除

    VBSの質問がここが妥当でなかったら、すみません。 VBSで、Accessの"A_TBL"というテーブルを削除したいのですが、 Set objAccess = CreateObject("Access.Application") objAccess.OpenCurrentDatabase("C:\test\TEST.mdb) objAccess.DoCmd.DeleteObject acTable, "A_TBL" を実行すると、 「実行時エラー:この変数は宣言されていません。:'acTable'] と出力され、エラーになります。どなたか、教えていただければうれしいです。 どうか、お願いします。

  • Accessでの他ファイルとのリンク処理

    いつもお世話になっております。 Access2000(OSはWindowsXP)で作った販売管理システムのスタートメニューを起動させたら、他のAccessファイル(顧客管理)にあるテーブル(住所録)の有無をチェックして、存在していればリンクし、存在していなければスタートメニューの処理を終了させるプログラムを作成中です。 VBAで記述したく、インターネットを調べて下記のように書きました。 途中までの記述ですが、住所録テーブルの有無(場合によっては顧客管理ファイルの有無でも構いませんが)を判断して、これらの処理をするには、どのように記述すればよいか教えて頂きたく思います。 なお、データ(またはファイル)が存在していない場合には、「存在していません」のようなメッセージを出したく思います。 基本的なことかも知れませんが、宜しくお願い致します。 ------------------------------------------------------------ '[接続] '(前に残ってたら消す、残ってなかったらエラーは Resume Next で飛ばす) On Error Resume Next DoCmd.DeleteObject acTable, "リンクテーブル1" On Error GoTo 0 '(再接続) DoCmd.TransferDatabase acLink, "Microsoft Access", "c:\顧客管理.mdb", acTable, "MT住所録", "リンクテーブル1", False '[切り離し] 'DoCmd.DeleteObject acTable, "リンクテーブル1"

  • テーブルのプロパティの説明欄消失

    ACCESS VBAで以下のような指定でインポートを行っています。 DoCmd.TransferDatabase acImport _ , "Microsoft Access" _ , S_FileName _ , acTable _ , hairetu(j) _ , hairetu(j) _ , False インポートは正常にできるのですが、テーブルのプロパティの説明の記述が消えてしまいます。 消えなくする方法はありますか? できなければ、プログラムで付与する方法はありますか?

  • Access2007 外部MDBコントロール

    Access2007 外部MDBコントロール 使用OS:xp Access:2007 いつもお世話になっております。 Access2007のVBA(GetObject)を利用して、外部MDBをコントロールしたいと考えております。 「実現したい内容」 3つのMDBが存在します。 A.mdb B.mdb C.mdb A.mdbにコードを書いて、B.mdbにC.mdb内のレポート「レイアウト」をインポートします。 ******************************************************************************************************* Dim ACC As Access.Application Set ACC = GetObject("B.mdbのフルpath") '外部MDBへ接続 DoCmd.SetWarnings False On Error Resume Next ACC.DoCmd.DeleteObject acReport, "レイアウト" 'レポートの削除 On Error GoTo 0 ACC.DoCmd.TransferDatabase acImport, "Microsoft Access", "C.mdbのフルpath", acReport, "レイアウト", "レイアウト", False ACC.CloseCurrentDatabase Set ACC = Nothing ******************************************************************************************************* 実行するとレポート「レイアウト」はB.mdbに格納(インポート)されるのですが、 その際、C.mdbが一旦起動し、データベースウインドウが開いて閉じる動作が走ってしまします。(当然だと思いますが) その動きを止める(裏でコードが走る状態)ことはできないでしょうか。 以前Access2000で同じコードを実行したときは画面の切り替えはなく、裏で実行されていました。 過去質問をうまく検索できずご質問させていただきます。 ご教授の程宜しくお願い申し上げます。

  • Accessのテーブルへのリンク

    いま、ASPのDBとして使っているAccessのファイル A.mdbがあります その中の一つのテーブルを別のAccessファイル B.mdbにリンクして、参照したいと思っています。 しかし、B.mdbからリンクするときに インポートすると、A.mdbの変更が反映されず、 リンクすると、B.mdbで変更したものがA.mdbにも反映されて困っています. やりたいことはB.mdbから安全に(変更なしで)A.mdbのテーブルを 閲覧したいのです. ・A.mdbの変更をB.mdbに反映したい ・B.mdbのテーブルの変更はA.mdbに影響がない と言うことです. どうかお力添えを よろしくお願いします.

  • Access パスワード付きDBへの接続について

    お世話になります。 アクセスについて行き詰まりましたので質問をさせて下さい。 現在、Access2000にて開発を行っております。 フォームやクエリのみのファイル(A.mdb)と、DBのパスワード設定がされているファイル(B.mdb)があり、B.mdbはA.mdbのリンクテーブルとなっています。 A.mdbにはフォームが複数あり、フォームA上のボタンを押下するとDoCmd.Openform命令にてフォームBが立ち上がります。 フォームBではレコードソース(SELECT文)が設定されており、データが画面の各項目に表示された状態でフォームBが立ち上がる動きとなっています。 ここで問題なのですが、DBにパスワードが設定されているため、フォームBのレコードソースのSQL文が実行された時に「パスワードが正しくありません」というエラーが発生しフォームBを立ち上げることが出来ません。 フォームBのOpenイベントにDBへ接続するプログラム(OpenDatabase命令で4つ目の引数にパスワードを設定)を入れましたがエラーは変わりませんでした。 解決策をどなたかご存知でしたら、ご教授いただきたいと思います。 以上、よろしくお願い致します。

  • アクセス2007 テーブルの全削除とデータ移動

    アクセス2007 テーブルの全削除とデータ移動 全テーブルを削除して、データをインポートしようとしています。 http://okwave.jp/qa/q5952603.html 以前の質問<QNo.5952603>の続きになってしまいますが。 >質問3. >削除後にインポートをしたいのですが。 >手動でアクセスメニュー>外部データ>アクセス(のインポート)>現在の~~>すべて選択(テーブル)>OK >これを実現するVBの記述は、どんなコードになるのでしょうか? 答え >DoCmd.TransferDatabase acImport, "Microsoft Access", strPATH, acTable, strTDef, strTDef, False なのですが、手動で行った場合の「オプション」>インポート「リレーションシップ=チェックON」の部分が 上記のお答えのコードで実現できませんでした。 各クエリの部分的なリレーションは残ってますが、全体のリレーション線が消えてしまいます。 どのようにしたら再現できますでしょうか?

  • Access2000の追加クエリ(INSERT句)について

    Access2000で作成したmdbファイルAから他のmdbファイルBにあるテーブルデータを取得して、mdbファイルAのテーブルにこのデータを追加する構文として、 DoCmd.RunSQL "INSERT INTO テーブル1 SELECT * FROM テーブル2 IN ""Z:\mdbファイルB.mdb""", -1 を記述して使用していますが、mdbファイルB.mdbにデータベースパスワードを設定すると、「実行時エラー・パスワードが正しくありません」のエラーが発生します。 接続先のmdbファイルBにパスワードを設定した状態で使用したいのですが、何かよい解決策はないでしょうか? なお、上記のとおりパスワードを設定した状態でテーブルにデータを追加できさえすればどんな方法でもかまいませんのでご教授願えないでしょうか。 よろしくお願いします。