OCN光で最大124,800円おトク!

 ある画面で、最大化/最小化ボタンをつけたかったので、プロパティで、最大化/最小化ボタンを設定しました。
 保存して、その画面を開いてみました。
すると、今までは必ず最大化表示されていた画面が、この設定をしたことにより、最大化ボタンを押さなければ最大化表示されなくなってしまいました。
 画面を“初めて開く時”は、必ず最大化で開くように設定したいのですが、そのようなことは出来ますか?
 また、その方法を教えてください。
よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

少し気になる点がありましたので、No.1の方の回答に補足させて戴きます。



最大化しなくなったのは、
 a)「最大化/最小化」ボタンの設定を行ったフォーム(中側の枠)
 b)Accessのアプリケーション(外側の枠)
のどちらでしょうか?

もし「a)」でしたら、プロパティシート(最大化ボタンの設定をしたシート)の
『その他』タブをクリックし、『ポップアップ』の設定も確認してみて下さい。
ここを「はい」に設定したフォームは、デザインビューで表示させたときに
薄目の灰色で表示されている領域のサイズで開かれることになりますので。
(ちなみに、これが「はい」になっていると、そのフォームがアクティブの状態
 では、Altキーによるメニュー操作ができなくなります)

なお、No.1の方の回答通りの対処を行えば、この設定が「はい」であっても
最大化はされますので、目的に合わせて対処法をお選び下さい。


一方、「b)」の場合は・・・一番簡単なのは、「autoexec」という名前のマクロを
作成して、そのAccessのファイルの起動時にアプリケーションを最大化させて
やることだと思います。
(「AutoExec」又は「autoexec」は、そのファイルの起動時に自動的に処理する
 ようにするためにつける、特殊なマクロ名です)

作成方法は、
 1)データベースウィンドウで『マクロ』タブをクリック
 2)『新規作成』ボタンをクリック
 3)『アクション』列で「コマンドの実行」を選択
 4)画面右下の『コマンド』欄で「最大化 (アプリケーション)」を選択
 5)「autoexec」という名前をつけてマクロを保存
です。
これで、ファイル展開時に常にアプリケーションが最大化されます。
(なお、『アクション』や『コマンド』には「最大化」という選択肢もありますが、
 これはNo.1の方の回答の「DoCmd.Maximize」に対応する命令で、
 フォームやテーブルの最大化に使うものなので、お間違えのないよう・・・)
    • good
    • 1
この回答へのお礼

回答ありがとうございました。
また、詳細な説明ありがとうございます。
a)とb)の説明、とても良く分かりました。
また、b)についても調べてみたので勉強になりました。

今回の場合a)の質問でしたので、回答者mshr1962様の回答で対応しました。
それから、DexMachina様の説明にある、
『その他』の『ポップアップ』の設定も「いいえ」になっていることを確認しました。
 他にも同様な画面が沢山あるので、この修正をする場合、ポップアップの設定のところも併せて確認するようにします。

大変助かりました。また親切詳細な説明で、勉強にもなりました。
ありがとうございました。

お礼日時:2006/10/25 11:45

フォームのプロパティを開いて、イベントの"開くとき"で設定できます。



Private Sub Form_Open(Cancel As Integer)
DoCmd.Maximize
End Sub
    • good
    • 0
この回答へのお礼

早急な回答ありがとうございました。
回答通りにやってみましたが、上手くいきました。
大変助かりました。
ありがとうございました。

お礼日時:2006/10/25 11:27

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QAccessのRefresh・Requery・Repaintの違い

Requeryはもう一度ソースレコード(テーブル)を読み込むようです。このとき、テーブルの先頭レコードに移動してしまいます。
Refreshは最新のレコード(テーブル)を再表示するような気がします。レコードの移動は起こらない気がします。
Repaintは、VBAでキャプションなどを変更したとき使っています。
でも、よくわかっていません。
どんなときにどんなメソッドを使えばいいのでしょうか?
詳しい方、よろしくお願いいたします。

Aベストアンサー

たびたびすみません。
調べてたらこんなのがでてきました。
http://www.nurs.or.jp/~ppoy/access/access/acF007.html

参考URL:http://www.nurs.or.jp/~ppoy/access/access/acF007.html

QAccessのフォームのみ表示させたい

Accessを起動した際、フォームのみ表示するにはどうすればよいのでしょうか?
(Accessを起動すると、オブジェクトメニュー?(テーブルやクエリ等のオブジクトを選択するウィンドウ)を表示させないで、フォームのみを表示させるには?)
また、上記と同じようにして、なおかつAccessを起動させないでフォームで起動や終了といったことが出来るのでしょうか?
やはりこれはVB等プログラミングでないと出来ないのでしょうか?ちなみに私はプログラミングは全く出来ません。
わかる方、教えて下さい。宜しくお願いします。

Aベストアンサー

ツールメニュー
”起動時の設定”を開き

フォーム/ページの表示にて起動時に表示させたいフォームを選択すれば、そのMDBを開いた時に、該当のフォームが表示されます。

メニュー画面等を作り、各処理のフォームを開いたり、アクセスを終了するマクロを呼び出すボタンを作ればフォームからの終了等も可能です。

また、データベースウィンドウの表示のチェックボックスを外せば、質問者様の言われているオブジェクトメニューは表示されなくなります。

メンテナンス等を行いたい時はshiftキーを押下しながら立ち上げればデータベースウィンドウが表示できます。

QAccess 2010フォームの全画面表示

Access 2010でなんとかフォームを作りました(初心者です)。

起動もできましたが、左にはテーブル名やフォーム名が表示されるパネル(?)があり
上にはホームとかファイルとかのタブがあり、画面が非常に狭くしか使えません。

またフォームの上の部分に、元となったテーブルの名前が表示されますが、
これも出したくありません。

というわけで、フォームの、本当にデータ入力に必要な部分だけを全画面表示にする
ことはできますでしょうか?

よろしくご指導お願いいたします。

Aベストアンサー

当方はAccess2007なので、全く同じかはわかりませんが・・・(汗)

> テーブル名やフォーム名が表示されるパネル(?)

『ナビゲーション ウィンドウ』のことだと思います。
これについては、以下の操作で非表示にできます:

1)Accessの画面左上のボタンをクリックし、最下方に表示される『Access
 のオプション(I)』ボタンをクリック
2)『Access のオプション』ダイアログが表示されるので、左側の領域から
 『カレントデータベース』を選択
3)中程のところに『ナビゲーション ウィンドウを表示する(N)』のチェックボックス
 があるので、オフに設定
4)『OK』ボタンをクリックして、上記ダイアログを閉じる

以上で、次回起動時から、ナビゲーション ウィンドウは表示されなくなります。
なお、一時的にこの設定を無効にしたい場合は、データベースを開く時に、
キーボードのShiftキーを押しっぱなしにします。

また、データベースを閉じずに表示させたい場合は、以下のVBAコードを、
 a)適当なフォーム(のコントロール)のイベントに記述して実行するか、
 b)Ctrlキー+Gキーの同時押しで表示される『イミディエイト ウィンドウ』に
  記述した後、Enterキーを押す
で対応可能です。

 DoCmd.SelectObject acTable, , True


> ホームとかファイルとかのタブ

画面が狭いとのことから、個別のタブではなくリボンそのものを非表示にしたい、
ということだと思いますが、それでよろしければ、
 a)当該データベース(の特定フォーム)を開いたときに常に自動で切り替え
  たい場合は、そのフォームに以下のVBAコードを記述:
  DoCmd.ShowToolbar "Ribbon", acToolbarNo
 b)手動で切り替えるので構わなければ、キーボードでCtrlキー+F1キーの
  同時押し
の、ご希望に沿った方法を使用してください。

なお、上記VBAでの対応は、Access2003以前のバージョンでの方法の転用
となっています。
Access2007以降のリボンに対する正規の手法は「XMLの編集」になりますが、
私は未だにそちらには手を出せていないので(汗)、以前のQ&Aと、そこで
m3_makiさんが提示されていたURLの再提示のみに留めさせて戴きます(汗):

<以前のQ&A> *由来の提示のためだけで、参考にはならないと思います(汗)*
http://oshiete.goo.ne.jp/qa/6902913.html

<m3_makiさんご提示のURL>
http://www.ka-net.org/ribbon/ri06.html


> フォームの上の部分に、元となったテーブルの名前が表示されますが、
> これも出したくありません。

こちらについては、フォームのデザインビューで編集ができます。
 1)当該フォームをデザインビューで開く
 2)フォームの何もないところをダブルクリックするなどして、フォームのプロパティ
  シートを開く
 3)『書式』タブの先頭に『標題』の項目があるので、テーブル名の代わりに
  表示させたい文字列を入力
  (何も表示させたくない場合は、スペース1文字でも可)
 4)フォームを保存して閉じる


・・・以上です。

当方はAccess2007なので、全く同じかはわかりませんが・・・(汗)

> テーブル名やフォーム名が表示されるパネル(?)

『ナビゲーション ウィンドウ』のことだと思います。
これについては、以下の操作で非表示にできます:

1)Accessの画面左上のボタンをクリックし、最下方に表示される『Access
 のオプション(I)』ボタンをクリック
2)『Access のオプション』ダイアログが表示されるので、左側の領域から
 『カレントデータベース』を選択
3)中程のところに『ナビゲーション ウィンドウを表示する(N)』のチ...続きを読む

QAccess 起動時、ウィンドウを最大化したいです

作成したAccessの起動時、ウィンドウを画面いっぱいに最大化して起動する方法はありますか
内側と外側、ウィンドウが2重になっていると思うのですが、それぞれ最大化を自由に指定できるのでしょうか

外側はどちらでもいいのですが、内側のウィンドウを最大化したいです。

わかりにくい表現ですいません。

Aベストアンサー

「autoexec」という名前のマクロを作成して下さい。
(必ずこの名前である必要があります)

そのマクロで、「アクション」に「最大化」を指定して保存すれば、起動時に内側ウィンドウが最大化されます。
また、「アクション」に「コマンドの実行」を指定して、画面左下の「コマンド」欄に「最大化 (アプリケーション)」を設定すれば、外側ウィンドウが最大化されます。

「マクロ名」列(デフォルト設定では非表示)に何も入力しない限り、これらや他のアクションを連続して行うこともできます。

QACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ

ACCESSで空白のデーターをクエリで判定/識別する方法を教えてください。
EXCELでは空白を""で判定/識別表していますがACCESSではどうなるのでしょうか。

下の例はフィールドに試験番号があればその番号を、空白なら”欠席”と表示しようとしています。
IIf(([試験番号]="空白の場合何を入れる?"),[試験番号],"欠席")

Aベストアンサー

もうひとつの書き方は
式1: IIf([試験番号] Is Not Null,[試験番号],"欠席")
第2、第3引数の、質問の順序にあわせるとこうなる。

QAccessで別テーブルの値をフォームに表示したい

初めてのAccessで分からない事があり質問させてください。

<会社テーブル>
会社ID
会社名
住所

<社員テーブル>
会社ID
社員名
ソート番号

*1社に対し複数の社員レコードが存在

以上のようなテーブルがあるとします

現在「会社テーブル」を表形式で一覧表示しています
会社ID,会社名、住所とフィールドが並んでいるのですが、その後ろに「社員テーブル」のソート番号が一番若い社員名を表示したいと考えています(現状は番号関係なく表示させる方法すら分かりません)

色々いじくりまわしたのですが、初めてAccessをさわる事もあってよくわかりません

リレーション等でひっぱってくる事ができるのでしょうか?

どなたか教えて頂けませんでしょうか

何卒よろしくお願い致します

PS.Access2013で作成中です

Aベストアンサー

単純にテーブル[会社]のみでフォームを作成し、社員表示用テキストボックスを追加。そして、そのプロパティを表示し

コントロールソース=DBLookup("SELECT 社員名 FROM 社員 WHERE 会社ID=" & [会社ID] & " ORDER BY ソート番号")

これは、以下の標準モジュールに登録したユーザ関数 DBLookup()を使っています。これで、クエリを用意しなくても目的を達成できます。

さて、かかるユーザ関数を標準ライブラリに登録したくない場合、

1、"社員ソートクエリ"を作成します。

SELECT 社員.会社ID, 社員.社員名
FROM 社員
ORDER BY 社員.ソート番号;

2、コントロールソースに次のように書きます。

=DLookUp("社員名","社員ソートクエリ","会社ID=" & [会社ID])

http://office.microsoft.com/ja-jp/access-help/HA001228825.aspx

DLookup()については、マイクロソフトの解説を参照されてください。

【DLookup()の限界を破るにはVBAで同じ関数を作るしかない】

マイクロソフトの解説を読めば判りますが、ORDER BY 節を指定する引数が用意されていません。ですから、どうしても、"社員ソートクエリ"を作成するという手間が必要となります。そこで、SQL文を引数とするDBLookup()をVBAで書けば、その手間を省けるという算段になります。この辺りは、好みと趣味の問題。どっちでも良いと思います。そういうお断りをした上で DBLookup()を紹介しておきます。なお、ADOは、つぎのように参照設定しないと利用できません。

http://www.happy2-island.com/access/gogo03/capter00307.shtml

Public Function DBLookup(ByVal strQuerySQL As String, _
             Optional ByVal ReturnValue = Null) As Variant
On Error GoTo Err_DBLookup
  Dim DataValue
  Dim rst     As ADODB.Recordset

  Set rst = New ADODB.Recordset
  With rst
    .Open strQuerySQL, _
       CurrentProject.Connection, _
       adOpenStatic, _
       adLockReadOnly
    If Not .BOF Then
      .MoveFirst
      DataValue = .Fields(0)
    End If
  End With
Exit_DBLookup:
On Error Resume Next
  rst.Close
  Set rst = Nothing
  DBLookup = IIf(Len(DataValue & ""), DataValue, ReturnValue)
  Exit Function
Err_DBLookup:
  MsgBox "SELECT 文の実行時にエラーが発生しました。(DBLookup)" & Chr$(13) & Chr$(13) & _
      "・Err.Description=" & Err.Description & Chr$(13) & _
      "・SQL Text=" & strQuerySQL, _
      vbExclamation, " 関数エラーメッセージ"
  Resume Exit_DBLookup
End Function

単純にテーブル[会社]のみでフォームを作成し、社員表示用テキストボックスを追加。そして、そのプロパティを表示し

コントロールソース=DBLookup("SELECT 社員名 FROM 社員 WHERE 会社ID=" & [会社ID] & " ORDER BY ソート番号")

これは、以下の標準モジュールに登録したユーザ関数 DBLookup()を使っています。これで、クエリを用意しなくても目的を達成できます。

さて、かかるユーザ関数を標準ライブラリに登録したくない場合、

1、"社員ソートクエリ"を作成します。

SELECT 社員.会社ID, 社員.社員名
FR...続きを読む

QAccess サブフォームでの選択行の取得

こんにちは。

Access初心者です。

サブフォームでテーブルの項目を表示させていますが、
選択された行を取得する方法はありますか?
サボフォームの下の方に現在選択されているレコード数が表示されてますが、その値でかまいません。

調べているのですが、なかなか検討がつきません。
宜しくお願い致します。

Aベストアンサー

フォーム名がフォーム1、サブフォームコントロールの名前がサブフォーム1だとすると、

Forms!フォーム1!サブフォーム1.Form.CurrentRecord

で取得できます。
(「Forms」と「Form」がありますのでご注意下さい)


また、フォーム1にコードを記述する場合であれば

Me!サブフォーム1.Form.CurrentRecord

サブフォーム1へのコード記述であれば

Me.CurrentRecord

という構文によっても、それぞれ取得が可能です。

QACCESS IIF関数 複数条件の設定について

 選択クエリにおいて、あるフィールド「 X」 のレコード数値が
 
  0<[X]<=50   であれば A 
  50<[X]<=100  であれば B 
  100<[X]<=150  であれば C

 と表記させるフィールド「Y」を追加したいと考えています。
 この場合、Yのフィールド設定で指定する数式についてご教授願います。

 一応、
  IIf(0<[X]<=50,"A","") Or IIf(50<[X]<=100,"B","") Or IIf(100<[X]<=150,"C","")

  としましたが、実行すると、Yの列がすべて「-1」と表記されてしまいます。

 何卒よろしくお願いいたします。

Aベストアンサー

a)IIF関数で対応する場合:
 IIF関数の第2引数または第3引数に、IIF関数を入れ子とする必要があります。

式: IIF([X]<=0, "", IIF([X]<=50, "A", IIF([X]<=100, "B", IIF([X]<=150, "C", ""))))


b)別の組込関数を使用する場合:
 IIF関数は二択ですので入れ子にする必要がありますが、Accessのクエリで
 使用できる、似た機能の関数に、Switch関数というものもあります。
 これであれば、入れ子にする必要がなくなります。
 (詳しくは、Accessのヘルプを参照下さい)

式: Switch([X]<=0, "", [X]<=50, "A", [X]<=100, "B", [X]<=150, "C", True, "")


なお、数学あるいは一般生活では確かに「0<[X]<=50」という表記をしますが、
Accessの関数などではこれだと正しい結果が得られません。
正しく認識させるためには、等号・不等号を挟んだ式は、「左辺」と「右辺」の
2つの要素からなる形にする必要があります。
(「0<[X]<=50」は「[X]>0 And [X]>=50」と分割してやる、と)

但し、今回のご質問のような『連続した範囲』であれば、前(左)で既出となる
式の要素で「[X]<=0」が「真(=-1)」とならなかった時点で、「[X]>0」が保証
されますので、上記のように、「[X]>0」を省略して「[X]<=50」だけを条件として
指定すればOk、ということになります。
(「0<[X]<=50」の次が「80<[X]<120」などのように、「50~80」が欠けた
 場合は、省略ができない、と)


【参考】
「0<[X]<=50」は、このままだと「0 < ([X]<=50)」という式と解釈されます。
この場合、「[X]<=50」は、「真(=-1)」か「偽(=0)」か「Null」のいずれかに
なります。
何にせよ、「0<[X]<=50」全体として「正(=-1)」となることがないため、
ご質問の式では、IIF関数は常に第3引数に指定された値「""」を返す
ことになります。

この結果、式全体としては「"" Or "" Or ""」という形となり、「0かNull」
以外なので、「真(=-1)」という値が返された、ということです。

なお、Nullについては、以前、他の方の質問につけた回答も、併せて参考までに:
http://oshiete.goo.ne.jp/qa/4850675.html

a)IIF関数で対応する場合:
 IIF関数の第2引数または第3引数に、IIF関数を入れ子とする必要があります。

式: IIF([X]<=0, "", IIF([X]<=50, "A", IIF([X]<=100, "B", IIF([X]<=150, "C", ""))))


b)別の組込関数を使用する場合:
 IIF関数は二択ですので入れ子にする必要がありますが、Accessのクエリで
 使用できる、似た機能の関数に、Switch関数というものもあります。
 これであれば、入れ子にする必要がなくなります。
 (詳しくは、Accessのヘルプを参照下さい)

式: Switch([X]<=0, "", [X]<=50, "A"...続きを読む

Q【ACCESS】フォーム名/コントロール名を文字列型変数で指定するには

バージョン:Access2002

フォーム「frm01」にテキストボックス「tb01」が作ってある場合、
Forms.frm01.tb01.Value="あいう"
とすれば、フォームもコントロールも指定できるのですが、
Dim strTxt As String
strTxt = "tb01"
Forms.frm01.strTxt.Value="あいう"
だと、文字列型変数"strTxt"が展開されないのでフォーム「frm01」のコントロール「strTxt」を探してしまいエラーになってしまいます。

文字列型変数でフォームやコントロールを指定するには、どのようにすればよいのでしょうか?

Aベストアンサー

フォームの場合
 Forms(strFrm)

フォームのコントロールの場合
 Forms(strFrm).Controls(strTxt)


これでも参照できますが、普通ここまで省略しませんね。
 Forms(strFrm)(strTxt)

あとで見たとき、訳がわからなくなりそう。

Qアクセエスのレコードの更新をVBAでするには?

アクセスで、一覧表のフォームにボタンを取りつけています。レコードの内容を変更したら、ペンの形のマークが現れますね。これは変更中ということですが、そこでボタンを押しても変更は確定されないから、更新確定させたいのです。

それで、DoCmd.Requery を最初の行に入れてみたら、元の一覧表は最初のレコードに飛んでしまう。

元の一覧表の位置を動かさないために、Ctrl+Enter キーを押して更新確定させたような状態をVBAで実現する方法あるのでしょうか?

よろしくお願いします。

Aベストアンサー

No1 です。
今回の場合には
Docmd.RunCommand acCmdSaveRecord の方が良かったですね
文字通りレコードを保存します。
Requery に引きづられてしまいました (^_^;)

Recalc、Refresh、Requery の使い分けは下記が参考にはなりますか?
http://www.nurs.or.jp/~ppoy/access/access/acF007.html


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング