Access交流中心

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

关于报表文本框内字体大小的问题

子煜  发表于:2011-11-30 15:53:34  
复制

报表内的字段太多,而且字段内容长度不一,有时候打印预览时发现不能完全显示。。

 

因文本框已设计好固定宽度,现在想加个VBA代码来判断,例如: 文本框1设置好的宽度是5个文字,10号字体。  现在加个条件,当文本框1大于5个字符时,那么赋序此文本框字体大小为9,请问这个VBA代码如何写??写在哪?

 

Top
叶海峰 发表于:2011-11-30 16:17:46
if len(文本框1)>5 then 文本框1.fontsize=9

子煜 发表于:2011-11-30 16:39:53

报表内有很多行字段,不是每行都是这样设,代码应放在哪? 要不要循环计算呢??



叶海峰 发表于:2011-11-30 22:28:50

把需要设置字体大小的控件的标记属性设为1(多选需要设置的控件,右键-属性-其他-标记-填1),然后运行循环代码

 

dim ctl as controls

for each ctl in me.controls

if ctl.controltype=actextbox and ctl.tag=1 and len(ctl)>5 then ctl.fontsize=9

next

 



煮茶论道 发表于:2011-11-30 22:55:23

复制以下代码到报表中

Private Sub 主体_Format(Cancel As Integer, FormatCount As Integer)
If Len(文本框1) > 5 Then
Me.文本框1.FontSize = 9
Else
Me.文本框1.FontSize = 10
End If
End Sub



子煜 发表于:2011-12-05 10:02:53

楼上的代码没问题,可以达到效果,但是我要的是按记录,不是所有都改变。。

因为报表有很多条记录,不是每条记录的文本框位数都一样,如果符合的那条记录的文本框才会按代码改变字体,如按你的代码只要有一个文本框符合条件,那所有记录都跟着变了。。所以不行。。



李应强 发表于:2011-12-30 14:55:31

多少年的问题,一直没找到解决的方法,刚好看到这个,对我来说,正好够用了。



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