Private Sub Command1_Click()
  Dim Cnn As New ADODB.Connection        'ADO连接
  Dim Rs As New ADODB.Recordset          'ADO记录集
   Dim b_id As String '
   Dim b_sex As String
   Dim b_party As String
   Dim b_homeadd As String
   Dim b_homecode As String
   Dim b_hometel As String
   Dim other As String '备注
   b_id = Trim(xszh.Text)
   b_sex = Trim(xb.Text)
   b_party = Trim(zzmm.Text)
   b_homeadd = Trim(jtzz.Text)
   b_homecode = Trim(jtyb.Text)
   b_hometel = Trim(jtdh.Text)
  other = Trim(bz.Text)
   
   If b_id = "" Then
         MsgBox ("作品名称不能为空!")
         xszh.SetFocus
  
Else
   
   
   Rs.CursorType = adOpenDynamic
   Rs.CursorLocation = adUseClient
   Rs.LockType = adLockOptimistic
   Cnn.CursorLocation = adUseClient
   
   '连接字符串
   Cnn.ConnectionString = "Provider=SQLOLEDB.1;User ID=sa;Pwd=;Data Source=XFTIAN"
   Cnn.Open Cnn.ConnectionString
   Cnn.DefaultDatabase = "deptMIS"    '设置要连接数据库名称
   
  
   
   '查询
    sql = "insert into s_b_baseinfo" & _
         "(s_b_id,s_b_sex," & _
         "s_b_party,s_b_homeadd," & _
         "s_b_homecode,s_b_hometel," & _
         "other)" & _
         "values " & _
         "('" & b_id & _
        "','" & b_sex & _
         "','" & b_party & _
         "','" & b_homeadd & _
         "','" & b_homecode & _
         "','" & b_hometel & _
         ",'" & other & "')"
    ' Cnn.Execute (sql)
   Rs.Open sql, Cnn, adOpenKeyset, adLockOptimistic
   End If
   If Err.Number Then
       MsgBox ("数据插入失败!")
   Else
       MsgBox ("数据插入成功!")
End IfEnd Sub
错误显示: Rs.Open sql, Cnn, adOpenKeyset, adLockOptimistic 之前有未闭合的引号.
这是怎么回事?!

解决方案 »

  1.   

    insert 是不用Rs.Open的!Cnn.Execute sql
      

  2.   

    这个我试过了,其他的程序中我也是这么用的,没问题
    而且Cnn.Execute sql我也试过,结果是一样的,出现一样的错误!
      

  3.   

    把sql dubug.print 出来看看放到access里面可以执行嘛?
      

  4.   

    只要把Rs.Open sql, Cnn, adOpenKeyset, adLockOptimistic 注释就可以了
    当然也不会执行SQL语句了:)
      

  5.   

    gpo2002(我属于纯偶像派一点实力也没有的那一种) 你有QQ吗?我们到那里讨论吧.
    我的QQ是36457808
      

  6.   

    我的意思是去掉所有rs,只用cnncnn 打开
    Cnn.Execute sql
    cnn 关闭看看怎么样
      

  7.   

    Option Explicit
    Dim Cn As New ADODB.Connection
    Dim Cmd As New ADODB.Command
    Dim rst As New ADODB.RecordsetPrivate Sub SavePoint_Click()
     
      With rst
        .ActiveConnection = Cn
        .CursorType = adOpenStatic
        .Source = "select * from stores where stor_id LIKE '10%'"
        .Open
      End With
     
      Cn.Execute "Delete from stores where stor_id LIKE  '10%'"  ' OuterTrans
      Cn.Execute "BEGIN TRANSACTION OuterMost"  Cn.Execute "Insert INTO Stores (stor_id, stor_name) " & _
                 "VALUES(101,'1st Store')"
      Cn.Execute "Insert INTO Stores (stor_id, stor_name) " & _
                 "VALUES(102,'2nd Store')"
      
      ' InnerTrans1 Transaction
      Cn.Execute "SAVE TRANSACTION InnerTrans1"
     
      Cn.Execute "Insert INTO Stores (stor_id, stor_name) " & _
                 "VALUES(103,'3rd Store')"
      Cn.Execute "Insert INTO Stores (stor_id, stor_name) " & _
                 "VALUES(104,'4th Store')"
      
      ' InnerTrans2 Transaction
      Cn.Execute "SAVE TRANSACTION InnerTrans2"
       
      Cn.Execute "Insert INTO Stores (stor_id, stor_name) " & _
                 "VALUES(105,'5th Store')"
      Cn.Execute "Insert INTO Stores (stor_id, stor_name) " & _
                 "VALUES(106,'6th Store')"
       
      ' InnerTrans3 Transaction
      Cn.Execute "SAVE TRANSACTION InnerTrans3"
      
      Cn.Execute "Insert INTO Stores (stor_id, stor_name) " & _
                 "VALUES(107,'7th Store')"
      Cn.Execute "Insert INTO Stores (stor_id, stor_name) " & _
                 "VALUES(108,'8th Store')"
       
      Cn.Execute "ROLLBACK TRANSACTION InnerTrans2"
      Cn.Execute "COMMIT TRANSACTION OuterMost"
      
      rst.Requery
     
      While Not rst.EOF
        Debug.Print rst(0), rst(1)
        rst.MoveNext
      Wend
      
      rst.Close
    End SubPrivate Sub NestedTrans_Click()
     
      With rst
        .ActiveConnection = Cn
        .CursorType = adOpenStatic
        .Source = "select * from stores where stor_id LIKE '10%'"
        .Open
      End With
     
      Cn.Execute "Delete from stores where stor_id LIKE  '10%'"
      
      ' OuterTrans
      Cn.Execute "BEGIN TRANSACTION OuterMost"  Cn.Execute "Insert INTO Stores (stor_id, stor_name) " & _
                 "VALUES(101,'1st Store')"
      Cn.Execute "Insert INTO Stores (stor_id, stor_name) " & _
                 "VALUES(102,'2nd Store')"
      
      ' InnerTrans1 Transaction
       Cn.Execute "BEGIN TRANSACTION InnerTrans1"
     
      Cn.Execute "Insert INTO Stores (stor_id, stor_name) " & _
                 "VALUES(103,'3rd Store')"
      Cn.Execute "Insert INTO Stores (stor_id, stor_name) " & _
                 "VALUES(104,'4th Store')"
      
      ' InnerTrans2 Transaction
      Cn.Execute "BEGIN TRANSACTION InnerTrans2"
      
      Cn.Execute "Insert INTO Stores (stor_id, stor_name) " & _
                 "VALUES(105,'5th Store')"
      Cn.Execute "Insert INTO Stores (stor_id, stor_name) " & _
                 "VALUES(106,'6th Store')"
       
      ' InnerTrans3 Transaction
      Cn.Execute "BEGIN TRANSACTION InnerTrans3"
      
      Cn.Execute "Insert INTO Stores (stor_id, stor_name) " & _
                 "VALUES(107,'7th Store')"
      Cn.Execute "Insert INTO Stores (stor_id, stor_name) " & _
                 "VALUES(108,'8th Store')"
       
      ' Uncomment the following line to roll back the OuterTrans that rolls
      ' all nested transactions. 
      ' Cn.Execute "ROLLBACK TRANSACTION OuterMost"  ' The following commits all nested transactions.
      Cn.Execute "COMMIT TRANSACTION OuterMost"
      
      rst.Requery
     
      While Not rst.EOF
        Debug.Print rst(0), rst(1)
        rst.MoveNext
      Wend
      
      rst.Close
    End SubPrivate Sub Form_Load()
       Cn.Open "Provider=SQLOLEDB;User ID=sa;Data " & _
               "Source=<insert your SQL Server>;database=pubs"
      Cn.CursorLocation = adUseClient
    End Sub