我正在学习ADO分组显示的问题,我按帮助写了一段测试代码,但无法通过,运行时总是有错误信息“语法错误或访问冲突”,但我看不出有什么问题,请各位大侠赐教。以下我的写的测试代码。
Option Explicit
Dim vbmsg As Integer
Dim dbConnection As ADODB.Connection
Dim dbRecordset As ADODB.RecordsetPrivate Sub ConnectDatabase()
Set dbConnection = New ADODB.Connection
dbConnection.ConnectionString = MDIForm1.varConnectSQL
dbConnection.Provider = "MSDataShape"
dbConnection.Open
Set dbRecordset = New ADODB.Recordset
dbRecordset.ActiveConnection = dbConnection
End SubPrivate Sub Form_Load()
ConnectDatabase
End SubPrivate Sub Command1_Click()
On Error GoTo ToExit '打开错误陷阱
'------------------------------------------------
If dbRecordset.State = 1 Then
dbRecordset.Close
End If
dbRecordset.Source = "SHAPE {select * from project} " & _
"APPEND ({select * from worktimetable2004 } AS WorkTime " & _
"RELATE 协议编号 to 协议编号) "
dbRecordset.Open
Set MSHFlexGrid1.DataSource = dbRecordset
'------------------------------------------------
Exit Sub
'----------------
ToExit:
vbmsg = MsgBox(Err.Description)
End Sub
Option Explicit
Dim vbmsg As Integer
Dim dbConnection As ADODB.Connection
Dim dbRecordset As ADODB.RecordsetPrivate Sub ConnectDatabase()
Set dbConnection = New ADODB.Connection
dbConnection.ConnectionString = MDIForm1.varConnectSQL
dbConnection.Provider = "MSDataShape"
dbConnection.Open
Set dbRecordset = New ADODB.Recordset
dbRecordset.ActiveConnection = dbConnection
End SubPrivate Sub Form_Load()
ConnectDatabase
End SubPrivate Sub Command1_Click()
On Error GoTo ToExit '打开错误陷阱
'------------------------------------------------
If dbRecordset.State = 1 Then
dbRecordset.Close
End If
dbRecordset.Source = "SHAPE {select * from project} " & _
"APPEND ({select * from worktimetable2004 } AS WorkTime " & _
"RELATE 协议编号 to 协议编号) "
dbRecordset.Open
Set MSHFlexGrid1.DataSource = dbRecordset
'------------------------------------------------
Exit Sub
'----------------
ToExit:
vbmsg = MsgBox(Err.Description)
End Sub
http://community.csdn.net/Expert/topic/3367/3367459.xml?temp=.2501947
原先的OLE DB数据库联接字符串如果为:
ConnString = "Provider=SQLOLEDB;Data Source=myDBServer;Initial Catalog=TestDB"
那么只需要在ConnString前面加上串字符"Provider=MSDataShape;Data "就可以了
DSConnString = "Provider=MSDataShape;Data " & ConnString
使用ADO Connection对象打开数据连接
Conn.Open DSConnString
就可以用Recordset读取层次记录集了。