Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

报表设计,设置已分组的文本框属性为可以扩大,求救如何解决?

兰草  发表于:2010-05-13 15:17:39  
复制

 

 

Top
陈福祥 发表于:2010-05-13 17:56:12

你的这个问题,有两种情况:

1、增加文本控件宽度,那么会造成报表上的记录看起来不整齐。

2、动态缩小字休,这样可能会比较美观点。

附件中,两情况均设置了示例,主要是用Report对象的TextWidth方法来调整。

 

点击下载此附件

兰草 发表于:2010-05-15 09:40:32

非常感谢1楼的回帖,最近没有时间及时回帖表示歉意。你给我的例子,我看了,使我学到了新的知识,可是我的问题关键是所有控件的总宽度已经达到报表页面的最大值,只能通过增加高度来调节空白控件。最后,你给列子中第一个报表出现错误提示:



兰草 发表于:2010-05-15 09:41:32
非常感谢你的耐心赐教!

陈福祥 发表于:2010-05-16 16:58:12

呵呵,你是整着那里了,居然算出来的字体大小会超出1~127?

不过照我的示例的公式来看应该不会超出这们数据的哦。

我的示例的公式的意思是:先求出文本框的宽度与实际字符串宽度之间的比例,再用原来的字体大小去乘以这个比例,就得出新字体的大小,如果你的字符串是特别是长的那种呢,可能会超来1~127的限制。



兰草 发表于:2010-05-18 12:34:02

呵呵,我也不知道怎么回事,我下载你的附件打开报表就出现这样的提示。你公式的意思我懂了。



兰草 发表于:2010-05-18 13:20:21
我的是access2003,你的肯定是access2007的。我的打开就成那样,好像程序中F保存不了值,格式化事件中的F始终是零,所以就提示错误。

陈福祥 发表于:2010-05-18 15:41:54

是的,我用的2007版的access,但,我是将它保存为2003格式的。

不过,你可以根据这个思路,对你的表进行修改,应该可以实现的。

好象2003版也支持 报表 的这个 “TextWidth”方法,只是记不得它对此方法有些什么限制,你查帮助文件看一下。



陈福祥 发表于:2010-05-18 15:47:02

或者,你新建一个空的数据库,将我的示例中的对象导进去,看在新的文件中能不能运行。

因为,有时我在网上下的其他人的示例文件,不知是电脑的原因,还是电脑上设置等原因,数据库文件中有些看不见的系统东东会影响着代码的运行。

再者,你在新数据库里,随便弄点数据,通过 MsgBox、或Debug.Print等方法,测试一下 TextWidth 方法,看此方法能不能用。如果你的Access不能用 TextWidth 方法的话,那就没办法了,呵呵……



兰草 发表于:2010-05-19 10:57:21

谢谢你的回复,是fontsize的问题,textwidth没问题,我改成这样就没问题了:Option Compare Database
Option Explicit
Private Sub 主体_Format(Cancel As Integer, FormatCount As Integer)
    Dim cW As Double
    Dim F As Double
    F = Me.Address.FontSize
    Me.Address.FontSize = F    '每次主体格式化时,先将字体设为正常大小
    If Me.Address.Width < Me.TextWidth(Me.Address) Then
        cW = (Me.Address.Width - 100) / Me.TextWidth(Me.Address)
        Me.Address.FontSize = Int(Me.Address.FontSize * cW)
    End If
End Sub
之前是这个F值带不出来,我放在主体事件里了。



总记录:9篇  页次:1/1 9 1 :