図のようにフォームの上にサブフォームを設置して、
コマンドボタンとテキストボックス(txt_高さ)を設置しました。
コードは、
Private Sub コマンド1_Click()
Me.サブフォーム.Height = Me.txt_高さ.Value
End Sub
です。
コマンドボタンを押すと、サブフォームの高さを設定する仕様なのですが、
サブフォームの高さを変化させて(例えば、2500twips)、
CTRL+Sを押して、バツボタンでフォームを閉じて、
再度フォームを開いても、2500twipsの高さではないです。
フォームを開いている最中に、VBAで変化させたサイズで保存して、
再度開いた時もその高さにしたいのですが、無理なのでしょうか?
ヘルプ(SubForm."Height/高さ" プロパティ)には
「値の取得および設定が可能です。」と書いてありますから
設定も可能なのでは?と思っています。
No.5ベストアンサー
- 回答日時:
No.1です。
すみません、記憶に頼って動作確認を怠っていました。
No.1の方法では、保存されないことを確認しました。
ご指摘ありがとうございます。
お詫びの上、別案を提示します。
(とりあえず、概略のみを提示しますが、必要であれば
コードも作成します)
この方法であれば、VBAのソースコードを削除して、
デザインビューに切り替えることもできないMDEファイル
であっても適用可能です。
【概要】
・サブフォームの高さを、新設したテーブルに記録
・フォームを開くときにその値を取得し、サブフォームの
高さに適用
<参考(以前のQ&A)>
http://oshiete.goo.ne.jp/qa/6814037.html
【手順の概略】
1)新規テーブルを作成
<フィールド構成の一例>
『フォーム名』『コントロール名』『プロパティ名』『値』
(ご質問のフォーム以外でも同様に、サブフォーム等
の高さや幅を変えることがある場合を想定)
2)フォームの『開くとき』イベントで、上記テーブルの値を
DLookupなどで取得し、サブフォームの高さに適用
(DLookup関数の第3引数にフォーム名などを指定して、
必要な設定値を取得)
・・・以上です。
大変失礼致しました。
No.4
- 回答日時:
No2、No3です。
質問のプロパティはデザインビューで設定する必要があります。したがってNo2のコードの
最初で、
DoCmd.OpenForm Me.Name, acDesign, , , , acHidden
として acDesign すなわちデザインビューで開き、
その後、プロパティを設定しなおして保存して閉じ、
DoCmd.OpenForm Form_フォーム1.Name
のようにして開き、設定を確認します。
その後、フォームを閉じ、再び開くと
閉じる前に設定したサブフォームの高さが
維持されている、ということです。
No.3
- 回答日時:
No2です。
書き忘れましたが、No2のあと一旦フォームを閉じて
再び開くと、閉じる前に設定したサブフォームの
高さで開かれます。
No.2
- 回答日時:
フォームを閉じて、閉じる前に設定した高さで再び開く
ということで回答します。
コード中の
Dim a As Long
はクリックイベントの外に以下のように設定します。
なお、"サブフォーム"という名前はサブフォームを
表示するコントロール名で初期値は"埋め込み0"の
ような名前です。したがって名前を変更して"サブフォーム"
というようにサブフォーム表示コントロール名が変更
されているものとします。
また、メインフォームの名前は"フォーム1"としています。
もし、メインフォーム名が"ABCメインフォーム"というような
ものであれば、以下のコードの中の"メインフォーム1"を
"ABCメインフォーム"に置き換えてください。
以下のコードで少し特殊なのは、デザインビューにしたときに
そのメインフォームの名前の取得はコード表のプロジェクト
で表示されている名前を使うというところです。
Option Compare Database
Option Explicit
Dim a As Long
Private Sub コマンド1_Click()
a = Me.txt_高さ.Value
DoCmd.OpenForm Me.Name, acDesign, , , , acHidden
Form_フォーム1.Controls("サブフォーム").Height = a
DoCmd.Save acForm, Form_フォーム1.Name
DoCmd.Close acForm, Form_フォーム1.Name
DoCmd.OpenForm Form_フォーム1.Name
End Sub
以上、わからないところがあれば補足してください。
No.1
- 回答日時:
> CTRL+Sを押して、バツボタンでフォームを閉じて、
Officeでの「Ctrl+S」のショートカットキーは、
ExcelやWordでは「ファイル(ブック/ドキュメント)の保存」ですが、
Accessの場合は、「レコードの保存」
となっていて、このショートカットキーではフォームやテーブルなどの
デザイン変更を保存することはできません。
※但し、AccessでもVisual Basic Editor(VBE)の画面では、
「Ctrl+S」でフォームが保存される仕様になっています。
フォームやテーブル等をキーボード操作で保存する場合は、
「Alt+Fを同時押し」した後、「S」を押して下さい(=上書保存)。
(Accessでは、フォームやテーブルのデザインビューでこのショート
カットキーを使用した場合、そのMDBファイル全体ではなく、
現在アクティブにしているAccessObject(→フォームやテーブル
等の総称)だけが保存されます)
また、サブフォームの高さを設定すると同時に保存もVBAで行う
場合は、高さを設定した後に以下のコードを記述すればOkです:
DoCmd.Save
または
DoCmd.Save acForm, Me.Name
なお、以下のような記述をすれば、コードを記述したのとは別の
AccessObjectを上書保存することも可能です。
(詳しくはヘルプを参照下さい)
DoCmd.Save acTable, "テーブル1"
(「テーブル1」という名前のテーブルを上書保存する場合の例)
・・・以上、参考まで。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
あるあるbotに投稿したけど採用されなかったあるある募集
あるあるbotに投稿したけど採用されなかったあるあるをこちらに投稿してください
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
Accessのマクロでモジュールを実行させたい。
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access サブフォームでの選択行...
-
access サブフォームにリストを...
-
アクセスで サブフォームの表...
-
Access 複数フォームを...
-
googleフォームでインストール...
-
サブフォームのデータを保存す...
-
(ACCESS)条件に応じて、テキ...
-
[Access2000] フォーム間で値の...
-
Access 2010 分割フォームのフ...
-
初心者です。accessで請求書を...
-
サブフォームでのダブルクリッ...
-
2回目に画面のレコードセットの...
-
単票フォームと帳票フォームを...
-
Access2000 サブフォームのReco...
-
複数項目でのサブフォームとの...
-
Accessのコンボボックスに連動...
-
ACCESSでサブフォームの...
-
Accessで、サブフォームのある...
-
Access VBA acCmdSelectRec...
-
Accessでサブフォームの中の並...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access サブフォームでの選択行...
-
Access2000、これはいったい・...
-
Access 複数フォームを...
-
メインフォームとサブフォーム...
-
(ACCESS)条件に応じて、テキ...
-
Accessのサブフォームから値を...
-
ACCSESS2013VBA フォームのレコ...
-
サブフォームが見えなくなる。
-
access サブフォームにリストを...
-
サブフォームのデータを保存す...
-
Access2000 サブフォームのReco...
-
アクセスでサブフォームのレコ...
-
サブフォームでフィルタしたデ...
-
サブフォームでのダブルクリッ...
-
Accessでのフォーム表示がうま...
-
AccessのFormのみをスクリーン...
-
2回目に画面のレコードセットの...
-
Accessで、サブフォームのある...
-
初心者です。accessで請求書を...
-
Accessで、一覧からクリックし...
おすすめ情報