В VBA, как я могу использовать ADODB для запроса одного и того же файла на жестком диске в то же время? - PullRequest
0 голосов
/ 07 октября 2010

У меня есть некоторый код 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 ]

1 голос
/ 08 октября 2010

Может быть проще просто сделать локальную временную копию csv и импортировать из нее.

Если это нецелесообразно из-за размера .csv, вы можете проверить, заблокирован ли файл другим пользователем, и сидеть в цикле, пока он не станет доступным.

0 голосов
/ 01 ноября 2010

Это невозможно сделать с помощью CSV.

...