Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / set recordset.activeconnection = currentproject.activeconnection / 10 сообщений из 10, страница 1 из 1
24.01.2005, 14:36:31
    #32880172
funddd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
set recordset.activeconnection = currentproject.activeconnection
Код: 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
24.01.2005, 14:38:42
    #32880179
ЛП
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
set recordset.activeconnection = currentproject.activeconnection
Это mdb или adp?
...
Рейтинг: 0 / 0
24.01.2005, 14:39:41
    #32880185
funddd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
set recordset.activeconnection = currentproject.activeconnection
mdb
...
Рейтинг: 0 / 0
24.01.2005, 14:40:02
    #32880186
funddd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
set recordset.activeconnection = currentproject.activeconnection
Access XP
SP3
...
Рейтинг: 0 / 0
24.01.2005, 14:48:27
    #32880202
Alexey Sh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
set recordset.activeconnection = currentproject.activeconnection
Что-то здесь лишнее
Код: plaintext
1.
2.
rs.Open "select * from [Лист]", cnn
Set rs.ActiveConnection = CurrentProject.Connection

На каком коннекшне рекордсет открываетя? Накойхер(с) вторая строка?
...
Рейтинг: 0 / 0
24.01.2005, 14:49:59
    #32880212
ЛП
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
set recordset.activeconnection = currentproject.activeconnection
2 funddd
Может сделать проще?
Код: plaintext
1.
Insert Into TemporaryTable
From [Лист] In "Мойэксельныйфайл.xls" "Excel"
...
Рейтинг: 0 / 0
24.01.2005, 14:53:40
    #32880224
ктоnothing?
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
set recordset.activeconnection = currentproject.activeconnection
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
24.01.2005, 14:55:23
    #32880230
ктоnothing?
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
set recordset.activeconnection = currentproject.activeconnection
ЛП рулит, как всегда
:)
...
Рейтинг: 0 / 0
24.01.2005, 14:57:07
    #32880236
funddd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
set recordset.activeconnection = currentproject.activeconnection
2 Alexey Sh:
Да хрен его, вопщем-то знает. Почитал форум, решил сделать "отсоединенный рекордсет", который типа присоединить к другому коннекшну.

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

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

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


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