共用方式為


支援的 Access 報表功能 (SSRS)

當您將報表匯入至報表設計師時,匯入程序會將 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 報表的資料來源是資料表,轉換程序會根據該資料表名稱和資料表中的欄位建立查詢。

包含自訂模組的報表

如果模組內包含自訂 Microsoft Visual 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$

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$

檢查函數

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 檔案。點陣圖會以內嵌影像儲存在報表中。如需有關內嵌影像的資訊,請參閱<影像 (報表產生器 3.0 和 SSRS)>。

其他考量

除了以上項目之外,下列資訊也適用於從 Access 匯入的報表:

  • 格式化的條件不會轉換。

  • Access 中的報表屬性的描述欄位不會轉換。