相対パスで別MDBファイルを開く方法は?

このQ&Aのポイント
  • Accessでフォームにボタンを作り、別のmdbファイルのフォームを開く処理を書く方法について紹介します。
  • ファイルを他の人に配布する際に相対パスでファイルを指定する方法についても考えましょう。
  • 他の人のコンピュータ名が分からない場合でも、元ファイルと同じフォルダにあるファイルを指定する方法を検討しましょう。
回答を見る
  • ベストアンサー

相対パスで別MDBファイルを開きたい

Accessでフォームにボタンを作り、別のmdbファイルのフォームを開く処理を書いてあります。 コードは次のような感じです。 Dim acMDB As Object Dim isOK isOK = Shell("MSACCESS.exe \\コンピュータ名\フォルダ名\ファイル名.mdb",vbMaximizedFocus) set acMDB = GetObject("\\コンピュータ名\フォルダ名\ファイル名.mdb") この度ファイルを他の人へ配布することになったのですが、パス名を相対パスで書くことは出来ないのでしょうか? 他の人のコンピュータ名も分からない為、 出来たら元ファイルと同じフォルダにある…というような指定が出来れば助かるのですが…。

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

  • ベストアンサー
  • bonaron
  • ベストアンサー率64% (482/745)
回答No.1

Currentproject.Path で、現在の MDB のフォルダが取得できます。

ajisaika
質問者

お礼

ありがとうございました。 なんとかうまくいきました。

関連するQ&A

  • 【Excel VBA】選択フォルダへの相対パス

    色々なサイトを参考に、Excel VBAにて以下の様なロジックを作りました。 -------------- Dim SHELL, MYPATH Dim TARGETDIR As String Set SHELL = CreateObject("Shell.Application") Set MYPATH = SHELL.BrowseForFolder(&O0, "フォルダを選んでください", &H1 + &H10, ThisWorkbook.Path) If MYPATH Is Nothing Then End TARGETDIR = MYPATH.items.Item.Path Set SHELL = Nothing Set MYPATH = Nothing -------------- ブックのあるパス配下のフォルダを選択して、フルパスを"TARGETDIR"に格納します。 質問は2つです。 (1)"~.items.Item.Path"の構文の意味を教えて下さい。 (2)フルパスではなく"ブックのあるパスから見た、選択したフォルダへの相対パス"を知る方法を教えて下さい。 よろしくお願いします。

  • accessのmdbリンクの仕方

    Cドライブに共有フォルダをつくり、そこにデータのみ(会員管理mdb)とフォームのみ(会員mdb)をつくりました。他のPCからはデータのみのmdbは開けるのですが、フォームのみのmdbはエラーになってしまいます。(エラー内容:C¥共有¥会員管理mdb'は正しくありません。パス名に間違いがないことと、ファイル名が置かれたサーバーに接続していることを確認してください) なぜなのでしょう?初心者なのものでもうしわけございませんが、どなたか教えていただけますでしょうか?

  • 相対パスが使えない

    EXCELのファイルを呼び出したいのですが,絶対パスで e:\vb6.0\book1.xls と指定するとファイルが開くのですが, 相対パスで .\book1.xls と指定するとファイルが開けません。 なぜでしょうか? EXCELのファイルとvbのファイルは同じフォルダ内にあります.

  • MDBのフルパスを取得するには?

    アクセス97 を 使ってます。 C:\総務\住所録.mdb D:\総務関連\住所録.mdb E:\総務情報\住所録.mdb 上記のような場合 ファイルのフルパス (カレントフォルダ名) C:\総務\ D:\総務関連\ E:\総務情報\ を取得するには どんな関数を使えばよいでしょうか? curdir を 使ってみましたが うまくいきませんでした。

  • ショートカットを相対パスで指定する

    WIN2000を使って、配布用のファイルを作っているのですが、配布先では、ショートカットからファイルを見に行くときに、マシンごとにパスが違うのでリンクが切れてしまいます。 初心者の質問で申し訳ないのですが、相対パスでショートカットを作成する方法をお教え下さい。 よろしくお願い致します。

  • 相対パスの指定

    FindFirstFile(), remove(), OPENFILENAME などのファイルやフォルダのパスを扱うものについて、例えば 実行ファイルと同じディレクトリに有るdat.datというファイルを「dat.dat」とだけ書いて相対指定したつもりが、実行ファイルと同じディレクトリにdat.datが無かった場合にWindowsフォルダなどの特殊なフォルダや、AUTOEXEC.BATに書いてあるフォルダを使ってdat.datが検索されて適用されたりすることはあるのでしょうか? いろいろな関数や構造体が有りますが、相対パスが指定されたとき、絶対パスを作るために使用されるフォルダパスが、GetCurrentDirectory()以外のものが使われることってあるんでしょうか?

  • Access 自分の居る場所のパス

    こんにちは。 方法があるのかどうかもわかりませんが、もしあれば是非教えてくださいm(_ _)m 環境は WindowXP / Access2000 です。 VBA上にて、現在起動しているMDB(ようするに自分)が存在している場所 (パス)を取得するにはどうしたらいいのでしょうか? このMDBはまったく任意の場所に置かれる可能性があり、あらかじめパスを 持っておく事ができません。 具体的にはあるフォルダに、A.MDB と B.MDB が置いてあり A.MDB からShell関数を使って、B.MDBを起動するという処理を行いたいのです。 ですのでShell関数で、起動するB.MDBをフルパスで指定する為に まず自分(A.MDB)が置かれているフォルダまでのパスを取得したいのです。 Dir関数などで、B.MDBを検索して起動する方法もありかと思いますが、 B.MDBというファイルが複数存在していた場合にも、確実に 自分と同じフォルダにあるB.MDBを起動したいのです。 同じフォルダにあるので、ためしにパスを指定せずに起動しようとしましたが やっぱりダメでした^^; もし取得できる方法がお分かりでしたら教えてください。 よろしくお願いいたします。

  • 相対パス

    CFile::Rename(".\\inbox\\mdata05.bin",".\\inbox\\mdata04.bin"); としてサブフォルダー inbox にあるファイルmdata05.binの名前をmdata04.bin にしたいのですが .\\inbox\\mdata05.binには無効なパスが含まれています。 とメッセージが出ます。 相対パスの指定はどのようにすればよいのでしょうか? OSはVista、コンパイラはVC++2005 を使っています。 よろしくお願いします。

  • 別のAccessファイルのフォームを開くには

    Win2000、Access2000を使用しています。 「あいうえお.mdb」というファイルのフォーム上のボタンをクリックすると、「かきくけこ.mdb」というファイルを起動してそのファイル内のフォームを開きたいんですが、 「かきくけこ.mdb」を起動することができません。 エクセルやワードを起動する要領ではできないのでしょうか?(マクロの”アプリケーションの実行”とかShell関数とかで) どなたかおわかりになる方がいましたらお教え下さい。

  • タスクマネージャーのプロセスに該当するmdbファイ

    アクセス(mdbファイル)を4つ立ち上げています。 タスクマネージャーのプロセスを見ると、 イメージ名:MSACCESS.EXE メモリ使用量:208,922K というのが、プロセスの中でも一番多くメモリを使っているようです。 この208,922KのMSACCESS.EXEは 4つのmdbファイルのうちのどれかってどうやったらわかるのでしょうか? OSはXPです。