サポートされる Access レポート機能
レポート デザイナにレポートをインポートすると、インポート処理の際に、Microsoft Access のレポートは Reporting Services のレポート定義言語 (RDL) ファイルに変換されます。Reporting Services は Access のいくつかの機能をサポートしていますが、Access と Reporting Services の差異のため、アイテムの中には、若干変更されるものや、まったくサポートされないものがあります。このトピックでは、Access のレポート機能を RDL に変換する方法を説明します。
Access レポートのインポート
一部のクエリには、Access 固有のコードが含まれています。Access のコードがレポートと一緒にインポートされることはありません。また、クエリに埋め込み文字列が含まれている場合、レポートは正しくインポートされません。これを修正するには、文字列を文字コードに置き換えます。たとえば、コンマ (,) 文字を CHAR(34) に置き換えます。
インポート処理では、接続文字列情報に含まれるセミコロン (;) や XML マークアップ文字 (< や > など) を適切に渡すことができません。接続文字列にセミコロンや XML マークアップ文字が含まれている場合は、レポートのインポート後に、新しいレポートでパスワードを手動で設定する必要があります。
インポート処理では、接続文字列に含まれる接続設定や全般的なタイムアウト設定がインポートされません。レポートをインポートした後、これらの設定の調整が必要になる場合があります。
インポートするレポートにクエリ パラメータを含むクエリがある場合、このクエリはレポートのインポート時に変換されません。レポートと一緒にクエリをインポートするには、Access レポート内のクエリ パラメータをハードコードされた値に一時的に置き換え、レポートのインポート後にこれらのハードコード値をクエリ パラメータに置き換えます。
データ ソース
Reporting Services は、SQL Server などの OLE DB データ ソースをサポートします。Access プロジェクト (.adp) ファイルからレポートをインポートする場合は、データ ソースの接続文字列は、.adp ファイルの接続文字列から取得されます。Access データベース (.mdb) ファイルからレポートをインポートする場合は、データ ソースの接続文字列が Access データベースを指していることがあるため、レポートのインポート後に修正が必要になる可能性があります。Access レポートのデータ ソースがクエリである場合は、クエリ情報は変更されることなく RDL に保存されます。Access レポートのデータ ソースがテーブルである場合は、変換処理の際、テーブル名およびテーブル内のフィールドを基にクエリが作成されます。
カスタム モジュールを含むレポート
モジュール内に Microsoft Visual Basic のカスタム コードが含まれている場合、そのコードは変換されません。インポート処理中にレポート デザイナがコードを検出した場合は、警告が生成され、[タスク一覧] ウィンドウに表示されます。
レポート コントロール
Reporting Services では、以下の Access コントロールがサポートされ、これらは変換後のレポート定義に保持されます。
イメージ |
ラベル |
直線 |
四角形 |
サブフォーム |
サブレポート 注 サブレポート コントロールはメインのレポート内で変換されますが、サブレポート自体は個別に変換されます。 |
テキスト ボックス |
Reporting Services では、以下のコントロールはサポートされません。
連結オブジェクト フレーム |
チェック ボックス |
コンボ ボックス |
コマンド ボタン |
カスタム コントロール |
リスト ボックス |
オブジェクト フレーム |
オプション ボタン |
タブ コントロール |
トグル ボタン |
インポート処理中にレポート デザイナがこれらのうちのいずれかのコントロールを検出した場合は、警告が生成され、[タスク一覧] ウィンドウに表示されます。
ActiveX や Office Web コンポーネントなどのその他のコントロールは、インポートされません。たとえば、Access レポートに OWC Chart コントロールが含まれていても、インポート時に変換されません。
レポート プロパティ
Reporting Services では、Access のユーザー インターフェイスから利用できる以下のプロパティがサポートされます。コード内でしか利用できないプロパティは、サポートされません。また、そのようなプロパティは、次の一覧には含まれていません。
背景色 |
背景スタイル |
境界線色 |
境界線スタイル |
境界線幅 |
下余白 |
印刷時拡張 (テキスト ボックス) |
印刷時縮小 (テキスト ボックス) |
標題 |
フォント太字 |
フォント斜体 |
フォント名 |
フォントサイズ |
フォント下線 |
フォント太さ |
改ページ |
前景色 |
高さ |
重複データ非表示 |
ハイパーリンク |
ハイパーリンクあり |
可視 |
同一ページ印刷 (グループ) |
左 |
左余白 |
線傾斜 |
行間 |
リンク子フィールド |
リンク親フィールド |
改段 |
ページフッター |
ページヘッダー |
ページ |
ピクチャ |
ピクチャ全体表示 (レポート) |
読みの順序 |
セクション繰り返し |
右余白 |
集計実行 |
OLE サイズ |
文字配置 |
上位置 |
上余白 |
幅 |
Reporting Services では、以下のプロパティはサポートされていません。
印刷時拡張 (セクション) |
印刷時縮小 (セクション) |
小数点以下表示桁数 |
高速レーザー印刷 |
フィルタ |
フィルタ適用 |
書式 |
書式条件 |
同一ページ印刷グループ |
同一ページ印刷 (セクション) |
数字の形態 |
方向 |
ペイント パレット |
パレット元 |
ピクチャ配置 |
ピクチャ表示ページ |
ピクチャサイズ |
ピクチャ全体表示 (イメージ) |
スクロールバー |
立体表示 |
縦書き |
グループ化
Access では、グループ式、GroupOn プロパティ、および GroupInterval プロパティの 3 つのプロパティを組み合わせてグループ レベルを定義します。グループ ヘッダーまたはグループ フッターのないグループは、このグループに含まれているグループに結合されます。グループに他のグループが含まれていない場合は、詳細セクションに並べ替えが適用され、このグループは削除されます。
式
Access では、式を使用して、テキスト ボックスに表示する値を指定します。Access では、いくつかの集計関数の他に、式の言語として Visual Basic が使用されています。レポート デザイナは、これらの Access の式をレポートの式に変換します。
関数
Reporting Services のレポート定義では、Visual Basic .NET がネイティブの式の言語として使用されていますが、Access 2002 では、Visual Basic for Applications (VBA) が使用されています。以下の一覧に、Reporting Services によってサポートされている関数を示します。
配列関数
Reporting Services では、以下の配列関数がサポートされています。
- LBound
- UBound
変換関数
Reporting Services では、以下の変換関数がサポートされています。
Asc |
CBool |
CByte |
CCur |
CDate |
CDbl |
CDec |
Chr |
Chr$ |
CInt |
CLng |
CSng |
CStr |
CVar |
CVDate |
Format |
FormatCurrency |
FormatDateTime |
FormatNumber |
FormatPercent |
Hex |
Hex$ |
Nz |
Oct |
Oct$ |
Str |
Str$ |
StrConv |
Val |
Reporting Services では、以下の変換関数はサポートされていません。
- GUIDFromString
- StringFromGUID
データベース関数
Reporting Services では、以下のデータベース関数がサポートされています。
CreateReport |
GetObject |
HyperlinkPart |
Partition |
Reporting Services では、以下のデータベース関数はサポートされていません。
CodeDb |
CreateControl |
CreateForm |
CreateGroupLevel |
CreateObject |
CreateReportControl |
CurrentDb |
CurrentUser |
DeleteControl |
DeleteReportControl |
Eval |
IMEStatus |
SysCmd |
日付/時刻関数
Reporting Services では、以下の日付/時刻関数がサポートされています。
Date |
Date$ |
DateAdd |
DateDiff |
DatePart |
DateSerial |
DateValue |
Day |
Hour |
Minute |
Month |
MonthName |
Now |
Second |
Time |
Time$ |
Timer |
TimeSerial |
TimeValue |
Weekday |
WeekdayName |
Year |
DDE/OLE 関数
Reporting Services では、以下の DDE/OLE 関数はサポートされていません。
DDE |
DDEIntitate |
DDERequest |
DDESend |
LoadPicture |
定義域集計関数
Reporting Services では、以下の定義域集計関数はサポートされていません。
DAvg |
DCount |
DFirst |
DLast |
DLookup |
DMax |
DMin |
DStDev |
DStDevP |
DSum |
DVar |
DVarP |
エラー処理関数
Reporting Services では、以下のエラー処理関数がサポートされています。
Err |
Error |
Error$ |
IsError |
Reporting Services では、以下のエラー処理関数はサポートされていません。
- CVErr
財務関数
Reporting Services では、以下の財務関数がサポートされています。
DDB |
FV |
IPmt |
IRR |
MIRR |
NPer |
NPV |
Pmt |
PPmt |
PV |
Rate |
SLN |
SYD |
インタラクティブ関数
Reporting Services では、以下のインタラクティブ関数がサポートされています。
Command |
Command$ |
CurDir |
CurDir$ |
DeleteSetting |
Dir |
Dir$ |
Environ |
Environ$ |
EOF |
FileAttr |
FileDateTime |
FileLen |
FreeFile |
GetAllSettings |
GetAttr |
GetSetting |
Loc |
LOF |
QBColor |
RGB |
SaveSetting |
Seek |
SetAttr |
Shell |
Spc |
Tab |
Reporting Services では、以下のインタラクティブ関数はサポートされていません。
DoEvents |
In |
Input |
Input$ |
特殊評価関数
Reporting Services では、以下の特殊評価関数がサポートされています。
IsArray |
IsDate |
IsEmpty |
IsError |
IsNull |
IsNumeric |
IsObject |
TypeName |
VarType |
Reporting Services では、以下の特殊評価関数はサポートされていません。
- IsMissing
算術関数
Reporting Services では、以下の算術関数がサポートされています。
Abs |
Atn |
Cos |
Exp |
Fix |
Int |
Log |
Rnd |
Round |
Sgn |
Sin |
Sqr |
Tan |
メッセージ関数
Reporting Services では、以下のメッセージ関数はサポートされていません。
InputBox |
InputBox$ |
MsgBox |
プログラム フロー関数
Reporting Services では、以下のプログラム フロー関数がサポートされています。
Choose |
IIf |
Switch |
SQL 集計関数
Reporting Services では、以下の SQL 集計関数がサポートされています。
Avg |
Count |
Max |
Min |
StDev |
StDevP |
Sum |
Var |
VarP |
文字列関数
Reporting Services では、以下の文字列関数がサポートされています。
Format |
Format$ |
InStr |
InStrRev |
LCase |
LCase$ |
Left |
Left$ |
Len |
LTrim |
LTrim$ |
Mid |
Mid$ |
Replace |
Right |
Right$ |
RTrim |
Space |
Space$ |
StrComp |
StrConv |
String |
String$ |
StrReverse |
Trim |
Trim$ |
UCase |
UCase$ |
定数
Access の式では Visual Basic の特殊な定数 (vbTrue など) をサポートしていないので、変換は必要ありません。ただし、例外が 1 つだけあります。キーワード Null は、System.DbNull.Value に変換されます。
パラメータ
インポート処理中、レポート デザイナによって、フィールド名またはコントロールに対応していない変数がないかどうか、レポート内の各式がスキャンされます。これらの変数は、レポートのパラメータに追加されます。
ストアド プロシージャのデータ型は、常に string としてインポートされます。レポートのインポート後、パラメータを手動で変更して、正しいデータ型が使用されるようにする必要があります。
オブジェクト名
Access ではフィールドにコントロールと同じ名前を付けることができますが、Reporting Services ではできません。Visual Basic 6.0 では変数名にスペースを使用することができますが、Visual Basic .NET ではできません。このようなオブジェクト名はすべて、インポート処理の際、有効な名前に置き換えられ、複数のオブジェクトが同じ名前の場合は一意の名前が割り当てられます。各式はスキャンされ、名前が変更されたオブジェクトに対応する変数の名前は、新しい名前に置き換えられます。
四角形とその内容
Reporting Services のレポート定義では、四角形内に他のレポート アイテムを含めることができます。レポート アイテムよりも大きく、レポート アイテムの領域のうち 90% を超える領域と重なっている四角形は、そのレポート アイテムのコンテナになります。
ビットマップ
レポート内に埋め込まれているビットマップはすべて、インポート時に .bmp 形式に変換されます。これらのビットマップの最初の形式は無視されます。たとえば、レポートに .jpg ファイルおよび .gif ファイルが含まれていた場合、レポートと一緒にインポートされるリソースは .bmp ファイルになります。ビットマップは、レポートの埋め込み画像として保存されます。埋め込み画像の詳細については、「レポートへの画像の追加」を参照してください。
その他の注意点
上記のほか、Access からインポートされるレポートについては以下の事項も適用されます。
- 条件付き書式は、変換されません。
- Access のレポート プロパティの説明フィールドは、変換されません。