标题:如何在一列表框中列出所需要的报表名清单.
原作者:ATTAC Consulting Group
原文网址:http://ourworld.compuserve.com/homepages/attac-cg/AFormTip.htm#KEY
摘抄人:tmtony
翻译人:爱情(意译)
有时候在你操作的窗体中的一个列表框里列出你所以需要打印报表名,(双击可以打开预览或打印。)这让会用户操作起来比较爽。 下面就来介绍如何将所需要用到的报表名加入到这个列表框中。
1. 给报表名加前缀(如:my_报表名),表示有这个前缀的报表名,即是我们将用到的,显示在列表框中。
2. 在这个列表框的属性中的“行来源类型”设为:值列表。
3. 将下面代码放在您操作窗体的“open”事件里。(注:下面的代码在access 97以上通用。)
Sub Form_Open (Cancel As Integer)
On Error GoTo ErrHandler
Dim App As Object
Dim CurProject As Object
Dim CollReports As Object
Dim objRpt As Object
Dim strRptName As String, strReportList as String, i As Integer
If SysCmd(acSysCmdAccessVer) < 9 Then '判断access版本,不版本将用不同的代码
i = 0
Set CurProject = CurrentDb
Set CollReports = CurProject.Containers("Reports")
For i = 0 To CollReports.Documents.Count - 1
strRptName = CollReports.Documents(i).Name
If instr(strRptName, "my_")>0 Then
strReportList = strReportList & strRptName & ";"
End If
Next i
Else
Set App = Application
Set CurProject = App.CurrentProject
Set CollReports = CurProject.AllReports
For Each objRpt In CollReports
strRptName = objRpt.Name
If instr(strRptName, "my_")>0 Then
strReportList = strReportList & strRptName & ";"
End If
Next
End If
'去掉后面 ";" 字符
strReportList = Left(strReportList, Len(strReportList)-1)
Me!RptLstBox.RowSource = strReportList
ExitProc:
Exit Sub
ErrHandler:
MsgBox Err & " " & Error, , "Form Open"
Resume ExitProc
End Sub
思维扩展:如何用一个组合框将代替以上功能,当选中下拉菜单某项报表名时,将打开这个报表的预览。(并附上我做的例子)
[em01][em01][em01]
[此贴子已经被作者于2005-8-17 9:17:09编辑过]
|