Access交流中心

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

窗体与报表的问题?

weilai  发表于:2009-02-13 23:55:32  
复制

      实现的功能描述:为在实际工作中让用户对报表有更多的自由度,比如在数据哭表视图的窗体上调用好表哥的列宽及行高后,要求在报表上也显示窗体调整的效果。

 

    调试后出现下面现象,请好心人帮帮忙,本人万分的感谢!(这是我的毕业设计,要赶着3月底完成。)

 

 

 

Private Sub Report_Open(Cancel As Integer)
'打开报表时自动读取窗体字段的宽度
'用以设定报表上控件的宽度
    Dim i1 As Long
    i1 = 0
    Dim objform As Form
    Set objform = Forms("计网07")

    Dim objcontrol As Control
    For Each objcontrol In objform.Controls
            If TypeOf objcontrol Is TextBox And checkcontrol(objcontrol.nanme, Me.计网07bb) Then
            '下列赋值方式必须基于一个条件
             '窗体上控件的名称必须等于报表上控件的名称
             '默认情况下向导创建的报表中控件名称等于字段名称
             '这里就很好的利用了这点
             With Me.Controls(objcontrol.Name)
                  .Width = objform.Controls(objcontrol.Name).ColumnWidth
                .Left = i1
                If objform.RowHeight <> -1 Then
                '如果行高是默认值,rowheight属性则是等于-1,所以要判断一下
                .Height = objform.RowHeight
                End If
                End With
                With Me.Controls(objcontrol.Name & "_label")
               .Width = objform.Controls(objform.Name).ColumnWidth
                .Left = i1
                End With
                i1 = i1 + Me.Controls(objcontrol.Name).Width
                End If
                Next
                End Sub
               
    Function checkcontrol(strcontrolname As String, obj As Object) As Boolean
    '本函数用与于检测报表或者窗体中是否包含指定名称的控件
        checkcontrol = True
        On Error Resume Next
        Debug.Print obj.Controls(strcontrolname).Name
        If Err.Number <> 0 Then
       
        '其实错误号为2465就是表示没有此控件
        Debug.Print Err.Number & ":" & Err.Description
        checkcontrol = False
        Exit Function
        End If
        End Function
   
               
   
   
   
End Function

 

Top
黎红军 发表于:2009-02-19 03:00:37

你试试用语句隐藏打开需要的窗体,偏历控件,然后设置到报表相应的控件值中去。



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