Office中国论坛/Access中国论坛

标题: 以下代码系想达到在批量打印中,根据项目多少选择不同报表打印.. [打印本页]

作者: chenlugen    时间: 2008-9-14 23:45
标题: 以下代码系想达到在批量打印中,根据项目多少选择不同报表打印..
以下代码系想达到在批量打印中,根据记录项目多少选择不同报表(一张是半张纸的,,另一张是一张纸的)进行打印,,,好像只有一个记录时能正确选择格式打印,,但当有二条以上记录时,,,好像并不能进行循环判断,,,只判断一次,,,也即第一条记录,,,,但就是达不到效果,,,烦请高手,,,进行修改指正,,,,修改后如果能实现要求,,,如何做到,,,两个半张纸的记录合并为一张纸打印,,,(注,,,不是把记录合并为一条记录),,,,,在这先谢谢了,,,,
详细情形,,,见附件,,,资料输入窗口的批量打印,,,,,希高手给调试修改,,,,,谢谢,,,,
================================================================
Private Sub 批量打印_Click()
'On Error Resume Next
Dim strSQL As String
Dim conn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim strID As String
    Set conn = New ADODB.Connection
    Set rst = New ADODB.Recordset
    Set conn = CurrentProject.Connection
   
    strSQL = "SELECT 病人资料总表.打印标记, 病人资料总表.病人ID, 病人资料总表.病人编号, 病人资料总表.姓名, " & _
        "病人资料总表.性别 , 病人资料总表.年龄, 病人资料总表.科别, 病人资料总表.床号, 病人资料总表.送检日期,  " & _
        "病人资料总表.检验日期, 病人资料总表.送检医生, 病人资料总表.检验者, 病人资料总表.审核者, " & _
        "病人资料总表.标本类型 , 病人资料总表.备注, 病人资料总表.项目名称, 病人资料总表.结果一,  " & _
        "病人资料总表.结果二, 病人资料总表.结果三, 病人资料总表.结果四, 病人资料总表.结果五, " & _
        "病人资料总表.结果六 , 病人资料总表.结果七, 病人资料总表.结果八, 病人资料总表.结果九,  " & _
        "病人资料总表.结果十, 病人资料总表.结果十一, 病人资料总表.结果十二, 病人资料总表.结果十三,  " & _
        "病人资料总表.结果十四, 病人资料总表.结果十五, 病人资料总表.结果十六, 病人资料总表.结果十七,  " & _
        "病人资料总表.结果十八, 病人资料总表.结果十九, 病人资料总表.结果二十, 项目.项目一, 项目.项目二,  " & _
        "项目.项目三, 项目.项目四, 项目.项目五, 项目.项目六, 项目.项目七, 项目.项目八, 项目.项目九,  " & _
        "项目.项目十, 项目.项目十一, 项目.项目十二, 项目.项目十三, 项目.项目十四, 项目.项目十五, 项目.项目十六, " & _
        "项目.项目十七, 项目.项目十八 , 项目.项目十九, 项目.项目二十, 项目.单位一, 项目.单位二, 项目.单位三, " & _
        "项目.单位四, 项目.单位五, 项目.单位六, 项目.单位七, 项目.单位八, 项目.单位九, 项目.单位十, " & _
        "项目.单位十一, 项目.单位十二, 项目.单位十三, 项目.单位十四, 项目.单位十五, 项目.单位十六,  " & _
        "项目.单位十七, 项目.单位十八, 项目.单位十九, 项目.单位二十, 项目.参考范围一, 项目.参考范围二,  " & _
        "项目.参考范围三, 项目.参考范围四, 项目.参考范围五, 项目.参考范围六, 项目.参考范围七, 项目.参考范围八, " & _
        "项目.参考范围九, 项目.参考范围十, 项目.参考范围十一, 项目.参考范围十二, 项目.参考范围十三,  " & _
        "项目.参考范围十四, 项目.参考范围十五, 项目.参考范围十六, 项目.参考范围十七, 项目.参考范围十八,  " & _
        "项目.参考范围十九, 项目.参考范围二十 " & _
        "FROM 病人资料总表 INNER JOIN 项目 ON 病人资料总表.项目名称 = 项目.项目名称 " & _
        "WHERE (((病人资料总表.打印标记)=True));"
   
   rst.Open strSQL, conn, adOpenKeyset, adLockReadOnly, adCmdText
   rst.MoveFirst
    Do While Not rst.EOF
    'Debug.Print rst.RecordCount
   ' For I = 0 To rst.RecordCount Step 1
    strID = ""
    Debug.Print rst!病人ID, " '" & rst!项目十四 & " '"
        strID = rst!病人编号
        If IsNull(rst!项目十四) Then
       ' rst.MoveNext
        'strID = strID & "," & rst!病人编号
        Debug.Print "1=1"
     'If IsNull(DLookup("项目十四", "批量打印查询", "病人编号='" & Me!日期查询!病人编号 & "'")) Then
   
    DoCmd.OpenReport "批量打印1", acNormal, "批量打印查询", "病人编号 ='" & strID & "'", acWindowNormal
   
    Else
   
    DoCmd.OpenReport "批量打印2", acNormal, "批量打印查询", "病人编号 ='" & strID & "'", acWindowNormal
    End If
        rst.MoveNext
     Loop
     rst.Close
   Set rst = Nothing
   Set conn = Nothing
End Sub
==========================================================================
[attach]32073[/attach]
作者: ui    时间: 2008-9-15 09:43
判断rst.recordcount 来判断有几条记录会更好
作者: chenlugen    时间: 2008-9-15 10:24
大哥,,,,能帮忙修改下好不/?[:31] [:30]
作者: changweiren    时间: 2008-9-30 23:41
如何做到,,,两个半张纸的记录合并为一张纸打印




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3