怎样才能同时用ADO和Excel打开同一个.xls文件?我做的一开始是可以了的,(就是每点击一次Command2,就能看见Excel文件里的数据即使更新了)。后来不知道怎么的,就不行了。如果先用ADO打开,在用excel打开,则提示“不能打开temp1.xls”;如果先用Excel打开,再用ADO打开,则提示“它已经被别的用户以独占的方式打开,或没有查看数据的权限”  
Dim oConn As ADODB.ConnectionPrivate Sub Command1_Click()
    'Open the ADO connection to the Excel workbook    Set oConn = New ADODB.Connection
    oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
               "Data Source=" & App.Path & "\temp1.xls;" & _
               "Extended Properties=""Excel 8.0;HDR=NO;"""
        oConn.Execute "insert into [Sheet1$] (F1) values(11)"
End SubPrivate Sub Command2_Click()
    oConn.Execute "insert into [Sheet2$] (F1) values(22)"
End SubPrivate Sub Command3_Click()
    oConn.Close
End Sub

解决方案 »

  1.   

    oConn.CursorLocation = adUseClient
      

  2.   

    另外楼主为什么要用ADO打开又用EXCEL打开,什么意思?如果楼主非要这么做的话,请先关闭一个再用另一种打开。
      

  3.   

    后台用ADO写数据,同时前台用Excel打开该.xls文件进行动态显示,所以要同时打开。好像oConn.CursorLocation = adUseClient
    的方法不行。
      

  4.   

    既然你已经打开了EXL那干吗还要打开一次呢,这不是重复工作了吗?
    你打直接从打开的EXL中读入数据到后台数据库中不就得了。
      

  5.   

    是从串口读数据要写到.xls文件当中,并且随时要用Excel打开.xls文件查看写入的数据。并不存在其他的后台数据库
      

  6.   

    呵呵,楼主的,你的程序我给测试过,的确没有问题,只是没有控制好而
    在oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _这一行的前面加一句
    If oConn.State = adStateOpen Then oConn.Close
    oconn只需打开一次,就可以一直连接着直到你把它关了才需再打开,建议你把连
    接代码作为一个独立的模块这样在程序退出时再把它关闭就不容易出错了。