设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1664|回复: 8
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
1#
发表于 2006-3-29 19:10:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ScaleX = FormName.ScaleWidth / FormOldWidth '保存窗体宽度缩放比例
ScaleY = FormName.ScaleHeight / FormOldHeight '保存窗体高度缩放比例

关键是:FormName.ScaleWidth / FormOldWidth

             FormName.ScaleHeight / FormOldHeight



与VBA 里如何对应?

这二VB的语句,在ACCESS  VBA 里出错,如何修改?多谢!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 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#
 楼主| 发表于 2006-3-30 06:13:00 | 只看该作者
::以下的VB 模块 如何修改呢??多谢



'让控件自动调整大小

Private FormOldWidth As Long '保存窗体的原始宽度
Private FormOldHeight As Long '保存窗体的原始高度
'在调用ResizeForm前先调用本函数
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
'按比例改变表单内各元件的大小,
'在调用ReSizeForm前先调用ReSizeInit函数
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 '根据控件的原始位置及窗体改变大小 '的比例对控件重新定位与改变大小
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) '在程序装入时必须加入
End Sub
Private Sub Form_Resize()
Call ResizeForm(Me) '确保窗体改变时控件随之改变
End Sub



以上的VB 模块 如何修改呢??多谢

以上的VB 模块 如何修改呢??多谢


[此贴子已经被作者于2006-3-29 22:14:02编辑过]

4#
 楼主| 发表于 2006-3-30 18:59:00 | 只看该作者
版主 能否指教?
5#
发表于 2006-3-31 04:42:00 | 只看该作者

Private FormOldWidth As Long '保存窗体的原始宽度
Private FormOldHeight As Long '保存窗体的原始高度

'在调用ResizeForm前先调用本函数
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

'按比例改变表单内各元件的大小,
'在调用ReSizeForm前先调用ReSizeInit函数
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 '根据控件的原始位置及窗体改变大小 '的比例对控件重新定位与改变大小
            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#
 楼主| 发表于 2006-4-1 06:11:00 | 只看该作者
没有反应!不行,能否搞个例子出来?多谢!

这一句出错:

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

对象不支持这属性!!





  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 '根据控件的原始位置及窗体改变大小 '的比例对控件重新定位与改变大小
       '     Obj.Move Pos(0) * ScaleX, Pos(1) * ScaleY, Pos(2) * ScaleX, Pos(3) * ScaleY
    Next I

[此贴子已经被作者于2006-3-31 22:17:35编辑过]

7#
发表于 2006-4-1 08:18:00 | 只看该作者
是完全可以运行的,没有问题.
8#
 楼主| 发表于 2006-4-4 18:21:00 | 只看该作者

我在OFFICE2000 下没有反应

我在OFFICE2000 下没有反应,能否把你成功的例子给我?多谢!

[此贴子已经被作者于2006-4-4 10:24:28编辑过]

9#
发表于 2006-4-5 04:05:00 | 只看该作者



注意变量的使用位置,和函数所放入的事件.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-12-1 18:09 , Processed in 0.094387 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表