■フォームのプロパティで設定
フォームのデータシート表示で列幅を調整する場合、表示したデータシートを選択して列幅を設定します。
参考URL
■VBAで設定
例1:「商品名」の列幅を10論理cmに設定する
Private Sub cmd実行_Click()
Me!frm売上明細_sub!商品名.ColumnWidth = 10 * 567
End Sub
コントロールの幅は通常は「Width/幅」プロパティを使って設定しますが、データシートビューでの列幅にはその値は反映されません。データシート上の幅には「ColumnWidth」プロパティを使います。
また、「ColumnWidth」プロパティをVBAから設定する場合は「twip」という単位を指定します。「1論理cmは567twip」ですので、上記はそれを掛け算しています。
メインフォーム、サブフォームA、サブフォームBの構成でそれぞれ,開く時のイベント(Form_Open)の発生順を確認してみた結果、下記の順となった。
サブフォームA→サブフォームB→メインフォームの順でイベントが発生する。
メインフォームは最後に発生するのを変更するのはできない(多分)
しかしサブフォームの順番は入れ替え可能。
例題で、サブフォームB→サブフォームAとしたい場合、一度サブフォームAをメインフォームから切り離し、再度メインフォームに貼り付けなおすと、イベントの発生順を変更することができる。
つまり、サブフォームのイベント発生順は、メインフォームに貼り付けた順番に依存するようだ。
フォームの「開くとき」イベントで大きさを指定することが出来ます。
Private Sub Form_Open(Cancel As Integer
DoCmd.MoveSize 800, 2000, 4000, 3000
End Sub
800・・・・・・・画面左から800twipの位置
2000・・・・・・画面上から2000twipの位置
4000・・・・・・フォームの横幅40000twip
3000・・・・・・フォームの高さ3000twip
※指定する単位は、twipが使われています。
1cm=567twipなので、10cmの幅、14cmの高さであれば・・・
DoCmd.MoveSize 100, 100, 5670, 7938
となります
Formの記述を忘れずに!
Me.Form!F_SECOM名簿_サブ.Form.DatasheetFontHeight = 11