支援的 Access 報表功能 (Reporting Services)
當您將報表匯入至報表設計師時,匯入程序會將 Microsoft Access 報表轉換成 Reporting Services 報表定義語言 (Report Definition Language,RDL) 檔案。Reporting Services 支援數個 Access 功能,不過,由於 Access 和 Reporting Services 的差異,部分項目會有些微修改,或不受支援。此主題描述 Access 報表功能如何轉換成 RDL。
匯入 Access 報表
部分查詢包含 Access 特有的程式碼。Access 程式碼不會隨報表一起匯入。同時,如果查詢中包含內嵌字串,就可能無法正確匯入報表。若要修正,請以字元碼取代字串。例如,請以 CHAR(34) 取代逗號 (,)。
匯入程序不會正確傳遞連接字串資訊中的分號 (;) 或 XML 標記字元 (<、> 等等)。如果連接字串中包含分號或 XML 標記字元,您必須在報表匯入之後,在新的報表中手動設定密碼。
匯入程序不會匯入連接字串中的連接或一般逾時設定。您可能需要在報表匯入之後,再調整這些設定。
如果您匯入的報表有包含查詢參數的查詢,當報表匯入時,將不會轉換此查詢。若要隨著報表匯入查詢,請暫時將 Access 報表的查詢參數取代成硬式編碼值,然後在報表匯入後,再將硬式編碼值取代成查詢參數。
資料來源
Reporting Services 支援 OLE DB 資料來源,例如 SQL Server。如果從 Access 專案 (.adp) 檔案匯入報表,資料來源的連接字串會從 .adp 檔案的連接字串取得。如果從 Access 資料庫 (.mdb 或 .accdb) 檔案匯入報表,連接字串可能會指向 Access 資料庫,因此您可能必須在報表匯入後更正它。如果 Access 報表的資料來源是查詢,查詢資訊會不經修改地直接儲存到 RDL。如果 Access 報表的資料來源是資料表,轉換程序會根據該資料表名稱和資料表中的欄位建立查詢。
包含自訂模組的報表
如果模組內包含自訂 MicrosoftVisual Basic 程式碼,它不會被轉換。如果報表設計師在匯入程序中遇到程式碼,會產生警告訊息,並顯示在 [工作清單] 視窗中。
報表控制項
Reporting Services 支援下列 Access 控制項,且會將它們包含於轉換的報表定義中。
影像 |
標籤 |
線條 |
矩形 |
SubForm |
SubReport 注意 當 SubReport 控制項在主報表內轉換時,子報表本身會個別轉換。 |
TextBox |
Reporting Services 不支援下列控制項:
BoundObjectFrame |
CheckBox |
ComboBox |
CommandButton |
CustomControl |
ListBox |
ObjectFrame |
OptionButton |
TabControl |
ToggleButton |
如果報表設計師在匯入程序中遇到這些控制項,就會產生警告訊息,並顯示在 [工作清單] 視窗中。
其他控制項 (例如 ActiveX 和 Office Web 元件) 不會匯入。例如,如果 Access 報表包含 OWC 圖表控制項,匯入報表時,將不會轉換此控制項。
報表屬性
Reporting Services 支援下列屬性,這些屬性可以透過 Access 的使用者介面使用。僅供程式碼使用的屬性並不受支援,因此將不列於此處。
BackColor |
BackStyle |
BorderColor |
BorderStyle |
BorderWidth |
BottomMargin |
CanGrow (textbox) |
CanShrink (textbox) |
Caption |
FontBold |
FontItalic |
FontName |
FontSize |
FontUnderline |
FontWeight |
ForceNewPage |
ForeColor |
Height |
HideDuplicates |
Hyperlink |
IsHyperlink |
IsVisible |
KeepTogether (group) |
Left |
LeftMargin |
LineSlant |
LineSpacing |
LinkChildFields |
LinkMasterFields |
NewRowOrCol |
PageFooter |
PageHeader |
Pages |
Picture |
PictureTiling (report) |
ReadingOrder |
RepeatSection |
RightMargin |
RunningSum |
SizeMode |
TextAlign |
Top |
TopMargin |
Width |
Reporting Services 不支援下列屬性,這些屬性可以透過 Access 的使用者介面使用。
CanGrow (section) |
CanShrink (section) |
DecimalPlaces |
FastLaserPrinting |
Filter |
FilterOn |
Format |
FormatConditions |
GrpKeepTogether |
KeepTogether (section) |
NumeralShapes |
Orientation |
PaintPalette |
PaletteSource |
PictureAlignment |
PicturePages |
PictureSizeMode |
PictureTiling (image) |
ScrollBars |
SpecialEffect |
Vertical |
群組
Access 會使用下列三種屬性的組合來定義群組層次:群組運算式、GroupOn 屬性和 GroupInterval 屬性。沒有群組首或群組尾的群組,會與包含在其中的群組合併。如果群組沒有包含其他群組,便會對詳細資料區段套用排序,並卸除群組。
運算式
Access 會使用運算式,來指定顯示在文字方塊中的值。Access 會使用 Visual Basic,加上一些彙總函數,做為運算式語言。報表設計師會將這些 Access 運算式轉換成報表運算式。
函數
Reporting Services 報表定義使用 Visual Basic .NET 做為其原生的運算式語言,而 Access 2002 則使用 Visual Basic。下列清單描述 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),所以不需要轉換。然而,有一個例外:Null 關鍵字會轉換成 System.DbNull.Value。
參數
在匯入程序中,報表設計師會掃描報表中的每一個運算式,找出沒有對應至欄位名稱或控制項的變數。這些變數會加入報表參數中。
預存程序參數的資料類型會永遠以字串匯入。報表匯入之後,您必須手動變更參數,以使用正確的資料類型。
物件名稱
Access 允許欄位名稱和控制項名稱相同;Reporting Services 則不允許這種情形。Visual Basic 6.0 允許變數名稱有空格;Visual Basic .NET 則不允許。匯入程序會將所有這樣的物件名稱,取代為有效的名稱;如果有超過一項物件擁有相同的名稱,匯入程序就會指定唯一的名稱。匯入程序會掃描每一個運算式,並且會將與重新命名物件對應的變數名稱取代為新的名稱。
矩形和內含項目
在 Reporting Services 報表定義中,矩形可以包含其他報表項目。任何大於報表項目或重疊區域超過百分之 90 的矩形,都會變成報表項目的容器。
點陣圖
匯入報表時,不論點陣圖的初始格式為何,所有內嵌於報表的點陣圖都會轉換成 .bmp 格式。例如,如果您的報表包含 .jpg 和 .gif 檔案,隨報表匯入的結果資源都會成為 .bmp 檔案。點陣圖會以內嵌影像儲存在報表中。如需有關內嵌影像的資訊,請參閱<在報表中加入影像>。
其他考量
除了以上項目之外,下列資訊也適用於從 Access 匯入的報表:
格式化的條件不會轉換。
Access 中的報表屬性的描述欄位不會轉換。