• ベストアンサー

Accessのハイパーリンクで別画面にしたいです

Access超初心者です。 フォームをハイパーリンク化して、エクセルで作った工事作業費を別画面で表示させようと思うのですが、Accessも最大化してしまいます。 Accessの画面はそのままで別画面にする方法がありましたら、お教えいただきたいです。 宜しくお願いします。 Private Sub 工事作業費_Click() DoCmd.Maximize DoCmd.RunCommand acCmdAppMaximize End Sub

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

  • ベストアンサー
  • chayamati
  • ベストアンサー率41% (254/607)
回答No.4

回答No.2です フィールドのデータ型でハイパーリンク型。OLE型の2つを紹介しましたが 添付ファイル型もあります。 何れも同じような働きですが,、添付ファイル型は一つのフィールドに複数のファイルを定義できます 何れのデータ型もテーブルまたはフォームを開いて右クリックから一連の処理で登録し 参照はクリックでファイルを開きます。 因みに、ハイパーリンクの登録と参照です ハイパーリンク先登録 【テーブルまたはフォームを開く】⇒【フィールドを右クリック】⇒【ハイパーリンク】 ⇒【ハイパーリンクの編集】⇒【検索先】⇒【ファイル名】⇒【OK】 ハイパーリンク先を開く 【ハイパーリンクしたフィールドをクリック】 以上のですのでVBAは不要です。 尚、質問にある Private Sub 工事作業費_Click() DoCmd.Maximize DoCmd.RunCommand acCmdAppMaximize End Sub これは開いているフォームを最大化するもので、 デザイン時の大きさに戻すのは DoCmd.Restore ではないでしょうか リンク先のウィンドサイズはリンク先で定義することになる

hirokeys
質問者

お礼

添付ファイル型でスッキリ解決しました。 有難うございました。

その他の回答 (6)

回答No.7

ハイパーリンクだと制約が有ったり扱いが面倒なので コマンドボタンなどのクリック時イベントではダメ? Excelの工事作業費.xlsx のVBEを開いて ThisWorkbookのコードに Private Const SW_ShowNormal = 1 '元に戻す Private Const SW_ShowMinimizedD = 2 '最小化 Private Const SW_ShowMaxmized = 3 '最大化 Private Declare Function ShowWindow Lib "user32" _ (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long Private Sub Workbook_Open() Dim rtnVal As Long ' Debug.Print Excel.Application.hWnd rtnVal = ShowWindow(Excel.Application.hWnd, SW_ShowMaxmized) Windows.Arrange ArrangeStyle:=xlTiled 'シートの大きさをExcelに合わせます End Sub としてマクロありファイル(拡張子xlsm)で保存します。 Access側ではクリック時イベントなどに 'Shell SysCmd(acSysCmdAccessDir) & "excel.exe" & " " & "E:\てすと\工事作業費.xlsm" ’↑↓どちらか CreateObject("shell.application").shellexecute "E:\てすと\工事作業費.xlsm" などとしてみては? 単純にExcelを最大化させるには ハイパーリンクで工事作業費.xlsx を開き Altキーを押しながらスペースキーを押します。 小窓が現れるので、Xキー で行えます。 小窓が開いた段階で、Escキーを押せば中止できます。 以上、ご参考まで。

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.6

ハイパーリンクのツールはEXCEL、WORDには挿入リボン内にありますね ACCESSにはそのようなものは用意されていません。 データベースツールのリボン内にオブジェクトの依存関係ツール フォームのデザインビューのデザインリボンにハイパーリンクツールがありますが レコード毎の登録はできないようです やはりテーブルデザインで、フィールドの一つのデータ型をハイパーリンク型に することですね。

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.5

回答No.4です 添付画像を間違っていました すみません

  • Ceranaj
  • ベストアンサー率58% (14/24)
回答No.3

最大化表示させる意図が、ご質問文からだけでは理解しかねるのですが、 エクセルの表示位置・大きさをVBAで指定する。 というやり方では如何でしょうか。 参照サイトは以下。 http://www.officepro.jp/excelvbaform/form_form/index4.html http://www.moug.net/tech/exvba/0010004.html

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.2

テーブルのフィールドのプロパティーのデータ型を OLEオブジェクト型、ハイパーリンク型があります

  • Ceranaj
  • ベストアンサー率58% (14/24)
回答No.1

一行目の DoCmd.Maximize を、削除してみて下さい。 上手くいかないようでしたら、2行目の方を削除してみて下さい。

hirokeys
質問者

お礼

回答有難うございます。 こちらの説明不足ですみません。 エクセルを左半分、Accessを右半分使っているのですが、フォームをハイパーリンクした際、 Private Sub 工事作業費_Click() DoCmd.Maximize DoCmd.RunCommand acCmdAppMaximize End Sub にすると、Access・エクセル両方が全画面になります。 1行目を削除しても同様で、2行目を削除すると、右半分で Access・エクセル両方となります。 他にもエクセルを開いているので、その都度全画面若しくは右半分では 使いつらいのです… 他に良い方法がありませんでしょうか。宜しくお願いしますm(_ _)m

関連するQ&A

  • アクセスフォームのサイズの調整について

    一つは全画面表示(Maximize)で開きもう一つは普通の表示(Restore)で開くには? フォーム1とフォーム2があります。画像をご覧ください。 フォーム1は Private Sub Form_Load() DoCmd.Maximize End Sub で、 フォーム2は Private Sub Form_Load() DoCmd.Restore End Sub としてます。 フォーム1にコマンドボタンを設置して、 Private Sub フォーム2を開く_Click() DoCmd.OpenForm "フォーム2" End Sub として、フォーム2を開くのですが、 フォーム2が開くとフォーム1まで、元の大きさに戻ってしまいます。 行いたいことは、 フォーム1は全画面表示、フォーム2は、ノーマルな表示(全画面でも最小化でもない) にしたいのですが、不可能なのでしょうか?

  • acCmdAppMaximizeができてない

    アクセスのフォームのイベントで Private Sub Form_Load() DoCmd.RunCommand acCmdAppMaximize 'アプリケーションのサイズを最大化する End Sub としてるのに、実際フォームを開いても、フォームが最大化されません。 Private Sub Form_Open(Cancel As Integer) DoCmd.RunCommand acCmdAppMaximize 'アプリケーションのサイズを最大化する End Sub にしてもダメです。 なんででしょうか?ご回答よろしくお願いします。

  • access全画面表示されない

    VBからacesssを開くと全画面表示されません。 しかし、フォルダをダブルクリックして開いたり、 空のaccessアプリケーションを立ち上げて、「ファイルを開く」で開くと、全画面表示されます。 【VB】-------------------------------------------- Sub AccOpen() Dim AccApp As Access.Application Dim MyPath As String MyPath = "○○.accdb" AccApp = CreateObject("Access.Application") AccApp.OpenCurrentDatabase(MyPath) AccApp.Visible = True AccApp.UserControl = True End Sub -------------------------------------------------- 【access】---------------------------------------- Private Sub Form_Load() DoCmd.RunCommand acCmdAppMaximize 'アプリケーションのサイズを最大化する Vbから開くと最大化されない。 End Sub -------------------------------------------------- としています。 アクセス2007、VB2010です。 VBからだと DoCmd.RunCommand acCmdAppMaximizeが無視される理由を教えてください。

  • アクセスのマクロ

    友人がアクセスで作ったマクロです。3行目で止まってしまいます。どこが悪いのでしょうか。(私は全くの素人でわかりません) Private Sub 記載事項入力ボタン_Click() DoCmd.Close acForm, "初期画面", acSaveYes DoCmd.OpenForm "入力フォーム", acNormal ←ここ End Sub

  • コマンドボタン名を取得して変数に代入したい。

    OS:windowsXp Access Version:Xp 既出でしたらすみません。 INDEXのフォームにて複数コマンドボタンを作り、それを押すと各登録フォームや集計フォームが開くようにしています。 さて、質問なのですが、コマンドボタンで別のフォームを開く時の処理を(フォーム名が違うだけで後は同じなので)まとめて書きたいのです。 現在は次のようにやっています。 ------------------------------------------------- Private Sub F_メニュー_Click() Call close_form DoCmd.OpenForm "F_メニュー", acNormal, , , acFormEdit, acWindowNormal End Sub Private Sub F_売上伝票_Click() Call close_form DoCmd.OpenForm "F_売上伝票", acNormal, , , acFormEdit, acWindowNormal End Sub      (中略) Private Sub 事業所別集計_Click() Call close_form DoCmd.OpenForm "F_事業所別集計", acNormal, , , acFormEdit, acWindowNormal End Sub Private Sub 消費税変更_Click() Call close_form DoCmd.OpenForm "F_消費税変更", acNormal, , , acFormEdit, acWindowNormal End Sub Private Sub システム終了_Click() Call close_form DoCmd.RunCommand acCmdExit End Sub Private Sub close_form() msgbx = False DoCmd.Close acForm, "index", acSaveYes End Sub ------------------------------------------------- これを  ボタン名_Click() ではなく  frm_open() 押されたボタン名を変数に取得(ボタン名=Form名にします。) DoCmd.OpenForm 押されたボタン名変数 のように共有したいのです。 どうすれば出来ますでしょうか?ご指導よろしくお願いします。

  • アクセスサブフォームで保存するとエラーとなる

    以前教えてもらった下記のサブフォームでのデータ保存VBAですが、このままだと添付ファイルのような画面が出てきてメインフォームでの保存が自動で出来ず、いろいろ試してみましたがうまくいきません。 何卒、ご指導宜しくお願い致します。 Private Sub 保存_Click() MsgBox "データを確定保存します" DoCmd.RunCommand acCmdSaveRecord If Not SysCmd(acSysCmdGetObjectState, acForm, "メインフォーム名") = 0 Then 'MsgBox "メインフォームの画面を更新します" With Forms!メインフォーム名 .Refresh End With End If End Sub

  • Access 2重3重のポップアップフォームの場合

    Accessです。 フォームを3つ作りました。 フォーム1=「A] フォーム1=「B]>ポップアップ「はい」 作業ウインド固定「はい」 フォーム1=「C]>ポップアップ「はい」 作業ウインド固定「はい」 「A」が開くとき Private Sub Form_Open(Cancel As Integer) ____DoCmd.OpenForm "フォーム2", , , , , acHidden ____DoCmd.OpenForm "フォーム3", , , , , acHidden End Sub として 「A」にはボタンがあってクリックすると「B」が Visible=True になります。 Private Sub コマンド1_Click() ____Forms!フォーム2.Visible = True ____Forms!フォーム2.SetFocus End Sub さらに「B」にもボタンがあってクリックすると「C」が Visible=True になります。 Private Sub コマンド1_Click() ____Forms!フォーム3.Visible = True ____Forms!フォーム3.SetFocus End Sub 「C」が現れた後、マウスイベントがきかなくなります。 というより、閉じることもできなく、アクセス本体をCLT+ALT+DELで強制終了させなくてはいけなくなります。 対処方法を教えて下さい。

  • アクセス 帳票ビュー・単票ビューをボタンで切り替え

    帳票ビュー・単票ビューをボタンで切り替えたいのですが、どの定数を指定すればいいのかわかりません。 Private Sub 単票ビュー_Click() Call test End Sub Private Sub 帳票ビュー_Click() Call test End Sub Sub test() If ActiveControl.Caption = "帳票ビュー" Then DoCmd.RunCommand acCmdFormView '単票ビューにする ElseIf ActiveControl.Caption = "単票ビュー" Then DoCmd.RunCommand acCmdFormView '帳票ビューにする End If End Sub こんな感じで作ったのですが、「acCmdFormView」ではダメで、単票ビュー、帳票ビューをそれぞれ指定したのですが、コードを教えていただけますか?

  • ACCESSのMVBかな?

    ACCESSの検索した結果をテーブルのところに転記する方法はありますか? 例)入力フォームで顧客が多い為「あ」と押してあ行の顧客(顧客情報はID・顧客名など)を検索して別のフォームを開き そこに転記というコマンドのボタンを押すと元の入力フォームに顧客IDが入力される なんてMVBのプログラム教えてもらえませんか? 現状最後の転記だけ出来てません  Option Compare Database Option Explicit Private Sub コマンド7_Click() If kdck = 1 Then Forms![借用入力F]![顧客ID] = Me![顧客ID] DoCmd.Close DoCmd.Close DoCmd.GoToControl "運転者名" End If End Sub Private Sub 閉じる_Click() DoCmd.Close End Sub とあるところから参考でコピーしたMVBのプログラムですがまったく初心者で理解できていません。 どなたか助けてください。

  • OpenFormがACCESS2000でエラー

    メニューのフォームで使っているOpenFormがACCESS2000で次のエラーがでます。OFFICE365では出ません。 「selectステートメントが間違っている予約語や引数を含んでいるか、区切り記号が正しくありません」 例えば次のコードです。 Private Sub 受注入力_Click() DoCmd.OpenForm "受注入力" End Sub 同じようなコードでも次のコードではなぜか出ていません。 Private Sub 受注入力B_Click() DoCmd.OpenForm "受注入力B" End Sub このフォームは何年も変更しておらずエラーは出なかったのですが、1か月前あたりから出るようになりました。 なぜかお分かりの方がおられましたらご教示願えませんでしょうか。

専門家に質問してみよう