powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / set recordset.activeconnection = currentproject.activeconnection
10 сообщений из 10, страница 1 из 1
set recordset.activeconnection = currentproject.activeconnection
    #32880172
Фотография funddd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Private Sub КнопкаУх_Click()
Dim cnn As ADODB.Connection
Dim rs As ADODB.Recordset
Set cnn = New ADODB.Connection
Set rs = New ADODB.Recordset
cnn.Open "Driver={Microsoft Excel Driver (*.xls)};DBQ=Мойэксельныйфайл.xls"
rs.Open "select * from [Лист]", cnn
Set rs.ActiveConnection = CurrentProject.Connection
...
Set rs = Nothing

И вот на этом ругаисся, что, дескать, объект закрыт.

Вообще-то задача стоит так:
эксельный файл открыть, прочитать, сохранить в базу.

не знаю, почему, но TransferSpreadSheet отказывается видеть файл по тому пути, по которому он находится. Пошел вкружным путем, до конца не уверен, что он правильный, одно радует — коннекшн открываетс, рекордсет заполняется.
А вот что дальше, черт его знает.
...
Рейтинг: 0 / 0
set recordset.activeconnection = currentproject.activeconnection
    #32880179
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это mdb или adp?
...
Рейтинг: 0 / 0
set recordset.activeconnection = currentproject.activeconnection
    #32880185
Фотография funddd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mdb
...
Рейтинг: 0 / 0
set recordset.activeconnection = currentproject.activeconnection
    #32880186
Фотография funddd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Access XP
SP3
...
Рейтинг: 0 / 0
set recordset.activeconnection = currentproject.activeconnection
    #32880202
Alexey Sh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то здесь лишнее
Код: plaintext
1.
2.
rs.Open "select * from [Лист]", cnn
Set rs.ActiveConnection = CurrentProject.Connection

На каком коннекшне рекордсет открываетя? Накойхер(с) вторая строка?
...
Рейтинг: 0 / 0
set recordset.activeconnection = currentproject.activeconnection
    #32880212
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 funddd
Может сделать проще?
Код: plaintext
1.
Insert Into TemporaryTable
From [Лист] In "Мойэксельныйфайл.xls" "Excel"
...
Рейтинг: 0 / 0
set recordset.activeconnection = currentproject.activeconnection
    #32880224
ктоnothing?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
funddd
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Private Sub КнопкаУх_Click()
Dim cnn As ADODB.Connection
Dim rs As ADODB.Recordset
Set cnn = New ADODB.Connection
Set rs = New ADODB.Recordset
cnn.Open "Driver={Microsoft Excel Driver (*.xls)};DBQ=Мойэксельныйфайл.xls"
rs.Open "select * from [Лист]", cnn
Set rs.ActiveConnection = CurrentProject.Connection
...
Set rs = Nothing

И вот на этом ругаисся, что, дескать, объект закрыт.

Вообще-то задача стоит так:
эксельный файл открыть, прочитать, сохранить в базу.

не знаю, почему, но TransferSpreadSheet отказывается видеть файл по тому пути, по которому он находится. Пошел вкружным путем, до конца не уверен, что он правильный, одно радует — коннекшн открываетс, рекордсет заполняется.
А вот что дальше, черт его знает.

Сам не пробовал. Но вдруг?

попробуй
после
Set cnn = New ADODB.Connection
сказать
1) cnn.cursorLocation= adUseClient

после
rs.Open "select * from [Лист]", cnn
сказать
set rs.ActiveConnection=Nothing

а потом
сказать
Set rs.ActiveConnection = CurrentProject.Connection

при этом у тебя должна быть табла [Лист]
а потом нужно что-то типа UpdateBatch сказать

все это может не сработать, т.к. статусы у читанных записей локальных не изменились.
Так что (может оказаться) либо сначала модифицировать в цикле, а потом апдейтбатч., либо попытаться задействовать стрим - типа отперсистить первоначальный рекордсет в стрим, а в новый , открытый на
CurrentProject.Connection добавить из этого стрима.
...
Рейтинг: 0 / 0
set recordset.activeconnection = currentproject.activeconnection
    #32880230
ктоnothing?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЛП рулит, как всегда
:)
...
Рейтинг: 0 / 0
set recordset.activeconnection = currentproject.activeconnection
    #32880236
Фотография funddd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Alexey Sh:
Да хрен его, вопщем-то знает. Почитал форум, решил сделать "отсоединенный рекордсет", который типа присоединить к другому коннекшну.

2 ЛП:
Вот будешь смеятся, но именно так он у меня не находит файлю Файл тот создается какой-то дурацкой софтиной, и даже при открытии в Excel, сильно ругается на ошибку доступа. Формат видимо, ваще какой-то левенький. Ну, это я так думаю...
...
Рейтинг: 0 / 0
set recordset.activeconnection = currentproject.activeconnection
    #32880335
Фотография funddd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
п...ц
мистика

весь день пытался сделать кружным путем, потому что transferspreadsheet не работало, хоть убейся...
теперь посмотрел на рваные куски кода, раскомментировал его и... оп!, заработало.

хм...
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / set recordset.activeconnection = currentproject.activeconnection
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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