Supported Microsoft Access Report Features (SSRS)
When you import a report into Report Designer, the import process converts the Microsoft Access report into a Reporting Services Report Definition Language (RDL) file. Reporting Services supports several features of Access; however, because of differences between Access and Reporting Services, some items are modified slightly or are not supported. This topic describes how Access report features are converted to RDL.
Importing Access Reports
Some queries contain code that is specific to Access. Access code is not imported with the report. Also, if a query contains embedded strings, the report may not import correctly. To correct this, replace the strings with a character code. For example, replace the comma (,) character with CHAR(34).
The import process does not properly pass the semicolon (;) or XML markup characters (<, >, etc.) in connection string information. If a connection string contains a semicolon or XML markup character, you will have to manually set the password in the new report after the report is imported.
The import process does not import the connection or general timeout settings in the connection string. You may have to adjust these settings after the report is imported.
If you import a report that has a query that contains query parameters, the query will not be converted when the report is imported. To import the query with the report, temporarily replace the query parameters in the Access report with hard-coded values, and then replace them with query parameters after the report is imported.
Page Layout
Page layout in Access is different than in Reporting Services. Access arranges items on the page using "bands," that is, sections arranged vertically on the page. These sections may include the report header, report footer, page header, page footer, groups, and detail. Reporting Services provides a more flexible layout. Data regions provide grouping and detail, and you can place multiple data regions anywhere in the body of the report, even side-by-side. Reporting Services also includes a "banded" page header and footer, similar to the page header and footer in Access.
When a report is imported from Access into Report Designer, the page header and footer from the Access report are converted into a Reporting Services report page header and footer. Groups and detail are converted into a list data region. The report header and footer are placed into the body of the report, rather than in a separate band. This may result in item placement that is slightly different than what is in the Access report.
Note
In some Access reports, report items that appear to be adjacent to each other may actually overlap. When the report is imported using Report Designer, this overlap is not corrected and may lead to unexpected results when the report is run.
Data Sources
Reporting Services supports OLE DB data sources, such as SQL Server. If you are importing reports from an Access project (.adp) file, the connection string for the data source is taken from the connection string in the .adp file. If you are importing reports from an Access database (.mdb or .accdb) file, the connection string may point to the Access database and you may have to correct it after the reports are imported. If the data source for the Access report is a query, the query information is stored without modification in the RDL. If the data source for the Access report is a table, the conversion process creates a query based on the table name and the fields in the table.
Reports with Custom Modules
If there is custom Microsoft Visual Basic code contained within modules, it is not converted. If Report Designer encounters code during the import process, a warning is generated and displayed in the Task List window.
Report Controls
Reporting Services supports the following Access controls and includes them in converted report definitions.
Image |
Label |
Line |
Rectangle |
SubForm |
SubReport Note While a SubReport control is converted within the main report, the subreport itself is converted separately. |
TextBox |
Reporting Services does not support the following controls:
BoundObjectFrame |
CheckBox |
ComboBox |
CommandButton |
CustomControl |
ListBox |
ObjectFrame |
OptionButton |
TabControl |
ToggleButton |
If Report Designer encounters any of these controls during the import process, a warning is generated and displayed in the Task List window.
Other controls, like ActiveX and Office Web Components, are not imported. For example, if an Access report contains an OWC Chart control, it will not be converted when the report is imported.
Report Properties
Reporting Services supports the following properties, which are available through the Access user interface. Properties available only in code are not supported and are not listed here.
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 does not support the following properties, which are available through the Access user interface.
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 |
Grouping
Access defines a group level using a combination of three properties: the group expression, the GroupOn property, and the GroupInterval property. A group that does not have a group header or footer is merged with the group contained within it. If the group does not contain another group, sorting is applied to the detail section and the group is dropped.
Expressions
Access uses expressions to specify values that appear in text boxes. Access uses Visual Basic as its expression language in addition to some aggregate functions. Report Designer converts these Access expressions to report expressions.
Functions
A Reporting Services report definition uses Visual Basic .NET as its native expression language, while Access 2002 uses Visual Basic. The following lists describe the functions that are supported by Reporting Services.
Array Functions
Reporting Services supports the following array functions:
LBound
UBound
Conversion Functions
Reporting Services supports the following conversion functions.
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 does not support the following conversion functions:
GUIDFromString
StringFromGUID
Database Functions
Reporting Services supports the following database functions.
CreateReport |
GetObject |
HyperlinkPart |
Partition |
Reporting Services does not support the following database functions.
CodeDb |
CreateControl |
CreateForm |
CreateGroupLevel |
CreateObject |
CreateReportControl |
CurrentDb |
CurrentUser |
DeleteControl |
DeleteReportControl |
Eval |
IMEStatus |
SysCmd |
Date/Time Functions
Reporting Services supports the following date/time functions.
Date |
Date$ |
DateAdd |
DateDiff |
DatePart |
DateSerial |
DateValue |
Day |
Hour |
Minute |
Month |
MonthName |
Now |
Second |
Time |
Time$ |
Timer |
TimeSerial |
TimeValue |
Weekday |
WeekdayName |
Year |
DDE/OLE Functions
Reporting Services does not support the following DDE/OLE functions.
DDE |
DDEIntitate |
DDERequest |
DDESend |
LoadPicture |
Domain Aggregate Functions
Reporting Services does not support the following domain aggregate functions.
DAvg |
DCount |
DFirst |
DLast |
DLookup |
DMax |
DMin |
DStDev |
DStDevP |
DSum |
DVar |
DVarP |
Error Handling Functions
Reporting Services supports the following error handling functions.
Err |
Error |
Error$ |
IsError |
Reporting Services does not support the following error handling function:
- CVErr
Financial Functions
Reporting Services supports the following financial functions.
DDB |
FV |
IPmt |
IRR |
MIRR |
NPer |
NPV |
Pmt |
PPmt |
PV |
Rate |
SLN |
SYD |
Interaction Functions
Reporting Services supports the following interaction functions.
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 does not support the following interaction functions.
DoEvents |
In |
Input |
Input$ |
Inspection Functions
Reporting Services supports the following inspection functions.
IsArray |
IsDate |
IsEmpty |
IsError |
IsNull |
IsNumeric |
IsObject |
TypeName |
VarType |
Reporting Services does not support the following inspection function:
- IsMissing
Math Functions
Reporting Services supports the following math functions.
Abs |
Atn |
Cos |
Exp |
Fix |
Int |
Log |
Rnd |
Round |
Sgn |
Sin |
Sqr |
Tan |
Message Functions
Reporting Services does not support the following message functions.
InputBox |
InputBox$ |
MsgBox |
Program Flow Functions
Reporting Services supports the following program flow functions.
Choose |
IIf |
Switch |
SQL Aggregate Functions
Reporting Services supports the following SQL aggregate functions.
Avg |
Count |
Max |
Min |
StDev |
StDevP |
Sum |
Var |
VarP |
Text Functions
Reporting Services supports the following text functions.
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$ |
Constants
Access does not support special Visual Basic constants (for example, vbTrue) in expressions, so no conversion is necessary. However, there is one exception: the keyword Null is converted to System.DbNull.Value.
Parameters
During the import process, Report Designer scans each expression within a report for variables that do not correspond to field names or controls. These variables are added to report parameters.
The data type for stored procedure parameters is always imported as string. After the report is imported, you must manually change the parameter to use the correct data type.
Object Names
Access allows fields to have the same name as controls; Reporting Services does not. Visual Basic 6.0 allows spaces in variable names; Visual Basic .NET does not. The import process replaces the names of all such objects with valid names and assigns unique names if more than one object has the same name. Each expression is scanned and the names of variables that correspond to renamed objects are replaced with the new names.
Rectangles and Containment
In a Reporting Services report definition, rectangles can contain other report items. Any rectangle larger than the report item and which overlaps more than 90 percent of its area becomes a container for the report item.
Bitmaps
All bitmaps that are embedded within a report are converted to .bmp format when the report is imported, regardless of their initial format. For example, if your report includes .jpg and .gif files, the resulting resources imported with the report are .bmp files. The bitmaps are stored as embedded images in the report. For information about Embedded Images, see Images (Report Builder and SSRS).
Other Considerations
In addition to the previous items, the following information applies to reports imported from Access:
Conditional formatting is not converted.
The description field in report properties in Access is not converted.