このような接続文字列をフォーマットしてみてください。
DSN=server;UID=database;PWD=password;DSQ=user
DSN
、UID
、DSQ
の意味は直感的であり、それらはクリスタルでオーバーロードされています。
また、Connect
のプロパティを同様に変更する必要があるサブレポートがないことを確認します。レポートにレコードセットを渡していないのはなぜ
Private Sub cmdSetLocations_Click()
Dim CrxApp As New CRAXDRT.Application
Dim CrxRep As CRAXDRT.Report
Dim CrxSubRep As CRAXDRT.Report
Dim strReport As String
Dim i As Integer, ii As Integer
strReport = "[Path to report file]"
Set CrxRep = CrxApp.OpenReport(strReport)
SetReportLocation CrxRep
For i = 1 To CrxRep.Sections.Count
For ii = 1 To CrxRep.Sections(i).ReportObjects.Count
If CrxRep.Sections(i).ReportObjects(ii).Kind = crSubreportObject Then
Set CrxSubRep = CrxRep.OpenSubreport(CrxRep.Sections(i).ReportObjects(ii).SubreportName)
SetReportLocation CrxSubRep
End If
Next ii
Next
'open your report in the report viewer
Set CrxApp = Nothing
Set CrxRep = Nothing
Set CrxSubRep = Nothing
End Sub
Private Sub SetReportLocation(ByRef RepObj As CRAXDRT.Report)
Dim CrxDDF As CRAXDRT.DatabaseTable
Dim CP As CRAXDRT.ConnectionProperties
For Each CrxDDF In RepObj.Database.Tables
Set CP = CrxDDF.ConnectionProperties
CP.DeleteAll
CP.Add "Connection String", "[Your connection string goes here]"
Next
Set CrxDDF = Nothing
Set CP = Nothing
End Sub
+1。ようこそ。 – PowerUser
自分の知る限り、どのCRライブラリを使用していますか? CRAXDDRT.dll? CRAXDRT.dll? – PowerUser
こんにちはボビーよく私はcrystal report.Nに若干新しいですので、私はちょうどvb6.WhereでコンポーネントからCrystal Reportコントロールを挿入して、これらのdllを見つけることができます。あなたの時間をありがとう。 – Monshine