質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
Crystal Reports

Crystal Reportsとは、幅広いデータソースを基にレポート、帳票を作成するためのアプリケーションである。

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

解決済

Crystal Reports の接続先DBを変更したい

gosaro
gosaro

総合スコア2

Crystal Reports

Crystal Reportsとは、幅広いデータソースを基にレポート、帳票を作成するためのアプリケーションである。

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

1回答

0グッド

0クリップ

163閲覧

投稿2022/12/07 08:00

前提

VB.NET で Crystal Reports を使用したシステムの改修をすることになりました。
Crystal Reports は未経験で、システム開発当時の担当者もいない状況です。

Crystal Reports は客先のオンプレミスの SQL Server に接続する設定になっていますが、私の開発環境からは接続できません。

検索しても新規にレポートを作る手順の説明ばかりで、既存のレポートの接続先を変更する情報が見つかりません。

実現したいこと

レポートデザイナを開き、フィールドエクスプローラのデータベースフィールドからデータベースエキスパートを開いた際、選択したテーブルにオンプレミスのサーバー名とインスタンス名が表示されていますが、さしあたりこれを開発環境の (localdb)\MSSQLLocalDB にしたいです。

最終的にはVB側で接続先を指定したいです。

VB側の改修は多少複雑になっても構いませんが、最低限レポートのデザインは維持したいです。

試したこと

「選択したテーブル」からオンプレミスの設定を削除する。
→オンプレミスのデータを参照するコントロールがすべて削除された。

「選択したテーブル」に (localdb)\MSSQLLocalDB を追加してコントロールの参照先の変更を試みる。
→該当するプロパティが見つからない。

補足情報(FW/ツールのバージョンなど)

Visual Studio 2017 Community
SAP Crystal Reports for Visual Studio (SP32) installation package for Microsoft Visual Studio IDE (VS 2019 and below)

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

KOZ6.0

2022/12/07 08:09

「Crystal Reports データソース変更」で検索したら、参考になりそうな記事がいくらでも出てくるんですが・・・
gosaro

2022/12/07 08:50

できました。ありがとうございます。 データソースというキーワードが思いつきませんでした…

回答1

0

ベストアンサー

レポートの接続先をVBで変更するためのコードを記載しておきます。
大昔に作ったものなので、今も同じように動くかどうかわかりませんが、大筋はかわっていないと思います。

VB

1Imports CrystalDecisions.Shared 2Imports CrystalDecisions.CrystalReports.Engine 3 4Module Module1 5 6 Sub Main() 7 Using report As New ReportDocument() 8 report.Load("レポート名.rpt") 9 SetLogonInfo(report, "サーバー名", "データベース名", "ユーザ名", "パスワード") 10 report.ReadRecords() 11 If report.HasRecords Then 12 report.PrintToPrinter(1, False, 0, 0) 13 End If 14 End Using 15 End Sub 16 17 Private Sub SetLogonInfo(report As ReportDocument, 18 server As String, database As String, 19 user As String, password As String) 20 If Not report.IsSubreport Then 21 For Each subReport As ReportDocument In report.Subreports 22 SetLogonInfo(subReport, server, database, user, password) 23 Next 24 End If 25 For Each table As Table In report.Database.Tables 26 Dim logonInfo As TableLogOnInfo = table.LogOnInfo 27 With logonInfo.ConnectionInfo 28 .ServerName = server 29 .DatabaseName = database 30 .UserID = user 31 .Password = password 32 End With 33 Dim tableName As String = logonInfo.TableName 34 Dim pos As Integer = tableName.IndexOf(".") 35 If pos >= 0 Then 36 tableName = user & "." & tableName.Substring(pos + 1) 37 logonInfo.TableName = tableName 38 End If 39 table.ApplyLogOnInfo(logonInfo) 40 table.Location = tableName 41 Next 42 End Sub 43 44End Module

投稿2022/12/07 09:27

KOZ6.0

総合スコア2243

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Crystal Reports

Crystal Reportsとは、幅広いデータソースを基にレポート、帳票を作成するためのアプリケーションである。

SQL Server

SQL Serverはマイクロソフトのリレーショナルデータベース管理システムです。データマイニングや多次元解析など、ビジネスインテリジェンスのための機能が備わっています。

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。