• ベストアンサー

アクセス2003で7種類データベースを作成しています。これらをそれぞれ

アクセス2003で7種類データベースを作成しています。これらをそれぞれアイコンにして1クリックで開けるようにメインメニューのフォームを作りたいと考えています。どのようにしたらできるでしょうか? エクセルやワードなどはできるのですが、アクセスは無理でしょうか?よろしくお願いします。

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

  • ベストアンサー
  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.4

No.3です。 > でもやはり、ハイパーリンクにはコンピュータやデータに問題を起こす可能性が > あるものもあります。・・・とセキュリティ警告がでます。 前回の私の回答では、ハイパーリンクは使用していないはずなのですが・・・(汗) ひょっとして、No.2の方の回答と混同されて、ハイパーリンクも同時に設定されて しまった、ということでしょうか。 もしそうであれば、恐らくコマンドボタンに対してハイパーリンクも併設されている 状態かと思いますので、それを削除してください。 (前回の私の回答では、ハイパーリンク以外の方法で別のMDBファイルを起動  しているため、ハイパーリンクは不要です) 手順としては以下の通り:  1)当該フォームをデザインビューで開く  2)当該コマンドボタンをダブルクリックするなどして、コマンドボタンのプロパティ   シートを開く  3)『書式』タブに『ハイパーリンクアドレス』の項目があるので、そこに記述された   文字列(=リンク先のアドレス)を削除  4)フォームを保存して閉じる ・・・以上です。

その他の回答 (3)

  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.3

Access2003だと、マクロのセキュリティ設定やデジタル署名の有無にもよりますが、 起動時に『セキュリティ警告』が出るかと思います。 メインメニューとなるMDBファイルから起動するたびにそれが出るとなると、恐らく 「このメッセージはどうにかならないか」という話が出てくるかと思います。 それの対処も含めてのサンプルコードです: (別のMDBファイルを起動するのは当該フォームのみと考え、フォームのモジュールに 全て貼り付ける前提としました) '~~~~~~~~~~~以下を貼り付け~~~~~~~~~~~~~ Option Explicit '【各コマンドボタンから共通で使用するSub】 Private Sub OpenMDB(strPath As String) 'エラー発生時は「エラー処理」の行に飛ばす On Error GoTo エラー処理   '変数の宣言   Dim Acc As Access.Application, strMsg As String   '「Microsoft Office X.X Object Library」への参照設定を行う場合は不要   Const msoAutomationSecurityLow As Long = 1   '確認メッセージが不要な場合は、以下の2行は削除   strMsg = "以下のデータベースを起動します:" & vbCrLf & vbCrLf & strPath   If MsgBox(strMsg, vbOkCancel, "確認") = vbCancel Then Goto 終了処理   '当該DB用にAccessアプリケーションを起動   Set Acc = New Access.Application   '上記アプリケーションを可視化   Acc.Visible = True   'セキュリティメッセージを非表示にする設定   Acc.AutomationSecurity = msoAutomationSecurityLow   '引数「strPath」で指定したMDBファイルを開く   Acc.OpenCurrentDatabase strPath   'メモリの解放と同時に当該DBが終了するのを防ぐ処理   Acc.UserControl = True 終了処理:   '念のため明示的にメモリを解放して終了   Set Acc = Nothing   Exit Sub エラー処理:   'エラー発生時はメッセージを表示   MsgBox Err & ":" & Err.Description, , Me.Name & " OpenMDB"   Resume 終了処理 End Sub '【コマンドボタンでの使用例】 Private Sub コマンド0_Click()   'データベースの絶対アドレスを引数に指定して、上記Subを呼び出す   OpenMDB "\\FileServer01\共有db\グループ月報.mdb" End Sub '~~~~~~~~~~~以上を貼り付け~~~~~~~~~~~~~ ・・・以上です。 MDBのパスや、コマンドボタンの名前は適当に設定したものなので、実際の ものに合わせて変更してください。

ayanohina
質問者

補足

ありがとうございます。でもやはり、ハイパーリンクにはコンピュータやデータに問題を起こす可能性があるものもあります。・・・とセキュリティ警告がでます。あと少しなのですが・・・。

  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.2

コマンドボタンのプロパティ「ハイパーリンクアドレス」に 対象mdbのフルパスを記述してみてはどうでしょうか。 VBAで記述するなら、 Me.btn1.HyperlinkAddress = "D:\tmp\aaa.mdb" ボタンがクリックされたら、対象mdbが起動されると思います。 後は、ボタンにbmpなど表示させて、アイコンの様に見せれば、と思います。

ayanohina
質問者

補足

ありがとうございます。上記のようにハイパーリンクでしてみたのですが、開く時にハイパーリンクについてと他のセキュリティ警告が出ます。結局合計3回クリックしなければいけないので、この警告を表示させないようにしたいのですが、できるでしょうか。申し訳ありません。

  • mumu_bb
  • ベストアンサー率50% (5/10)
回答No.1

無理ではないのですが、 私の知っている限りでは、VBAを使わないとできないような気がします。 フォームで実現するなら、 ボタンを7つ配置し、 それぞれに、イベント(VBA)を記述する という風になります。 イベントでは、Shell関数を使います。 もし、ファイルどうしで値を渡したりする必要がないのなら、 格好は悪くなりますが、 ひとつフォルダを作ってそこにショートカットを集めておく っていうのではだめですか?

ayanohina
質問者

補足

ありがとうございます。ファイルどうしで値は共有しないのでフォルダでと考えたのですが、格好を良くしたいと言われ、できればVBAでしたいのですが。イベント記述を教えていただけないでしょうか?

専門家に質問してみよう