我在VB模块中设定如下
Public Function Oracle_ConnectString() As String Oracle_ConnectString = "UID=budget20;PWD=ysbz;DRIVER={Microsoft ODBC for Oracle};SERVER=budget20;"End FunctionPublic Function Oracle_ExecuteSQL(ByVal sql As String, MsgString As String) As ADODB.Recordset Dim conn As ADODB.Connection
Dim rest As ADODB.Recordset
On Error GoTo ExecuteSQL_Error
Set conn = New ADODB.Connection
conn.Open Oracle_ConnectString
Set rest = New ADODB.Recordset
rest.Open Trim$(sql), conn, adOpenKeyset, adLockOptimistic
Set Oracle_ExecuteSQL = rest
MsgString = "查询到" & rest.RecordCount & "条记录"
ExecuteSQL_Exit:
Set rest = Nothing
Set conn = Nothing
Exit Function
ExecuteSQL_Error:
MsgString = "查询错误:" & Err.Description
Resume ExecuteSQL_ExitEnd Function
在窗体中设定
Private Sub Form()
Dim TempRecordset As ADODB.RecordsettxtSQL = " select * from enterprise "
Set TempRecordset = Oracle_ExecuteSQL(txtSQL, MsgText)end sub
此时为单表查询,运行正常查询成功并建立数据集 msgtext值为查到数据记录
如果将txtsql更改为多表询
txtsql ="select a.* from enterprise a,users b where a.eid=b.eid"
为多表查询,则msgtext值为-1 何解
Public Function Oracle_ConnectString() As String Oracle_ConnectString = "UID=budget20;PWD=ysbz;DRIVER={Microsoft ODBC for Oracle};SERVER=budget20;"End FunctionPublic Function Oracle_ExecuteSQL(ByVal sql As String, MsgString As String) As ADODB.Recordset Dim conn As ADODB.Connection
Dim rest As ADODB.Recordset
On Error GoTo ExecuteSQL_Error
Set conn = New ADODB.Connection
conn.Open Oracle_ConnectString
Set rest = New ADODB.Recordset
rest.Open Trim$(sql), conn, adOpenKeyset, adLockOptimistic
Set Oracle_ExecuteSQL = rest
MsgString = "查询到" & rest.RecordCount & "条记录"
ExecuteSQL_Exit:
Set rest = Nothing
Set conn = Nothing
Exit Function
ExecuteSQL_Error:
MsgString = "查询错误:" & Err.Description
Resume ExecuteSQL_ExitEnd Function
在窗体中设定
Private Sub Form()
Dim TempRecordset As ADODB.RecordsettxtSQL = " select * from enterprise "
Set TempRecordset = Oracle_ExecuteSQL(txtSQL, MsgText)end sub
此时为单表查询,运行正常查询成功并建立数据集 msgtext值为查到数据记录
如果将txtsql更改为多表询
txtsql ="select a.* from enterprise a,users b where a.eid=b.eid"
为多表查询,则msgtext值为-1 何解
改成txtsql = "select * from enterprise a,users b where a.eid=b.eid " 调用的时候在 a.字段
用SQL试验了一下没有问题啊 ~
将rest.CursorLocation属性设置成 adUseClient
还是要谢谢各位,特别是Tiger_Zhao指点.