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