首页 文章

Crystal Reports 8问题从SQL 7到SQL 2008 VB6

提问于
浏览
1

将数据库从SQL Server 7切换到SQL Server 2008后,我遇到了报告问题 . 报告在我们的旧服务器上正常运行,它是Server 2000,并且再次运行SQL Server 7.我们必须将DSN驱动程序更新为指向新数据库 . 现在当有人运行我们的报告时,他们会收到此错误:

enter image description here

我试图将主数据库兼容级别降低到SQL Server 2000(80),我想也许它与用户登录有关 . 报告从中提取的数据库正在与SQL Server 2000(80)的兼容级别上运行 .

我试图谷歌报告错误,但我看到的一切与我的问题无关 . 我试图重新安装水晶报告,这有助于解决我可能遇到的任何问题,但这次没有用 .

我也试图“修复”报告 . 在水晶中,您可以修复报告以确保它指向正确的数据库 . 我没有修复任何其他报告,他们工作正常 .

我试过针对SQL Management Studio测试查询,我正在为报告提取我想要的数据而没有错误 . 我知道查询正在运行,所以它不能是声明 .

我已下载并安装了crystal report runtime 8.5,重新启动了计算机并重新报告了该报告 . 我仍然得到相同的结果 .

到目前为止,据我所知,问题仅在于此报告 . 我们的VB6项目中有其他报告可以正常工作 . 以下是运行报告的代码:

Private Sub cmdPrintPo_Click() 

 Dim result As Variant 

 repSinglePo.ReportFileName = ReportDirectory + "\singlepo.rpt"
repSinglePo.Destination = crptToPrinter
repSinglePo.CopiesToPrinter = 1
repSinglePo.Connect = "DSN = clearspan;UID = " + glUserName + ";PWD = " + glPassword + _
                    ";DSQ = " & gsDatabaseName
repSinglePo.SQLQuery = _
    "SELECT" + _
        " PO.PO_Num, PO.Supplier, PO.DateOrdered, PO.DateRequired, PO.Terms, PO.Freight, PO.FOB, " + _
        " POItems.PO_Num, POItems.Quantity, POItems.Description, POItems.Item, POItems.Price, POItems.KeyNum " + _
    " From" + _
        " PO PO," + _
        " POItems POItems" + _
    " Where" + _
        " PO.PO_Num = POItems.PO_Num and PO.PO_Num = " + lblPONum.caption
'Print Original Po and then a copy
result = repSinglePo.PrintReport 

 repSinglePo.ReportFileName = ReportDirectory + "\po-copy.rpt"
result = repSinglePo.PrintReport 

 If result = 0 Then
    MsgBox "PO has been printed" 

 Else
    Select Case CLng(result)
        Case 20520
            DisplayErrorCode ("PrintingAlreadyStarted") 

    Case Else
        MsgBox "Error while printing PO. Error code: " + str(result) & vbCrLf & repSinglePo.LastErrorString
End Select

结束如果结束子

正如你在上面的图片中所说,代码炸弹在:

Case Else MsgBox“打印PO时出错 . 错误代码:”str(result)&vbCrLf&repSinglePo.LastErrorString End Select

我试图改变select语句,认为两个版本的感知可能存在差异 . 我所做的一切似乎都没有 . 有人能指出我正确的方向吗?谢谢你提前帮助 .

3 回答

  • 0

    是否要加入在各自的PO_Num字段中具有相同值的表PO和POItem?我相信首选的语法是:

    " From" + _
    "    PO PO " + _
    " inner join " + 
    "    POItems POItems " + _
    " on " +
    "    PO.PO_Num = POItems.PO_Num " +
    " Where " + _
    "    PO.PO_Num = " + lblPONum.caption
    
  • 0

    Crystal 8 rpt文件保留了数据连接信息,即使在运行时更改细节,有时也无法清除这些信息

    建议如下:更改您的rpt文件以指向新数据库,您需要刷新并预览报告,确保它从新数据库中获取数据 .

    希望能帮助到你 ..

  • 0

    经过数周和数周的工作,我找到了一个解决方法 . 到目前为止,这是解决问题的唯一方法 . 我不得不在Visual Studio之外打开水晶报表视图 . 然后我不得不打开报告问题的报告 . 之后,我运行了应用程序并在应用程序中打开了报告 . 该报告会打开很好,可以打印 . 然后我会将应用程序打开,然后将报告保存在查看器中(再次在应用程序旁边,以及visual studio) . 在我这样做之后,我们再也没有从报告中找到问题 .

    Crystal Report Viewer 8

相关问题