VBからアクセスを開くと全画面表示されない

このQ&Aのポイント
  • VBからアクセスを開くと、全画面表示されない現象が発生しています。
  • ただし、フォルダをダブルクリックして開いたり、空のアクセスアプリケーションを立ち上げて、「ファイルを開く」で開くと、全画面表示されます。
  • VBからアクセスを開くと、DoCmd.RunCommand acCmdAppMaximizeが無視される理由を教えてください。
回答を見る
  • ベストアンサー

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が無視される理由を教えてください。

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

  • ベストアンサー
  • samtomsan
  • ベストアンサー率55% (1060/1897)
回答No.3

> access側で Access側で設定してもできないと思います。 試してみましたが下記で問題なく全画面表示できました。 VBは2010、Accessは2002です。 Public Class Form1 Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load AccOpen() End Sub Sub AccOpen() Const acCmdAppMaximize = 10 Dim AccApp As Object AccApp = CreateObject("Access.Application") AccApp.Visible = True AccApp.RunCommand(acCmdAppMaximize) AccApp.UserControl = True End Sub End Class

hhfncatw
質問者

お礼

ご回答ありがとうございました。

その他の回答 (2)

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.2

勘違いならごめんなさい。 AccApp = CreateObject("Access.Application") AccApp.Visible = True AccApp.OpenCurrentDatabase(MyPath) AccApp.UserControl = True アプリケーションを可視化してから最大化してみるとか?

hhfncatw
質問者

お礼

ご回答ありがとうございました。

  • samtomsan
  • ベストアンサー率55% (1060/1897)
回答No.1

エラーにならないのでしょうか。 acCmdAppMaximizeの定義はしてありますか。 Const acCmdAppMaximize = 10 ちなみに Const acCmdAppRestore = 9 Const acCmdAppMaximize = 10 Const acCmdAppMinimize = 11 Const acCmdDocRestore = 14 Const acCmdDocMaximize = 15 Const acCmdDocMinimize = 60 など。

hhfncatw
質問者

お礼

早速のご回答ありがとうございます。 エラーにはなりません。 access側で Const acCmdAppMaximize = 10 Private Sub Form_Load() DoCmd.RunCommand acCmdAppMaximize End Sub にしてみましたが、やはりダブルクリックで開く分には全画面表示されますが、 VBから開くと、全画面表示されませんでした。

関連するQ&A

  • 「accessがもし開いてるなら開かない」とするに

    「accessがもし開いてるなら開かない」とするには? http://okwave.jp/qa/q7856640.html を参考にしたのですが、 Sub test1() Dim AccApp As Access.Application Dim MyPath As String MyPath = "C:\Users\Documents\test.mdb" AccApp = CreateObject("Access.Application") AccApp.Visible = True AccApp.OpenCurrentDatabase(MyPath) AccApp.UserControl = True End Sub で、アクセスのファイルを開くことができるのですが、 もし"C:\Users\Documents\test.mdb"が開いていたら開かない とするにはどうすればいいでしょうか? http://okwave.jp/qa/q8051720.html これのアクセスバージョンをするにはどうすればいいですか? Dim book As Workbook や For Each book In Workbooks をアクセスの場合、どうすればいいのかわかりません。

  • VBからaccess UserControl

    vb.netから 【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】-------------------------------------------- Sub test() MsgBox "The user started Access: " & Application.UserControl End Sub ---------------------------------------------------- を実行すると、Trueが返ってくるのですが、正しくはFalseなのではないでしょうか? アクセスのヘルプをみると、 ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・  True 現在のアプリケーションはユーザーによって起動されました。 False 現在のアプリケーションは、オートメーションを使って他のアプリケーションによって起動されました。 と書かれています。 ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・  AccOpenはvbで実行しているので、 「オートメーションを使って他のアプリケーションによって起動されました。」 に該当するのではないでしょうか?

  • タスクマネージャーのプロセスから消えなくなる

    こんばんは。 フォームにボタンを設置して、そのボタンをクリックすると 既存のアクセスファイルを開くようにしているのですが そのアクセスファイルを終了させてもタスクマネージャーのプロセスタブの MSACCESS.EXE*32 がいつまでも残ってしまいます。 VBのフォームを閉じると、MSACCESS.EXE*32は消えます。 VBのコードは、 Private Sub cmb_Access_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmb_Access.SelectedIndexChanged Call AccessOpen() End Sub ------------------------------ 標準モジュール Sub Access_Open() Dim AccApp As Access.Application Dim MyPath As String MyPath = "C:\test.accdb" AccApp = CreateObject("Access.Application") AccApp.OpenCurrentDatabase(MyPath) AccApp.Visible = True AccApp.UserControl = True AccApp = Nothing End Sub です。 VBのフォームから test.accdbを開く→閉じるを繰り返してると、 プロセスが溜まってしまって、アクセスでエラーが起こります。 なので、VBからアクセスを開いて閉じてたら、 プロセスも終了させるようにしたいのですが、 どうすればいいでしょうか? ご回答よろしくお願いします。

  • アクセスからアクセスを立ち上げたいのですが

    オフィス2007です。 アクセスからアクセスを立ち上げたいのですが、うまくいきません。 test1.accdbにフォームとコマンドボタンを設置して、 Private Sub コマンド1_Click() Dim acApp As Object Set acApp = CreateObject("Access.Application") acApp.OpenCurrentDatabase C:\test2.accdb" acApp.Visible = True End Sub を実行したのですが、アクセスのアプリケーションが一瞬だけ開いて、閉じてしまいます。 「 acApp.Visible = True」の部分に、ブレークポイントを設定して、ステップインしてみたところ、 acApp.Visible = Trueでアクセスのアプリケーションが立ち上がり、test2.accdbが表示されますが 「End Sub」で閉じてしまいます。 ずっと開き続けるにはどうすればいいでしょうか?

  • もし該当のアクセスファイルが開いているのなら開かな

    エクセルからアクセスを開く方法を教えてください。 そして、 「もし該当のアクセスファイルが開いているのなら開かない」 と言う条件も付け加えたいです。 Sub test1() Dim strAcName As String Dim accApp As Object strAcName = "D:\ アクセスファイル名.mdb " 「GetObject」「CreateObject」どちらにしても結果は同じ? Set accApp = GetObject(strAcName) Set accApp = CreateObject(strAcName) 既にAccessファイルを開いている場合は、Visible = Trueにしたらエラーになる。 If Not accApp Is Nothing Then accApp.Visible = True accApp.OpenCurrentDatabase (strAcName) End If Set accApp = Nothing End Sub だと、 OpenCurrentDatabase の部分で、実行時エラー7867 既にこのデータベースは開いています。 になります。 だからってこの部分をコメントアウトすると 前回と同じように Set accApp = Nothingを通り越すと 折角開いたアクセスファイルが閉じてしまいます。 エクセルからアクセスを開く時にもハイパーリンクで Sub test2() Dim strAcName As String strAcName = "D:\ アクセスファイル名.mdb " ThisWorkbook.FollowHyperlink strAcName End Sub で開けたのですが、 「もし該当のアクセスファイルが開いているのなら開かない」 が出来ないので、 「GetObject」か「CreateObject」を 使って開くのかな?と思っています。

  • ACCESSレポートの起動のさせて方に関して

    VB2008の環境からACCESSのレポートを起動させたいと考えて います。 いろいろ検索しました結果、以下のような記述をしてみましたが、正しく起動 してくれません。。。 どのように記述するのが正しいのでしょうか??? 教えて下さい。 環境 : VB2008/ACCESS2000 《記述内容》 ※ Microsoft Access 9.0 Object Libraryを追加 Dim accApp As Access.Application 'Access の新しいインスタンスを作成 accApp = CreateObject("Access.Application") 'データベースを Access ウィンドウで開く accApp.OpenCurrentDatabase("c:\sample1.mdb") '印刷 accApp.DoCmd.OpenReport("R_sanple") '現在開いているデータベースを閉じる accApp.CloseCurrentDatabase() 'インスタンス破棄 accApp = Nothing

  • 画面のちらつきをやめるにはどうすればいいでしょうか

    アクセスです。 Sub test() Set objAcc = CreateObject("Access.Application") objAcc.OpenCurrentDatabase "C:\test.accdb", False objAcc.Run "プロシージャー" objAcc.Quit Set objAcc = Nothing End Sub ------------------------- 上記のプロシージャーを実行して、他のファイルのプロシージャーを実行しているのですが 毎回ファイルが立ち上がってしまいます。 画面のちらつきをやめるにはどうすればいいでしょうか? DoCmd.SetWarnings False と DoCmd.SetWarnings True を入れてみましたが、無意味でした。 objAcc.OpenCurrentDatabase でアクセスが起動し、 objAcc.Quit で閉じます。 エクセルで例えるのなら、 Application.ScreenUpdating = False みたいなことがやりたいです。

  • acCmdAppMaximizeができてない

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

  • フォームを開いても真ん中に表示されない

    アクセス2007です。 フォームのプロパティで「自動中央寄せ」を「はい」にして Private Sub Form_Load() DoCmd.RunCommand 10 DoCmd.ShowToolbar "Ribbon", acToolbarNo 'リボンを非表示にする Application.CommandBars("Status Bar").Visible = False 'ステータスバーを非表示にする 'ナビゲーションウィンドウを表示しない DoCmd.SelectObject acForm, "", True DoCmd.RunCommand acCmdWindowHide End Sub をすると、真ん中に表示されません。 ナビゲーションウィンドウ分だけ左に寄ってしまいます。 Private Sub Form_Load() 'ナビゲーションウィンドウを表示しない DoCmd.SelectObject acForm, "", True DoCmd.RunCommand acCmdWindowHide DoCmd.RunCommand 10 DoCmd.ShowToolbar "Ribbon", acToolbarNo 'リボンを非表示にする Application.CommandBars("Status Bar").Visible = False 'ステータスバーを非表示にする End Sub のように順番を前後させても結果は同じです。 真ん中表示だけでなく、アプリケーションを最大化しつつ リボン・ステータスバーを非表示に事は不可能でしょうか?

  • Access2000のプロセスが残る

    Access2000のプロセスが残る こんにちわ、いつもお世話になってます。 実行環境:WindowsXP Pro、Access2000、アプリ1(VB.NET作成) 開発環境:Windows7、Access2007、VB2008、アプリ1(VB.NET作成) VB.NET作成アプリはSQLサーバに情報を登録し 登録された情報をもとに印刷用テーブルを作成し Accessのマクロを起動させるプログラムです。 AccessはリンクテーブルでSQLサーバと接続され、 印刷用のレポートがあり、マクロはレポートを起動するものです。 プログラムは以下のような記述をしています。 ============================================ Dim oAcs As Access.Application oAcs = New Access.Application oAcs.OpenCurrentDatabase("C:\Print.mdb") oAcs.DoCmd.SetWarnings(False) oAcs.DoCmd.RunCommand(10) ' ウィンドウの最大化 oAcs.DoCmd.OpenForm("印刷") '印刷マクロ起動 oAcs.DoCmd.Maximize() ' 画面の最大化 oAcs.Visible = True AppActivate("Microsoft Access") oAcs.DoCmd.RunCommand(10) ' ウィンドウの最大化 ============================================ レポート表示後の印刷は自動ではないため Accessを起動したら起動しっぱなしになってます。 解放処理をしていないのでプロセスが残るのは既知です。 開発環境にてアプリ1を実行させAccessでレポートを表示させます。 Accessを終了してもプロセスが残りますがアプリ1を終了させると Accessのプロセスは終了します。 実行環境にて上記の同様の動作を行うと アプリ1を終了させてもプロセスが残ってしまう場合があります。 VB.NETで作成された同様のアプリからのAccess起動にも関わらず プロセスが残ってしまうのはAccessのバージョンとかが関係してるんでしょうか? 情報提供をお待ちしてます。

専門家に質問してみよう