crystal report自带vb实例的问题?
下面是crystal report9.0中自带的vb实例ADO connection methods
其中还有两个设计器"crystalReport1"和"dataEnvironment1"
但是运行到cmdADO_Click()时会出错
"实时错误'-2147189571(80047cbd)'未启用创建功能"
同样运行到cmdOLEDB_Click()也出错
"实时错误'-2147189571(80047cbd)'未启用创建功能"
*************************************************************
' Purpose: Demonstrate new methods of adding ADO connections to reports
' (New to Crystal Reports 8.0)
'
' There are two new methods that provide a convenient
' way to add ADO data sources to a report:
' 1.) AddADOCommand takes as parameters an active ADO connection
' and an ADO command object. In this example, a new connection
' is created to a database, and the resulting recordset is assigned
' at runtime to the report
' 2.) AddOLEDBSource takes as parameters the name of an active
' ADO connection and the name of a table that can be accessed
' through that connection. In this example, the connection set
' up through the VB Data Environment is used as a data source.
'
' Both methods can be used with either the VB Data Environment
' or another data source created at runtime.
' Notice in the Crystal Report design environment that there is
' no data source attached to the report at design time.
'
Option Explicit
Dim m_Report As New CrystalReport1
' The ADO connection to the local database.
Dim cnn1 As ADODB.Connection
Dim datcmd1 As ADODB.Command
' *************************************************************
' Demonstrate the use of AddADOCommand by opening an ADO data command,
' adding the data source to the report, and then adding a field
' to the report that uses that data source.
'
Private Sub cmdADO_Click()
Dim fld As FieldObject
Dim strCnn As String
' Open the data connection
Set cnn1 = New ADODB.Connection
strCnn = "Provider=MSDASQL;Persist Security Info=False;Data Source=Xtreme Sample Database 9;Mode=Read"
cnn1.Open strCnn
' Create a new instance of an ADO command object
Set datcmd1 = New ADODB.Command
Set datcmd1.ActiveConnection = cnn1
datcmd1.CommandText = "Customer"
datcmd1.CommandType = adCmdTable
' Add the datasource to the report
m_Report.Database.AddADOCommand cnn1, datcmd1
' Add a new field object to the report and set the field object to use
' the new data source.
Set fld = m_Report.Section3.AddFieldObject("{ado.Customer Name}", 0, 0)
LoadReport
End Sub
' *************************************************************
' Demonstrate the use of AddOLEDBSource by opening an ADO data source,
' adding the data source to the report, and then adding a field
' to the report that uses that data source. In this example, the
' OLEDB source in the VB Data Environment is used
'
Private Sub cmdOLEDB_Click()
Dim fld As FieldObject
' Add the datasource to the report
m_Report.Database.AddOLEDBSource DataEnvironment1.Connection1, "Customer"
' Add a new field object to the report and set the field object to use
' the new data source.
Set fld = m_Report.Section3.AddFieldObject("{Customer.Customer Name}", 0, 0)
LoadReport
End Sub
' *************************************************************
' Load the Report in the viewer
'
Private Sub LoadReport()
Screen.MousePointer = vbHourglass
CRViewer1.ReportSource = m_Report
CRViewer1.ViewReport
Screen.MousePointer = vbDefault
cmdOLEDB.Enabled = False
cmdADO.Enabled = False
End Sub
' *************************************************************
Private Sub cmdAbout_Click()
frmAbout.Show vbModal
End Sub
' *************************************************************
Private Sub cmdExit_Click()
Unload Me
End Sub