#excel #connection #odbc
#excel #подключение #odbc
Вопрос:
ПРИВЕТ; Я не могу подключить файл CSV к электронной таблице, когда файл открыт. В настоящее время у меня есть файл журнала csv, который постоянно обновляется. Я смог подключить его к электронной таблице Excel путем обычного импорта из внешнего источника с обновлением каждый час. Однако это большой файл, поэтому мне нужно было создавать отчеты с использованием EXCEL SQL. Это не позволит мне подключиться к файлу, пока он открыт. В нем говорится, что MS Jet database engine не может открыть файл «unknown». Он уже открыт исключительно другим пользователем, или мне нужно разрешение на просмотр его данных. Если проблема с предоставлением разрешения — это он, где я могу предоставить себе разрешение. В стандартном случае у меня нет проблем с чтением файла, пока он открыт, но в противном случае я получаю это сообщение и не могу обработать3. Буду признателен за любую помощь. Если я закрою программу обновления, я смогу запускать запросы, но не в том случае, если запущено обновление. Использование MSO 2007 W7 x64
Ответ №1:
Это не позволит мне подключиться к файлу, пока он открыт.
Это верно, этого не произойдет — нет способа изменить это.
Вы должны найти другой способ решить вашу проблему.
-
Какого размера файл? Возможно, вам удастся скопировать временное имя файла и вместо этого подключить к нему Excel.
-
Похоже, вы обращаетесь к файлу журнала. LogParser может читать CSV. В любом случае LogParser обладает отличным синтаксисом, подобным SQL, и может читать CSV-файлы намного быстрее и надежнее, чем ODBC. Он также программируется из Excel VBA (или скрипта). Возможно, вы можете использовать LogParser для извлечения интересующих значений, а затем загрузить их в свою таблицу Excel вместо этого.
Я подозреваю, что вашим лучшим решением будет использовать объект LogParser MSUtil.LogQuery
из Excel VBA для извлечения интересующих значений в вашу электронную таблицу. Поскольку я не знаю, что вы на самом деле делаете, это всего лишь предположение!
Я не могу рекомендовать LogParser достаточно высоко — это замечательный инструмент, который может читать практически любой стандартный тип файла журнала, CSV, TSV, W3C, а также обычные текстовые файлы и журналы событий Windows NT:
Комментарии:
1. Спасибо за ваш ответ. Смогу ли я прочитать этот файл через MSUTIL. Выполнить LoqQuery, пока он открыт, и вернуть результирующий набор в мою электронную таблицу Excel?
2. Вероятно: если вы можете открыть его в блокноте, тогда да. Это зависит от «режима общего доступа», с помощью которого он был открыт. Если файл был открыт без
SHARE_DENY_READ
флага (что, вероятно, и было), все будет в порядке. С другой стороны, если он был открытSHARE_DENY_READ
, то ни один стандартный инструмент не сможет его открыть, поскольку именно это означает флаг.