powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Работа с Excel через Jet.OLEDB. Как из RecordSet получить адрес ячейки.
15 сообщений из 15, страница 1 из 1
Работа с Excel через Jet.OLEDB. Как из RecordSet получить адрес ячейки.
    #34924427
Krann
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть Книга Excel. На листе есть именованная область.
Стоит задача - проанализировать колонку в именованной области и получить адреса ячеек на данном листе, в которых ошибки.
RecordSet с ошибочными данными я получил вот так:
Код: plaintext
1.
2.
3.
4.
5.
Set Cnn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
    
Cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & txtExcelName & ";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"""
rs.Open "SELECT Колонка1 FROM [" & ИменованнаяОбласть & "] Where Not isNull(Колонка1);", Cnn, adOpenStatic, adLockOptimistic

Подскажите пжлст. Как?
...
Рейтинг: 0 / 0
Работа с Excel через Jet.OLEDB. Как из RecordSet получить адрес ячейки.
    #34924472
Belkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я точно не знаю, но может быть в selecte можно и вытащить номера строк??? Попробуй.
А так дальше можешь работать с записями перебирая их и при помощи Find искать их адреса.
Хотя почему бы тебе сразу так не сделать вместо select ...

-----------
Андрей.
...
Рейтинг: 0 / 0
Работа с Excel через Jet.OLEDB. Как из RecordSet получить адрес ячейки.
    #34924493
Krann
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BelkinЯ точно не знаю, но может быть в selecte можно и вытащить номера строк??? Попробуй.
А так дальше можешь работать с записями перебирая их и при помощи Find искать их адреса.
Хотя почему бы тебе сразу так не сделать вместо select ...

-----------
Андрей.

Файл оч.тяжелый, открывать его и бегать по ячейкам в разы медленней, чем через Так.
Насчет номеров строк - у меня такая идея и была, только не могу найти как.
...
Рейтинг: 0 / 0
Работа с Excel через Jet.OLEDB. Как из RecordSet получить адрес ячейки.
    #34924961
Belkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Krann BelkinЯ точно не знаю, но может быть в selecte можно и вытащить номера строк??? Попробуй.
А так дальше можешь работать с записями перебирая их и при помощи Find искать их адреса.
Хотя почему бы тебе сразу так не сделать вместо select ...

-----------
Андрей.

Файл оч.тяжелый, открывать его и бегать по ячейкам в разы медленней, чем через Так.
Насчет номеров строк - у меня такая идея и была, только не могу найти как.
Ну что-то типао того:
rs.Open "SELECT Колонка1, Колонка1.Row FROM ....
...
Рейтинг: 0 / 0
Работа с Excel через Jet.OLEDB. Как из RecordSet получить адрес ячейки.
    #34925002
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если именованный диапазон может начинаться в любом месте листа, то способа определить ячейку нет. Ни ADODB ни Jet ничего не знают про экселевские объекты.
...
Рейтинг: 0 / 0
Работа с Excel через Jet.OLEDB. Как из RecordSet получить адрес ячейки.
    #34925033
Belkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KrannЕсть Книга Excel. На листе есть именованная область.
Стоит задача - проанализировать колонку в именованной области и получить адреса ячеек на данном листе, в которых ошибки.

Может тебе нужно Update сделать и не париться?
...
Рейтинг: 0 / 0
Работа с Excel через Jet.OLEDB. Как из RecordSet получить адрес ячейки.
    #34925100
Krann
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AntonariyЕсли именованный диапазон может начинаться в любом месте листа, то способа определить ячейку нет. Ни ADODB ни Jet ничего не знают про экселевские объекты.
Да мне хотя бы определить, где я внутри именованной области нахожусь, а там я уже разрулюсь
...
Рейтинг: 0 / 0
Работа с Excel через Jet.OLEDB. Как из RecordSet получить адрес ячейки.
    #34925185
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rs.AbsolutePosition - текущая строка, rs.Fields(i) - (i + 1)'тая колонка.
...
Рейтинг: 0 / 0
Работа с Excel через Jet.OLEDB. Как из RecordSet получить адрес ячейки.
    #34925370
Krann
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Antonariyrs.AbsolutePosition - текущая строка, rs.Fields(i) - (i + 1)'тая колонка.
Неа. Это позиция не внутри именованной области, а внутри рекордсета.
Но это можно использовать если делать Select * From Область. Без Where и Order by.
...
Рейтинг: 0 / 0
Работа с Excel через Jet.OLEDB. Как из RecordSet получить адрес ячейки.
    #34925765
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Совершенно верно.
Ни ADODB ни Jet ничего не знают про экселевские объекты.Если эта мысль для вас непонятна, попробую иносказательно.

Представьте себе такую ситуацию: вам дали тяжелым по голове, погрузили в мешок и отправили самолетом в неизвестное далеко. Через какое-то время вы очнулись. Внимание, вопрос! Какие географические координаты имеет самолет?

Чтобы точно определить позицию нужно узнать иденификатор записи, открыть эксель, найти идентификатор на листе, получить его ячейку.
...
Рейтинг: 0 / 0
Работа с Excel через Jet.OLEDB. Как из RecordSet получить адрес ячейки.
    #34925833
Krann
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AntonariyСовершенно верно.
Ни ADODB ни Jet ничего не знают про экселевские объекты.Если эта мысль для вас непонятна, попробую иносказательно.

Представьте себе такую ситуацию: вам дали тяжелым по голове, погрузили в мешок и отправили самолетом в неизвестное далеко. Через какое-то время вы очнулись. Внимание, вопрос! Какие географические координаты имеет самолет?

Чтобы точно определить позицию нужно узнать иденификатор записи, открыть эксель, найти идентификатор на листе, получить его ячейку.

На счет самолета и до этого понимал. Просто была надежда, что в случае, когда в Exstended Properties указываем Excel, то появляется доп.возможность посмотреть и Row Листа.

Тогда может можно как-то сделать свой уникальный ID в самом селекте. Типа RecNo в Foxe.
Пытался найти по форуму, только там куча примеров, когда внутри таблицы уже есть уникальный код.
...
Рейтинг: 0 / 0
Работа с Excel через Jet.OLEDB. Как из RecordSet получить адрес ячейки.
    #34925850
Krann
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Поясню:
Если у нас есть Селект:
Select * From Tbl, то как можно написать в нем, чтобы сам селект добавил колонку с ID.
А уж если сделать это, то подзапросом можно быстро соорудить искомое.
...
Рейтинг: 0 / 0
Работа с Excel через Jet.OLEDB. Как из RecordSet получить адрес ячейки.
    #34926474
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Колонка с id должна присутствовать в tbl.
...
Рейтинг: 0 / 0
Работа с Excel через Jet.OLEDB. Как из RecordSet получить адрес ячейки.
    #34926804
Krann
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AntonariyКолонка с id должна присутствовать в tbl.
По другому никак? :(
...
Рейтинг: 0 / 0
Работа с Excel через Jet.OLEDB. Как из RecordSet получить адрес ячейки.
    #34927039
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Увы.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Работа с Excel через Jet.OLEDB. Как из RecordSet получить адрес ячейки.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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