2013-11-15 53 views
2

如何在ms access 2010中將子窗體的高度和寬度設置爲可用屏幕空間的百分比?特別是,我在數據庫中標記爲「Tab A」的嵌套導航子窗體,我上傳到此文件共享URL:http://jmp.sh/v/HGctZ4Ru74vDAjzN43Wqms access中的子窗體的相對大小2010

在文件共享鏈接的數據庫中,具有不同屏幕分辨率設置的不同用戶具有導航帶有Tab A的子窗體顯示出各種不同的尺寸,其中包括一些窗體在可用屏幕空間中的可觀的小百分比。導航子窗體的細節部分的高度設置爲5.5542英寸。是否有某種方法來設置它,以使高度爲子窗體頂部下方可用空間的90%?我還希望標籤爲「Tab 1」的子表單的寬度爲左邊緣右側的90%。在java中,這很容易使用偏移量和計算寬度。我似乎無法找到如何在訪問2010年的相對尺寸的指示。

關於該主題的谷歌搜索似乎沒有產生任何解決方案,我想避免只是擰了所有其他用戶的屏幕在高度設置上增加一兩英寸。

+0

我討厭它,當你點擊一個鏈接,它說_你正在尋找的文件不存在。它可能已被刪除._ –

回答

5

在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 

EDIT1:

在回答您的意見,390和100緹。雖然Access中的設計時間使用英寸,但運行時屬性必須使用緹來設置。

我搞砸了這一點,並沒有得到任何我認爲是完全準確的。我發佈下面的代碼對我來說最合乎邏輯,但是我不知道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 
+0

謝謝。這有助於。但爲什麼你使用像390和100這樣的數字?我認爲訪問尺寸是英寸。此外,是否能夠顯示Form_Resize()方法的示例,該方法將子窗體放置在窗體的中心,並在所有四邊都有10%的偏移量? – CodeMed