• 締切済み

accessの次のformをpopupformのようにあけるには

accessユーザーです formにボタンとかで次のformをあける場合に現在は次のform_open時に Private Sub Form_Open(Cancel As Integer) DoCmd.Restore End Sub DoCmd.Restoreで表示しています(そのままあけると最大化されてしまって、やりたいことは小さくあけたいのです)がバックのformも少し小さくなってしまいます あけるformのプロパティーでpopupを「はい」にしてあけるとイメージどうりにバックのformは変化がありません ところがそのあけたformにまたボタンをつけて別のformをあけようとすれば当然にpopupformですのでどうしても最前面にいてしまいます popupformでなくてバックのformを変化させない方法はないでしょうか

みんなの回答

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.4

> 新規作成で簡単なformを作成して開くであけると最大化でひらきますよね 最大化にはならないと思いますよ。 推測ですが、フォームの中のラインとか詳細セクションの中で 大きい値のものが有るのではないでしょうか?

hiyotom
質問者

お礼

長いことaccessはやっているのですが基本的なことができていないのかもしれません ご指摘のようにフォームの中のラインとか詳細セクションをしらべてみます ありがとうございました

全文を見る
すると、全ての回答が全文表示されます。
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.3

メニューからツール→起動時の設定でデータベースウィンドウの表示の チェックを外しては如何ですか? 次の起動時にはデータベースウィンドウは表示されなくなります。 (表示したいときは、F11 キーで)

hiyotom
質問者

お礼

ありがとうございました

hiyotom
質問者

補足

ずばりそのとうりにチェックをはずしてデータベースwindowを表示させないでやってみましたがうまくいきません 基本的なことですが新規作成で簡単なformを作成して開くであけると最大化でひらきますよね、これを指定のおおきさにするにはどうしてもDoCmd.Restoreであけないと小さくならないとおもうのですが よろしくおねがいします

全文を見る
すると、全ての回答が全文表示されます。
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.2

> バックのformも少し小さくなってしまいます このような状況になった事はありませんが、フォームを開く際に 位置とサイズを指定しています Private Sub Form_Open(Cancel As Integer)   DoCmd.MoveSize Right:=60, down:=100, Width:=12630, Height:=12100 End Sub フォームをちょうど良い大きさにしてからイミディエイトウィンドウで ?forms!フォーム名.windowwidth ?forms!フォーム名.windowheight で大きさを取得して上記のMoveSizeの値に入れています。

hiyotom
質問者

補足

すみません、一番最初にメニュー用フォームビルダで作成したメニューを使っています 原因はメニューformでDoCmd.Restoreを使用しているため 次のフォームをあけるときdocmd.Maximizeであけています なぜかというとメニューのときに引き継いだrestoreの状態で最大formに調整しても一番外側の枠にはaccessのform、つまりデータベースwindowが表示されていてその中に作成したformがあるため見栄えが悪くMaximizeであけるとそのデータベースwindowがなくなるためいいのですが最大であけるため次のformはDoCmd.MoveSize を使用しても動作しません、質問を言い換えるとデータベースwindowを消す方法があれば最大化Maximizeのコマンドを使用しなくてもすむので次のformサイズもおもうようにできるのですが

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

SetWindowPos() API を使用すれば、なんとななるような気がします。 SetWindowPos で検索してみてください。 どこかに、VB や Access、Excel で使用できるサンプルもあると思います。

hiyotom
質問者

お礼

基本的なことができていないようです、もう少し調べてみます ありがとうございました

hiyotom
質問者

補足

原因はMaximizeだとおもいます、一番外側のaccessのデータベースwindowを消す方法があれば最大化Maximizeのコマンドを使用しなくてもすむので次のformサイズもおもうようにできるのですが SetWindowPos をこれから検索してみようとおもいます

全文を見る
すると、全ての回答が全文表示されます。

関連する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は、ノーマルな表示(全画面でも最小化でもない) にしたいのですが、不可能なのでしょうか?

  • Current、Openがそれぞれ2回発動する

    テーブルには適当なデータが入っています。 フォーム1を作り、コマンドボタンを1個だけ設置して、フォーム2を開くようにするために Private Sub コマンド0_Click() DoCmd.OpenForm Form_フォーム2.Name End Sub としました。 フォームはテーブルをレコードソースとしています。 フォーム2のモジュールに Private Sub Form_Current() Debug.Print "Form_Current" End Sub Private Sub Form_Open(Cancel As Integer) Debug.Print "Form_Open" End Sub としたのですが、結果は Form_Open Form_Current Form_Open Form_Current になります。 よって、二つのイベントの中にいくつかのプロシージャーが入っているのですが 2回ずつ実行されてしまい、求めている結果と異なってしまいます。 これを回避する方法はありますか? どうしてもフォーム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です。 新規にフォームを立ち上げて Private Sub Form_Open(Cancel As Integer) DoCmd.MoveSize , , 10000, 10000 Debug.Print Me.InsideHeight Debug.Print Me.InsideWidth End Sub としました。 そうすると戻り値がそれぞれ 7365 17025 なのですが、 なぜ、 DoCmd.MoveSize , , 10000, 10000 で、10000を設定してるのに、 その通りにならないのでしょうか?

  • アクセスVBA コンパイルエラー

    フォームを開いた時にフォームの高さを設定したいので Private Sub Form_Open(Cancel As Integer) Me.Height = 12000 End Sub としてるのですが「.Height =」の部分がコンパイルエラーになってしまいます。 何がいけないのでしょうか?

  • Access フォームでの並べ替え OrderBy

    いつもお世話になっています。 フォームで「製品ID」が昇順に並べ替えられるよう下記のイベントを 設定しましたが、上手くいきません。 Private Sub Form_Open(Cancel As Integer) Me.OrderBy = "製品ID" End Sub お力添えよろしくお願いいたします。

  • Access VBAによるフォームの色変更。

    個人での捜索に行き詰ってしまいましたので、ご相談させていただきます。 ○使用環境 WindowsXP Access2007 VBAで色変更する、Accessのフォームについて質問させていただきます。 下記の記述で「フォーム名」というフォームをボタンで開こうとしています。 Private Sub コマンド2_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)   DoCmd.OpenForm Form_フォーム名.Name   Form_フォーム名.Section(0).BackColor = "12349952" End Sub Private Sub コマンド3_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)   DoCmd.OpenForm Form_フォーム名.Name   Form_フォーム名.Section(0).BackColor = "1643706" End Sub その際、ボタンによって背景色を変更して表示しようとしています。 デザインビューで「フォーム名」のプロパティを変更した直後はボタンの操作で背景色が変わりますが、 一度、「フォーム名」をクローズして、再度ボタンの操作でオープン するときには反映されなくなっています。 もしかしたら、自身の方で何か見落としがあるかもしれませんが、同様の事象をご存知の方がおられましたら、ご指南いただきたいです。 宜しくお願い致します。

  • access フォームについて

    access2003にて登録フォームを作成しています。 このフォーム内に入力したデータを登録ボタンを押し、「登録しますか」のメッセージに 「いいえ」とすれば保存せずにこのフォームを閉じる。 「キャンセル」とすれば保存せずにフォームに戻る。 「はい」とすれば保存して閉じたいです。 しかし、以下の式を実行すると 「いいえ」はバッチリ希望通りに動くのですが、 「キャンセル」をすると保存されてフォームに戻り、 「はい」とすると保存されずにフォームが閉じられてしまいます。 何がまずいのでしょうか・・・。 ----- Private Sub Form_BeforeUpdate(Cancel As Integer) Dim Ret As Integer Ret = MsgBox("登録しますか?" & vbCrLf & " " & vbCrLf & "「いいえ」を選択すると保存せず閉じます", vbYesNoCancel) '「いいえ」を選択したら、保存せずに閉じる If Ret = vbNo Then DoCmd.Close acForm, "振返りデータ", acSaveNo '「キャンセル」を選択したら、保存せずにフォームに戻る Else If Ret = vbCancel Then Else DoCmd.Close acForm, "振返りデータ", acSaveYes End If End If End Sub

  • アクセス レポート バックカラーの変更方法

    現在レポートで1行ごとにバックカラーを変えて印刷しておりますが、それをチェックボックスにチェックがはいった行だけをカラーにするよう変更したいと考えておりますが、よくわかりません。現在のコードをコピーしました。お手数ですがご指導願います。 Option Compare Database Dim bline As Integer Private Sub Report_Open(Cancel As Integer) End Sub Private Sub ページヘッダー_Format(Cancel As Integer, FormatCount As Integer) bline = 0 End Sub Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer) bline = bline + 1 If bline Mod 2 Then Me.Section(0).BackColor = 16777215 Else Me.Section(0).BackColor = 12663225 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で強制終了させなくてはいけなくなります。 対処方法を教えて下さい。