2

サブフォームの高さと幅を ms access 2010 で使用可能な画面領域の割合に設定するにはどうすればよいですか? 特に、このファイル共有 URL にアップロードしたデータベースに「Tab A」というラベルの付いたネストされたナビゲーション サブフォームがあります: http://jmp.sh/v/HGctZ4Ru74vDAjzN43Wq

ファイル共有リンクのデータベースでは、さまざまな画面解像度設定を持つさまざまなユーザーが、タブ A をさまざまなサイズで表示するナビゲーション サブフォームを持っています。ナビゲーション サブフォームの詳細セクションの高さは 5.5542 インチに設定されています。高さがサブフォームの上部で使用可能なスペースの 90% になるように設定する方法はありますか? また、「タブ 1」というラベルの付いたサブフォームの幅を、左端の右側の 90% にしたいと考えています。Java では、これはオフセットと計算された幅で簡単です。アクセス2010で相対寸法を行う方法の説明が見つからないようです。

このトピックに関する Google 検索では解決策が得られないようです。高さの設定に 1 ~ 2 インチ追加するだけで、他のすべてのユーザーの画面を台無しにすることは避けたいと考えています。

4

1 に答える 1

6

Access フォームでは、すべてのパーセンテージまたは相対的なサイズを計算する必要があります。Access でのフォームと要素のサイズ設定が少し厳密でぎこちないことは認めますが、それは多くのデスクトップ アプリケーションの GUI 環境に当てはまります。.NET WPF はこの問題を解決しようとしたと思いますが、MS Access とは関係ありません。

私は通常、このようなものを使用することになります。このコードはメイン フォームに属します。サイズ直しはいつもここでしています。

Private Sub Form_Resize()
    On Error Resume Next
    Me.subform1.Width = Me.WindowWidth - 390
    'or if you want to account for the form's left property
    'Me.subform1.Width = Me.WindowWidth - (Me.subform1.Left + 100)
End Sub

編集1:

あなたのコメントに答えて、390 と 100 は twip です。Access のデザイン時はインチを使用しますが、ランタイム プロパティは twip を使用して設定する必要があります。

私はこれを少しいじりましたが、完全に正確であると思われるものを得ることができませんでした。私にとって最も論理的な意味を持つ以下のコードを投稿していますが、MS Access でフォームのサイズがどのように計算されるかについての詳細はわかりません。以下のコードは正確な結果を生成しないため、おそらく何かが欠けているようです。マージンを増やし、サブフォームの高さ計算のパーセンテージ/小数を減らすことで、比較的近いものを得ることができましたが、正確で正確な数値が必要な場合は不十分でした.

Private Sub Form_Resize()
    On Error Resume Next
    Const RMARGIN = 0
    Const BMARGIN = 0
    Me.subform1.Left = Round(Me.WindowWidth * 0.1) - RMARGIN
    Me.subform1.Top = Round(Me.WindowHeight * 0.1) - BMARGIN
    Me.subform1.Width = Round(Me.WindowWidth * 0.9) - (Me.subform1.Left + RMARGIN)
    Me.subform1.Height = Round(Me.WindowHeight * 0.9) - (Me.subform1.Top + BMARGIN)
End Sub
于 2013-11-15T02:19:55.767 に答える