Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Запрос внутри Excel / 11 сообщений из 11, страница 1 из 1
12.06.2007, 17:26:10
    #34589921
natalitvinenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос внутри Excel
Win98, Excel97
Почему может не работать таковая незамысловатая процедура
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Sub qqq()
Dim cnn As New ADODB.Connection, rst As New ADODB.Recordset
strNameFile = "C:\Мои документы\Программирование\1\TelDenga"
strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strNameFile & _
"; Extended Properties=""Excel 8.0;HDR=No;IMEX=1"""
cnn.Open strConnect
rst.Open "select f2 from [PeopleTel$A1:E300] where f5='326-50-13'", cnn
Dim a As String
a = rst.Fields("f2")
'ThisWorkbook.Sheets("Лист2").Range("A5").Value = a 
ThisWorkbook.Sheets("Лист2").Cells.Clear
ThisWorkbook.Sheets( 2 ).Range("A5").CopyFromRecordset rst
End Sub
Ругается на последней строке (где CopyFromRecordset)- пишет "Класс не поддерживает программирование объектов", ошибка выполнения 430
Мыслю - а не старая ли у меня версия dll ? Дык вроде 2.1
А какие вообще нужно библиотеки прикручивать?
...
Рейтинг: 0 / 0
12.06.2007, 18:04:48
    #34589987
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос внутри Excel
вот это a = rst.Fields("f2") попробуйте убрать
2.1 должно хватать, хотя сейчас уже 2.8 есть.
...
Рейтинг: 0 / 0
12.06.2007, 18:05:38
    #34589990
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос внутри Excel
natalitvinenkoМыслю - а не старая ли у меня версия dll ? Дык вроде 2.1
А какие вообще нужно библиотеки прикручивать?ADO 2.1? Вообще-то это действительно староватая версия. Уже много лет как 2.8 используется в большинстве систем.
А вот кто виноват Excel97 или MDAC 2.1 что не работает CopyFromRecordset я не уверен...
Но можно начать с выкачивания более свежего MDAC'а...
...
Рейтинг: 0 / 0
13.06.2007, 09:55:36
    #34590762
natalitvinenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос внутри Excel
big-dukeвот это a = rst.Fields("f2") попробуйте убрать
2.1 должно хватать, хотя сейчас уже 2.8 есть.

Оно вообще - то как раз работало... Закомментировала вместе с соответсвующим dim. Не пашет.
Выкачала 2.8. Не помогло.
Предполагаю, что Excel 97 просто не поддерживает метод CopyFromRecordset (а жаль, его весь форум юзает, он такой удобный, судя по опять же по форуму) - такой вывод я сделала отсюда How to transfer data from an ADO Recordset to Excel with automation
...
Рейтинг: 0 / 0
13.06.2007, 10:47:09
    #34590936
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос внутри Excel
а если указать тип открываемого рекордсета и тип открываемого конекта?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Dim cnn As New ADODB.Connection, rst As New ADODB.Recordset
strNameFile = "C:\Мои документы\Программирование\1\TelDenga"
strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strNameFile & _
"; Extended Properties=""Excel 8.0;HDR=No;IMEX=1"""

'устанавливаем тип курсора
cnn.CursorLocation = adUseClient

cnn.Open strConnect

'открываем рекордсет
rst.Open "select f2 from [PeopleTel$A1:E300] where f5='326-50-13'", cnn, adOpenForwardOnly, adLockReadOnly 

ЗЫЖ вполне может хватить и указания типа курсора

I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
13.06.2007, 10:49:03
    #34590944
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос внутри Excel
не посмотрел версию вашего Excell
в таком случае вам надо использовать не ADO, а DAO (по вашей ссылке)

Код: plaintext
CopyFromRecordset in Excel 97 supports only DAO recordsets

I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
13.06.2007, 10:54:38
    #34590964
natalitvinenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос внутри Excel
HandKotа если указать тип открываемого рекордсета и тип открываемого конекта?

Не помогло...
А можно ли то же самое сделать через DAO? Вроде таких примеров на форуме не было.. Есть такая мысль, что через DAO может и получится:"Имейте в виду, что Excel 97 поддерживает работу метода CopyFromRecordset только для простых наборов данных DAO" ( http://www.visual.2000.ru/develop/ms-vb/tips/0106.htm#tip383 )
...
Рейтинг: 0 / 0
13.06.2007, 11:05:30
    #34591019
klen_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос внутри Excel
после того как я установил на свой комп Internet Explorer 6-ая версия,
OLE объекты Excel-я стали доступными
...
Рейтинг: 0 / 0
13.06.2007, 11:19:15
    #34591071
natalitvinenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос внутри Excel
HandKotне посмотрел версию вашего Excell

А можно выциганить пример? Я на форуме не нашла. Я вчера долго ковырялась в том, что спрашивали до меня - и такое не попалось.
...
Рейтинг: 0 / 0
13.06.2007, 11:22:39
    #34591088
natalitvinenko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос внутри Excel
klen_после того как я установил на свой комп Internet Explorer 6-ая версия,

Уже шестой.
...
Рейтинг: 0 / 0
13.06.2007, 12:00:06
    #34591206
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос внутри Excel
natalitvinenko HandKotне посмотрел версию вашего Excell

А можно выциганить пример? Я на форуме не нашла. Я вчера долго ковырялась в том, что спрашивали до меня - и такое не попалось.
msdn
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Dim dbsNorthwind As Database
	Dim rstEmployees As Recordset
	

	Set dbsNorthwind = OpenDatabase("Northwind.mdb")
	Set rstEmployees = dbsNorthwind.OpenRecordset( _
		"SELECT FirstName, LastName FROM Employees " & _
		"ORDER BY LastName", dbOpenSnapshot)
потом copyfromrecordset
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Запрос внутри Excel / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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