powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / ADO подключение
11 сообщений из 11, страница 1 из 1
ADO подключение
    #37382836
Specart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Данные из Excel в Access переносятся с помощью JET:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Dim con As New ADODB.Connection
Dim constr as String
dim sqlstr as String

constr = "Provider=Microsoft.JET.OLEDB.4.0;" + _
         "Data Source=" + Path + ";" + _
         "Persist Security Info=False"
con.ConnectionString = constr
con.Open
sqlstr="INSERT INTO [table_name] (поля, поля, поля) SELECT поля, поля, поля FROM [Именованный диапазон] IN 'Путь' [Excel 8.0;HDR=NO или YES] WHERE блаблабла"
con.execute sqlstr
...
вопрос: как предусмотреть ситуацию, когда файлом Excel кто-то пользуется, т.е. может быть открыт только для чтения (макрос выше сваливается)
...
Рейтинг: 0 / 0
ADO подключение
    #37382840
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да вообще-то не должно быть проблем, ты же читаешь, а не пишешь файл эксель....

А так - On Error Goto ...
...
Рейтинг: 0 / 0
ADO подключение
    #37382854
Specart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

обработчик ошибок почему-то не помогает, пробовал уже
...
Рейтинг: 0 / 0
ADO подключение
    #37382859
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скорее все потому что неправильно используется. Пример в студию
...
Рейтинг: 0 / 0
ADO подключение
    #37382896
Specart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

немного подправлю себя: макрос ломается на этапе запроса к именованному диапазону, т.е.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
' соединение con с Access как описывалось выше
dim RS as ADODB.RecordSet
sqlstr="SELECT * FROM [RepDate] IN '" + PathExc + "' [Excel 8.0;HDR=NO]"
on Error GoTo SQLErr
Set RS = con.Execute(sqlstr)
...
GoTo Succeed
SQLErr:
...
Succeed:
...

?err.Description
Объект 'RepDate' не найден ядром базы данных Microsoft Jet.

диапазон с именем RepDate в файле точно присутствует, т.е. проблема именно в доступе для чтения

забыл сказать, что файл Excel почему-то открывается, хотя макросом этого не предусматривается!
...
Рейтинг: 0 / 0
ADO подключение
    #37382917
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не вижу Resume или Exit Sub

А вообще нифига не понял. Иззначально была проблема только в том, что кто-то открыл файл. Теперь проблема в том, что макрос не работает в принципе?
...
Рейтинг: 0 / 0
ADO подключение
    #37382922
ё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ё
Гость
SpecartДанные из Excel в Access переносятся с помощью JET:
так, а где ваш код находится ? в Акцессе ?
если - да, то можно попробывать стандартными средствами Акс-а - Docmd.TransferSpreadsheet

зы
и ещё одна "грустная" новость
8258700
Анатолий ( Киев )На заметку...

Чтение данных средствами JET из открытого Excel файла гарантировано оставляет незавершенный процесс. И MS это подтверждает.
...
Рейтинг: 0 / 0
ADO подключение
    #37383071
Specart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProИзначально была проблема только в том, что кто-то открыл файл. Теперь проблема в том, что макрос не работает в принципе?
макрос (находится в excel-файле) перебирает кучу однотипных файлов, но в единственном открытом другим пользователем файле возникает ошибка, выше я ее выделил желтым и написал description
более того этот файл почему-то открывается (для чтения), хотя не должен, и возникает ошибка (почему?)
мне казалось, что инструкция on error goto должна предотвращать сбой
...
Рейтинг: 0 / 0
ADO подключение
    #37383252
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Specartмне казалось, что инструкция on error goto должна предотвращать сбойя уже сказал - скорее всего из-за неправильного использования On Error, теперь, когда прозвучало слово "цикл" - я в этом уверен.
Я уже сказал:
Shocker.ProНе вижу Resume или Exit Subизучай внимательно правильное использование On Error или опубликуй код (опубликованного огрызка недостаточно).
...
Рейтинг: 0 / 0
ADO подключение
    #37383253
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну или попробуй вникнуть сюда: 11040138
...
Рейтинг: 0 / 0
ADO подключение
    #37383641
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProНу или попробуй вникнуть сюда: 11040138 имхо, не надо ему туда...

Specart,
макрос (находится в excel-файле) перебирает кучу однотипных файлов, но в единственном открытом другим пользователем файле возникает ошибка, выше я ее выделил желтым и написал description
более того этот файл почему-то открывается (для чтения) , хотя не должен, и возникает ошибка (почему?)
мне казалось, что инструкция on error goto должна предотвращать сбой
Не панацея, конечно. Но лучше, чем ничего
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Dim con As New ADODB.Connection
Dim constr as String
dim sqlstr as String

constr = "Provider=Microsoft.JET.OLEDB.4.0;" + _
         "Data Source=" + Path + ";" + _
         "Persist Security Info=False"
con.ConnectionString = constr
con.Open
sqlstr="INSERT INTO [table_name] (поля, поля, поля) SELECT поля, поля, поля FROM [Именованный диапазон] IN 'Путь' [Excel 8.0;HDR=NO или YES] WHERE блаблабла"
' (!) если HDR=NO, то SELECT поля, поля, поля FROM [Именованный диапазон] несомненно вызовет ошибку

con.execute sqlstr

' костыль на случай, если файл открыт др.ползователем
If Not (ActiveWorkbook is ThisWorkbook) Then ActiveWorkbook.Close False

' ...
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / ADO подключение
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]