Public CNADO As New ADODB.Connection
Public rs As New ADODB.Recordset
Public rs1 As New ADODB.Recordset
Dim sql As String
Dim connect As String
Function data_connection() As Boolean
On Error GoTo dataconnectionerr
Set CNADO = New ADODB.Connection
CNADO.Provider = "MSDAORA"
CNADO.ConnectionTimeout = 10
CNADO.CursorLocation = adUseClient
CNADO.Open "DATA SOURCE=diy;", "system", "1"
date_connection = True
Exit Function
dataconnectionerr:
   MsgBox Err.Description
   Data_Connect = False
End FunctionPrivate Sub Command5_Click()
On Error GoTo error1:
Set rs = New Recordset
sql = "update em_m_tree set isdeleted = 0 where g3e_fid in (" + Text1.Text + ")"
      rs.Open sql, CNADO, adOpenStatic
      Set DataGrid1.DataSource = rs
On Error GoTo error1:
Set rs = New Recordset
sql = "update em_e_suite_common set isdeleted = 0 where g3e_fid in (" + Text1.Text + ")"
      rs.Open sql, CNADO, adOpenStatic
      Set DataGrid1.DataSource = rs
      Exit Sub
error1:
      MsgBox "注意逗号摆放位置" & vbCrLf & "逗号要小写=。=!"
End SubPrivate Sub Form_Load()
data_connection
End Sub主要是Command5控件那一块,SQL语句我得分开写,也不清楚这样写有没有问题,但是执行成功,但如果语句多的话这样就会很麻烦,望高手能给出简单方法。

解决方案 »

  1.   

    不明白你连着两次设置 DataGrid1.DataSource = rs 有何意义?
    如果只是为了执行SQL更新操作的话,可以直接使用 DB.EXECUTE(SQL 语句)
      

  2.   

    '对数据库的增删改用cnado.execute操作,查询用rs处理
    Private Sub Command5_Click()
    On Error GoTo error1:
    sql = "update em_m_tree set isdeleted = 0 where g3e_fid in (" + Text1.Text + ")"
    CNADO.execute sql
    sql = "update em_e_suite_common set isdeleted = 0 where g3e_fid in (" + Text1.Text + ")"
    CNADO.execute sql
    Exit Sub
    error1:
      MsgBox "注意逗号摆放位置" & vbCrLf & "逗号要小写=。=!"
    End Sub
      

  3.   

    使用rs,open sql 的形式来执行更新或者插入查询不是个好习惯!建议按下面方式执行更新查询Private Sub Command5_Click()
    On Error GoTo error1:sql = "update em_m_tree set isdeleted = 0 where g3e_fid in (" + Text1.Text + ")"
    cando.execute sql'执行第一个更新查询'  Set DataGrid1.DataSource = rs------更新查询是不会返回记录集的,赋值给DataGrid1没有意义
    sql = "update em_e_suite_common set isdeleted = 0 where g3e_fid in (" + Text1.Text + ")"
    cando.execute sql  '执行第二个更新查询 Exit Sub
    error1:
      MsgBox "注意逗号摆放位置" & vbCrLf & "逗号要小写=。=!"
    End Sub