Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
17.11.2015, 13:47
|
|||
---|---|---|---|
|
|||
adodb.recordset open не возвращает ничего, если.. |
|||
#18+
Всем привет! adodb.recordset open sql запрос с листа excel не возвращает ничего, если после строки с заголовками идет 8 и более пустых строк.. (значений в первом столбце sql запроса) подскажите,плиз, так ли это ? сходу ничего не удалось нагуглить на эту тему.. макрос достался по наследству, используется следующее подключение: Код: vbnet 1. 2. 3. 4. 5. 6. 7.
где HDR1 - название хидера первого столбца (левая верхняя ячейка запроса на лист excel); StrFile - полный путь к файлу. -------------------------------------------------------------------- И один генерал, по TV сказал<br/> Что на Марсе, не будет with.. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.11.2015, 14:34
|
|||
---|---|---|---|
|
|||
adodb.recordset open не возвращает ничего, если.. |
|||
#18+
Шведков Артем, ты скорее всего кавычку пропустил в конце SrcData = "SELECT * FROM [" & sheet_name & "$" & "A22:S99999] WHERE HDR1 <> """ " ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.11.2015, 14:40
|
|||
---|---|---|---|
|
|||
adodb.recordset open не возвращает ничего, если.. |
|||
#18+
гр кШведков Артем, ты скорее всего кавычку пропустил в конце SrcData = "SELECT * FROM [" & sheet_name & "$" & "A22:S99999] WHERE HDR1 <> """ " Тогда уж две, если с пустой строкой сравнить хочет Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.11.2015, 14:41
|
|||
---|---|---|---|
|
|||
adodb.recordset open не возвращает ничего, если.. |
|||
#18+
Шведков Артемесли после строки с заголовками идет 8 и более пустых строк.Определение типа столбца идет по первым восьми строкам (через реестр можно поправить на 16 максимум). Как-то можно обойти этот момент. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.11.2015, 14:44
|
|||
---|---|---|---|
|
|||
adodb.recordset open не возвращает ничего, если.. |
|||
#18+
на этот момент не смотрите, я его вручную сюда повторил, в коде все нормально Код: vbnet 1. 2. 3. 4.
вопрос в том, что если стоит 8 первых пустых строк после заголовка, 9ая строка уже не читается и не добавляется в recordset, хотя там есть данные и в диапазон в запросе они попадают.. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.11.2015, 14:46
|
|||
---|---|---|---|
|
|||
adodb.recordset open не возвращает ничего, если.. |
|||
#18+
Shocker.ProОпределение типа столбца идет по первым восьми строкам (через реестр можно поправить на 16 максимум). Как-то можно обойти этот момент. ага, спасибо, вот это уже интересней.. пока пофиксим этот момент и попробую поискать, где это указывается ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.11.2015, 14:48
|
|||
---|---|---|---|
|
|||
adodb.recordset open не возвращает ничего, если.. |
|||
#18+
Shocker.Pro, ага, 2. Я 1 кавычку добавил, и не заметил, что VBE тоже еще 1 добавил. Итого 5 кавычек. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.11.2015, 14:48
|
|||
---|---|---|---|
|
|||
adodb.recordset open не возвращает ничего, если.. |
|||
#18+
IMEX=1 возвращает все столбцы текстом, не определяя тип Shocker.Pro(через реестр можно поправить на 16 максимумHCLM/Software/Microsoft/Jet/4.0/Engines/Excel/TypeGuessRow ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.11.2015, 15:58
|
|||
---|---|---|---|
|
|||
adodb.recordset open не возвращает ничего, если.. |
|||
#18+
Shocker.ProIMEX=1 возвращает все столбцы текстом, не определяя тип Shocker.Pro(через реестр можно поправить на 16 максимумHCLM/Software/Microsoft/Jet/4.0/Engines/Excel/TypeGuessRow спасибо за инфу, но imex=1 не подходит, т.к. валятся все дальнейшие проверки на IsNumeric, а изменение TypeGuessRow так же не помогло.. пробовал ставить значение в 10ичной и 16ричной системе исчисления, оба раза перезагружался. винда на рабочем ноуте 32битная с 2007 экселем. на домашней 64-битной системе с 2013 экселем еще не проверял.. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.11.2015, 16:10
|
|||
---|---|---|---|
|
|||
adodb.recordset open не возвращает ничего, если.. |
|||
#18+
вполне вероятно, что TypeGuessRow не влияет на определение, так сказать, конца файла. В чем-то оно логично, если ты запрашиваешь файл как базу данных, он должен как-то минимально соответствовать концепции базы данных. Сам в свое время долго пытался прикрутить вытаскивание данных их файлов через ADO, попрыгал по граблям и в итоге сделал-таки через COM. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.01.2016, 16:48
|
|||
---|---|---|---|
|
|||
adodb.recordset open не возвращает ничего, если.. |
|||
#18+
Shocker.Pro, Приветствую! В общем, изменение TypeGuessRow не помогло и снова всплыла эта ошибка из за пустых первых 8 строк при заполнении recordset'а через ADO.. подскажи, плиз, как ты реализовывал схожие алгоритмы через 'COM' ? Или может примеры где можно глянуть ? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.01.2016, 16:57
|
|||
---|---|---|---|
|
|||
adodb.recordset open не возвращает ничего, если.. |
|||
#18+
не то чтобы схожие... просто получал доступ к отдельным ячейкам или диапазонам, закидывал их в базу и там уже обрабатывал примеры будут зависеть от того, из какой среды ты пытаешься это делать? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.01.2016, 17:03
|
|||
---|---|---|---|
|
|||
adodb.recordset open не возвращает ничего, если.. |
|||
#18+
Shocker.Pro, тут все банально просто, есть эксель шаблон с макросами, который кушает присылаемые из филиалов схожие эксельки с данными и работает с ними, а далее уже обработанные эксельки грузятся в оракловую многомерку. Все это на виндовых машинах, 32 и 64 битных, у кого какие) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.01.2016, 17:19
|
|||
---|---|---|---|
|
|||
adodb.recordset open не возвращает ничего, если.. |
|||
#18+
ну тогда грубо говоря Код: vbnet 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.01.2016, 17:26
|
|||
---|---|---|---|
adodb.recordset open не возвращает ничего, если.. |
|||
#18+
Shocker.ProShocker.Pro(через реестр можно поправить на 16 максимумHCLM/Software/Microsoft/Jet/4.0/Engines/Excel/TypeGuessRow Не, не максимум. Если установить нулевое значение, то для определения типов сканируется аж 16к строк... само собой, тормоза прилагаются. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
20.02.2019, 16:07
|
|||
---|---|---|---|
|
|||
adodb.recordset open не возвращает ничего, если.. |
|||
#18+
Shocker.ProIMEX=1 возвращает все столбцы текстом, не определяя тип А что делать, если IMEX=1 помогает частично? В одном столбце все наладилось(а были null), в двух других пишет нули- а там цифири. Код: javascript 1.
Лезу в Excel из jscript. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
25.02.2019, 14:05
|
|||
---|---|---|---|
adodb.recordset open не возвращает ничего, если.. |
|||
#18+
значит в столбцах цифры (числовые значения) идут в перемешку с текстами, похожими на цифры. Соответственно, для ячеек столбца, у которых тип данных не совпадает с определённым по IMEX=1, в рекордсет будет возвращаться значение NULL. Всё логично (с т.з. логики баз данных). Нормализовывать значения столбцов придётся (макросом, через запрос уже не получится). ... |
|||
:
Нравится:
Не нравится:
|
|||
|
26.02.2019, 08:11
|
|||
---|---|---|---|
adodb.recordset open не возвращает ничего, если.. |
|||
#18+
ldfanateзначит в столбцах цифры (числовые значения) идут в перемешку с текстами, похожими на цифры. Соответственно, для ячеек столбца, у которых тип данных не совпадает с определённым по IMEX=1, в рекордсет будет возвращаться значение NULL. Всё логично (с т.з. логики баз данных). Нормализовывать значения столбцов придётся (макросом, через запрос уже не получится). Код: plaintext 1. 2. 3. 4. 5. 6.
Код: plaintext
при IMEX=1 все колонки должны быть преобразованы в текст и проблем с отсутствующими значениями быть не должно. Если этого не происходит, то либо драйвер не понимает это параметр, либо .. Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=61&mobile=1&tid=2172115]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
52ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
others: | 283ms |
total: | 435ms |
0 / 0 |