Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Обращение к листу Excel по номеру с помощью ADODB / 5 сообщений из 5, страница 1 из 1
30.07.2014, 12:40
    #38708994
Елена EV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обращение к листу Excel по номеру с помощью ADODB
Помогите чайнику, пожалуйста.

У меня есть такой запрос, он работает:
"SELECT * FROM [" + ИмяЛиста + "$]"

Но имя листа может быть произвольным, оно неизвестно. Можно ли как-то выбрать не по названию листа, а по номеру? Использование Лист1 не работает, если лист переименован.
...
Рейтинг: 0 / 0
30.07.2014, 12:48
    #38709008
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обращение к листу Excel по номеру с помощью ADODB
Код: vbnet
1.
"SELECT * FROM [" + Worksheets(5).Name + "$]"
...
Рейтинг: 0 / 0
30.07.2014, 12:58
    #38709022
Елена EV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обращение к листу Excel по номеру с помощью ADODB
Shocker.Pro,

не, не подойдет.
Мне это надо сделать для компьютера, на котором MS Office не установлен. И бесплатных офисов вроде опен офиса тоже нет.
Worksheets - это же метод excel?
У меня есть обработка, корректно работающая через ADODB.Connection и ADODB.Recordset. И в ней надо только вот этот момент изменить с имени листа на номер листа.

Я прошу прощения, если глупость написала, т.к. я знаю только 1С, ну и некоторые методы работы с офисом. Это моя первая попытка разобраться с ADODB.
...
Рейтинг: 0 / 0
30.07.2014, 13:03
    #38709029
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обращение к листу Excel по номеру с помощью ADODB
...
Рейтинг: 0 / 0
30.07.2014, 13:42
    #38709062
Елена EV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обращение к листу Excel по номеру с помощью ADODB
Shocker.Pro,

да, спасибо. Это помогло.

Выкладываю работающий текст:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
	Если ЗначениеЗаполнено(ИмяНомерЛиста.Имя) Тогда
		ИмяЛиста = ИмяНомерЛиста.Имя;
	Иначе
		
		ADOXCatalog = Новый COMОбъект("ADOX.Catalog");
		ADOXCatalog.ActiveConnection = ADODBConnection;
		
		ПереченьАдоТаблиц = ADOXCatalog.Tables;
		Номер = 1;
		Для Каждого АдоТаблица Из ПереченьАдоТаблиц Цикл
			ИмяЛиста = АдоТаблица.Name;
			Если Прав(ИмяЛиста, 1) = "$" Тогда //это правильная таблица. а бывает еще  ИмяЛиста$Область_печати
				Если Номер = ИмяНомерЛиста.Номер Тогда
					Прервать;
				КонецЕсли; 
				Номер = Номер+1;
			КонецЕсли; 
		КонецЦикла;
		
	КонецЕсли; 
	
    ТекстЗапроса = "SELECT * FROM [" + ИмяЛиста + "]";
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Обращение к листу Excel по номеру с помощью ADODB / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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