在VBA中,如何使用ADODB同时查询硬盘驱动器上的同一文件?

时间:2010-10-07 00:48:59

标签: vba csv oledb adodb

我有一些看起来像这样的VBA代码,目的是查询csv文件并带回一些记录。但是,我希望能够从两台计算机同时查询同一个文件(位于网络驱动器上)。我尝试使用readOnly模式,但它仍然无法正常工作。请帮帮忙?

   Dim cnt_string  As String
   cnt_string = "Provider = Microsoft.Jet.OLEDB.4.0;" & _
        "Data Source=" & "V:\Data\;" & _
        "Extended Properties = Text;"

    strSQL = "SELECT * FROM " & strData & ".csv " & strData & " WHERE (" & strData & ".APPLICATION_ASSIGNED_TO='" & strBrokerNumber & "')"
    Sheets("Broker").Activate

   Dim rs As ADODB.Recordset

   Set rs = New ADODB.Recordset
   Call rs.Open(strSQL, cnt_string, CursorTypeEnum.adOpenForwardOnly, LockTypeEnum.adLockReadOnly, CommandTypeEnum.adCmdText)
   Dim sh As Worksheet
   Set sh = Sheets("Broker")

   Call sh.Range("A10").CopyFromRecordset(rs)
   rs.Close
   Set rs = Nothing

2 个答案:

答案 0 :(得分:1)

可能更容易制作csv的本地临时副本并从中导入。

如果由于.csv的大小而不实用,您可以检查文件是否被其他用户锁定并坐在循环中直到它可用。

答案 1 :(得分:0)

使用CSV无法完成。