on 12-09-2008 5:15 AM
WindowsXPからVISTAへ開発環境の移行を行っております。
XP環境
VB6.0SP5
Spread3.0J
InputMan6.5J
CrystalReports8.5
VISTA環境
VB6.0SP6
Spread7.0J
InputMan7.0J
CrystalReportsXI R2 SP4
クリスタルレポートはOCX(Crystl32.OCX) から RDC へ変換していますが、あるファイルでプレビュー表示しようとすると「Database Connector エラー:"」のエラーメッセージが表示されプレビュー表示出来ません。
プレビュー表示なしで直接印刷しようとしても同じエラーが表示されます。
印刷時はaccessファイルのローカルテーブルからデータを読み込んでいるのですが、何か原因をつきとめる方法などありますでしょうか。
ちなみにXP環境では問題なく表示されます。
アドバイスよろしくお願いいたします。
Access データファイルに直接利用しているわけですか。
どのようなコードでデータベースの接続していますか。
例えば、ODBC または、OLE DB 経由で接続してみたら現象は改善しますか。
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
ローカルにあるACCESS(MDB)をクリスタルレポートで参照させています。
処理の流れとしては以下になります。
**ここから*****************************
'ACCESSの初期化
If USR_LS_TANA_INIT() = False Then
Exit Sub
End If
u2019スプレッドから画面データを取得しMDBを更新
For W_CNT = 1 To SPS_LEASE.MaxRows Step 1
SPS_LEASE.Row = W_CNT
Call USR_MDB_SQL(W_CNT) u2019SQL生成部分
M_RTN = MDB_UPDT(P_MDB_DSN, M_SQL) u2019MDB更新
If M_RTN <> 0 Then
M_MSG1 = "情報の作成に失敗しました。(" & W_CNT & ")件目"
M_MSG2 = "(" & M_RTN & ")"
Call KYO_MSGBOX("A", M_MSG1, M_MSG2, M_RESP)
Exit Sub
End If
Next W_CNT
Call MDB_CLOSE(P_MDB_DSN)
u2019クリスタルレポート印刷の実行
Report.PrintOut False
**ここまで******************************
24x7 様
あれから「Database Connector エラー:"」のエラーは解決出来ないため、似たような帳票をサンプルに再作成
しました。これによりエラーが出ないようになりました。.DSRファイルに問題があったのか詳しい原因がわから
ない状態ですが、検証をすすめることにしましたが不具合が見つかりました。
それはシステム起動後、照会画面でデータを検索し画面表示されているデータを帳票を印刷するという作業の流れで
1回目は画面表示されているデータを印刷するのですが、2回目以降別のデータを検索し印刷しても1回目に検索
したデータで帳票が印刷され、クリスタルレポート側のデータが更新されていないような状態です。
そこで前回教えていただいたソースに再度挑戦してみたのですが、「インデックスが有効範囲にありません。」のエラー
が表示されます。いろいろ変更してやってみるのですが、「メソッドまたはデータ メンバが見つかりません。」のエラーが
出たりでなかなか上手く行かない状況です。
ヘルプを検索して以下のソースを追加してみましたが、まれに上記と同じ不具合が発生してしまいます。
**ここから*************************
Dim dbTable As CRAXDRT.DatabaseTable
For Each dbTable In Report.Database.Tables
dbTable.Location = dbTable.Name
Next
**ここまで*************************
アドバイスよろしくお願いいたします。
UEYAMA 様、
まず確認ですが、
>ちなみにXP環境では問題なく表示されます。
と書かれているのは、OCX で作成したアプリケーションが動作しているのが XP 環境という意味であって、RDC で作成したアプリケーションが XP では動作しているが、VISTA では動作しないという意味 ではない ですよね。
ミスリードを招く表現なので、何が動いて、何が動かないかを正確にお知らせください。
一番最初のサンプルコードに RDC に関連するコードが全く含まれていない等、RDC についての習得度が十分ではないように思われます。DB ログオンの問題が解決出来たとしても、他の問題が発生する事が考えられますので、まずはサンプルアプリケーションで使い方を確認することをお勧めします。
[Business Objects Software Download|http://service.sap.com/sap/bc/bsp/spn/bobj_download/main.htm] のページに行き、Software Products に Crystal Reports を選択、Product Version に 10 を選択、Software Type に sample を選択して[Search] をクリックしてください。検索結果から "RDC10 Sample Apps for the Desktop" をダウンロードし、実行するか WinZip などで展開してください。RDC のサンプルが zip で含まれています。
API のオンラインマニュアルが無い場合は [Developer Library|http://devlibrary.businessobjects.com/BusinessObjectsXIR2/ja/ja/RDC_SDK/default.htm] からダウンロードしてください。
なお、RDC は XI R2 のリリース時に「利用は非推奨」となっており、.NET または Java への移行を推奨しています。また、制限もいくつか存在しますので、関連ドキュメントをご確認ください。
SCN フォーラムモデレーター
ご指摘ありがとうございます。
ところで前回教えていただいたURL:Business Objects Software Download
(http://service.sap.com/sap/bc/bsp/spn/bobj_download/main.htm) を表示し
ようとすると白色の画面のままで画面が展開しません。
を先に開き「Software Download」を選択するとユーザID、パスワードの入力を
求められます。
これはソフトウェア購入後、ユーザ登録すれば発行されるものなのでしょうか。
おわかりであればご教授下さい。
ソフトウェア購入先にも問い合わせる予定です。
Edited by: KATSUHIRO UEYAMA on Dec 16, 2008 2:47 AM
一般ユーザー(P で始まる ID)の方は直接参照出来ないようなので、一度 [Products Portal の Crystal Reports|https://www.sdn.sap.com/irj/boc/crystalreports] に行き、右下の Resources の下から 2 番目の Other Crystal Reports Downloads を選択してください。
なお、SCN/SDN 自体に関するヘルプは全て [SDN サポート(製品サポートチームとは違います)|https://www.sdn.sap.com/irj/sdn/community-support?language=ja] が行います。
弊社代理店様も 1 ユーザーでしかありませんし、モデレーターもフォーラム内のメッセージ整理のみで、SDN サポートが行うべき作業の権限は一切与えられておりません。
一般ユーザー ID でアクセスできないページは基本的に保守契約をお持ちのユーザー様のみアクセス可能とお考えください。
SCN フォーラムモデレーター
Report.Database.Table(1).ConnectionProperties.item(u201CDatabase Nameu201D)= App.Path & u201C\xtreme.mdb"
は、
Report.Database.Tables(1).ConnectionProperties.item(u201CDatabase Nameu201D)= App.Path & u201C\xtreme.mdb"
の間違いでした。失礼しました。
以下のどちらでも動作しましたけど・・
For i = 1 To Report.Database.Tables.Count
Report.Database.Tables.Item(i).Location = App.Path & u201C\xtreme.mdb"
Next
Dim dbTable As CRAXDRT.DatabaseTable
For Each dbTable In Report.Database.Tables
dbTable.Location = App.Path & u201C\xtreme.mdb"
Next
あと、2回目以降は同一データとは、データが保存されたままではないでしょうか。
以下のコードを追加してみてください。
' 保存データの破棄
Report.DiscardSavedData
あと、MDB ファイルを更新しているときは、レポートが利用する前には、必ずデータベースのクローズを実行していないと更新されたデータを取得することはできません。
24x7 様
Naoto Miyahara 様
一応解決することができました。
24x7 様に教えていただいた「.DiscardSavedData」をキーワードにサンプルプログラムを検索
したところ、change_fontsというサンプルプログラムがあり、これをもとに標準モジュールの
追加と以下のコードに変更したところ現象が改善されました。ちなみにこの変更でも
「Database Connector エラー:"」は改善しませんでした。再作成で対処することにします。
Set crxReport = crxApplication.OpenReport(App.Path & "\******.rpt")
crxReport.DiscardSavedData
Set crxDatabase = crxReport.Database
Set crxDatabaseTables = crxDatabase.Tables
For Each crxDatabaseTable In crxDatabaseTables
crxDatabaseTable.Location = App.Path & "\****.mdb"
Next crxDatabaseTable
とりあえずこれで気持ちよく年を越すことが出来ます。
いろいろアドバイスいただきありがとうございました。
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.