設(shè)為首頁收藏本站Access中國

Office中國論壇/Access中國論壇

 找回密碼
 注冊(cè)

QQ登錄

只需一步,快速開始

返回列表 發(fā)新帖
查看: 1657|回復(fù): 8
打印 上一主題 下一主題

[其它] 求助:VB的里的語句,在ACCESS 如何修改?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
1#
發(fā)表于 2006-3-29 19:10:00 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
ScaleX = FormName.ScaleWidth / FormOldWidth '保存窗體寬度縮放比例
ScaleY = FormName.ScaleHeight / FormOldHeight '保存窗體高度縮放比例

關(guān)鍵是:FormName.ScaleWidth / FormOldWidth

             FormName.ScaleHeight / FormOldHeight



與VBA 里如何對(duì)應(yīng)?

這二VB的語句,在ACCESS  VBA 里出錯(cuò),如何修改?多謝!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 分享淘帖 訂閱訂閱
2#
發(fā)表于 2006-3-30 05:44:00 | 只看該作者
使用 InsideWidth 屬性和 InsideHeight 屬性可以確定包含[url=mkMSITStore:E:\Program%20Files\Microsoft%20Office\OFFICE11\2052\vbaac10.chm::/html/acproInsideWidth.htm#]窗體[/url]的窗口的高度和寬度(以[url=mkMSITStore:E:\Program%20Files\Microsoft%20Office\OFFICE11\2052\vbaac10.chm::/html/acproInsideWidth.htm#]緹[/url]為單位)。Long 型,可讀寫
3#
 樓主| 發(fā)表于 2006-3-30 06:13:00 | 只看該作者
::以下的VB 模塊 如何修改呢??多謝



'讓控件自動(dòng)調(diào)整大小

Private FormOldWidth As Long '保存窗體的原始寬度
Private FormOldHeight As Long '保存窗體的原始高度
'在調(diào)用ResizeForm前先調(diào)用本函數(shù)
Public Sub ResizeInit(FormName As Form)
Dim Obj As Control
FormOldWidth = FormName.ScaleWidth
FormOldHeight = FormName.ScaleHeight
On Error Resume Next
For Each Obj In FormName
Obj.Tag = Obj.Left & " " & Obj.Top & " " & Obj.Width & " " & Obj.Height & " "
Next Obj
On Error GoTo 0
End Sub
'按比例改變表單內(nèi)各元件的大小,
'在調(diào)用ReSizeForm前先調(diào)用ReSizeInit函數(shù)
Public Sub ResizeForm(FormName As Form)
Dim Pos(4) As Double
Dim I As Long, TempPos As Long, StartPos As Long
Dim Obj As Control
Dim ScaleX As Double, ScaleY As Double
ScaleX = FormName.ScaleWidth / FormOldWidth '保存窗體寬度縮放比例
ScaleY = FormName.ScaleHeight / FormOldHeight '保存窗體高度縮放比例
On Error Resume Next
For Each Obj In FormName
StartPos = 1
For I = 0 To 4 '讀取控件的原始位置與大小
TempPos = InStr(StartPos, Obj.Tag, " ", vbTextCompare)
If TempPos > 0 Then
Pos(I) = Mid(Obj.Tag, StartPos, TempPos - StartPos)
StartPos = TempPos + 1
Else
Pos(I) = 0
End If '根據(jù)控件的原始位置及窗體改變大小 '的比例對(duì)控件重新定位與改變大小
Obj.Move Pos(0) * ScaleX, Pos(1) * ScaleY, Pos(2) * ScaleX, Pos(3) * ScaleY
Next I
Next Obj
On Error GoTo 0
End Sub

以上的VB 模塊 如何修改呢??多謝

Private Sub Form_Load()
Call ResizeInit(Me) '在程序裝入時(shí)必須加入
End Sub
Private Sub Form_Resize()
Call ResizeForm(Me) '確保窗體改變時(shí)控件隨之改變
End Sub



以上的VB 模塊 如何修改呢??多謝

以上的VB 模塊 如何修改呢??多謝


[此貼子已經(jīng)被作者于2006-3-29 22:14:02編輯過]

4#
 樓主| 發(fā)表于 2006-3-30 18:59:00 | 只看該作者
版主 能否指教?
5#
發(fā)表于 2006-3-31 04:42:00 | 只看該作者

Private FormOldWidth As Long '保存窗體的原始寬度
Private FormOldHeight As Long '保存窗體的原始高度

'在調(diào)用ResizeForm前先調(diào)用本函數(shù)
Public Sub ResizeInit(FormName As Form)
On Error Resume Next
Dim Obj As Control

    FormOldWidth = FormName.InsideWidth
    FormOldHeight = FormName.InsideHeight

For Each Obj In FormName
    Obj.Tag = Obj.Left & " " & Obj.Top & " " & Obj.Width & " " & Obj.Height & " "
Next Obj
On Error GoTo 0
End Sub

'按比例改變表單內(nèi)各元件的大小,
'在調(diào)用ReSizeForm前先調(diào)用ReSizeInit函數(shù)
Public Sub ResizeForm(FormName As Form)
Dim Pos(4) As Double
Dim I As Long, TempPos As Long, StartPos As Long
Dim Obj As Control
Dim ScaleX As Double, ScaleY As Double
On Error Resume Next

    ScaleX = FormName.InsideWidth / FormOldWidth  '保存窗體寬度縮放比例
    ScaleY = FormName.InsideHeight / FormOldHeight  '保存窗體高度縮放比例

For Each Obj In FormName
        StartPos = 1
    For I = 0 To 4 '讀取控件的原始位置與大小
        TempPos = InStr(StartPos, Obj.Tag, " ", vbTextCompare)
            If TempPos > 0 Then
                Pos(I) = Mid(Obj.Tag, StartPos, TempPos - StartPos)
                StartPos = TempPos + 1
            Else
                Pos(I) = 0
            End If '根據(jù)控件的原始位置及窗體改變大小 '的比例對(duì)控件重新定位與改變大小
            Obj.Move Pos(0) * ScaleX, Pos(1) * ScaleY, Pos(2) * ScaleX, Pos(3) * ScaleY
    Next I
Next Obj
On Error GoTo 0
End Sub
6#
 樓主| 發(fā)表于 2006-4-1 06:11:00 | 只看該作者
沒有反應(yīng)!不行,能否搞個(gè)例子出來?多謝!

這一句出錯(cuò):

            Obj.Move Pos(0) * ScaleX, Pos(1) * ScaleY, Pos(2) * ScaleX, Pos(3) * ScaleY

對(duì)象不支持這屬性!!





  For I = 0 To 4 '讀取控件的原始位置與大小
        TempPos = InStr(StartPos, Obj.Tag, " ", vbTextCompare)      '''開始出錯(cuò)
            If TempPos > 0 Then
                Pos(I) = Mid(Obj.Tag, StartPos, TempPos - StartPos)
                StartPos = TempPos + 1
            Else
                Pos(I) = 0
            End If '根據(jù)控件的原始位置及窗體改變大小 '的比例對(duì)控件重新定位與改變大小
       '     Obj.Move Pos(0) * ScaleX, Pos(1) * ScaleY, Pos(2) * ScaleX, Pos(3) * ScaleY
    Next I

[此貼子已經(jīng)被作者于2006-3-31 22:17:35編輯過]

7#
發(fā)表于 2006-4-1 08:18:00 | 只看該作者
是完全可以運(yùn)行的,沒有問題.
8#
 樓主| 發(fā)表于 2006-4-4 18:21:00 | 只看該作者

我在OFFICE2000 下沒有反應(yīng)

我在OFFICE2000 下沒有反應(yīng),能否把你成功的例子給我?多謝!

[此貼子已經(jīng)被作者于2006-4-4 10:24:28編輯過]

9#
發(fā)表于 2006-4-5 04:05:00 | 只看該作者



注意變量的使用位置,和函數(shù)所放入的事件.

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號(hào)?注冊(cè)

x
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則

QQ|站長郵箱|小黑屋|手機(jī)版|Office中國/Access中國 ( 粵ICP備10043721號(hào)-1 )  

GMT+8, 2024-10-23 10:33 , Processed in 0.124715 second(s), 33 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回復(fù) 返回頂部 返回列表