#0
by drdroid
Читаю эксель через "ADODB.RecordSet", в одной ячейке есть строка: 760557817864 тип ячейки общий в самом файле, а RecordSet.Fields(ъ).Value возвращает мне: 7,60558E+11 кажется гдето в экселе можно было настроить чтоб правильно отображало и тогда RecordSet.Fields(ъ).Value должно правильно возвращать.... Напомните, кто знает, где это сделать?
#5
by spectre1978
ну это он так фигурально выразился. На самом деле обычное преобразование в число с плавающей точкой.
#6
by spectre1978
хотя, если речь идет об ИНН, банковском счете или чем-то еще подобном, то такой неестественный интеллект и правда никому не нужен
#8
by spectre1978
черт, точно, это я с объектом Range попутал. Тогда, действительно, только явно указывать свойства ячеек (Ctrl+1 в экселе). Указывать их как Текст, или же ставить апостроф (') перед значением...
#9
by spectre1978
у меня подобная ситуация была с экселевским столбцом, в котором хранились ИНН. Вышел из положения указанием апострофа перед значением в таблице.
#11
by spectre1978
тогда можно попробовать повнимательнее прочитать статьи по ADO и создать recordset с коллекцией полей не автоматом при выполнении запроса, а вручную. При этом явно указать, что требуемое поле - строковое. А потом скормить этому рекордсету запрос и открыть его. Честно скажу, что никогда так не делал, но насколько знаю, это возможно. Главное чтобы это не была фича самого OLEDB провайдера, потому что в этом случае все манипуляции могут оказаться бесполезны - вернет то же самое в виде строки и всех делов...
#12
by spectre1978
Еще вариант (в порядке бреда) - кастировать в строку прямо в SQL: Select Str(F1) From Лист1$
#15
by spectre1978
да, косяк :) скорее всего он ходит через движок Jet, а там CAST, насколько я помню, нет. Там есть функция VBA Str .
#16
by drdroid
такой: Command.CommandText = "SELECT * FROM ["+СписокЛистов[ЧитаемСЛистаНомер].Значение+"]";
#17
by МихаилМ
ole db jet поддерживает , как минимум работу в запросах с встроенными ф-циями , те можно использовать
#18
by spectre1978
если в запросе делать конвертацию, то * не пойдет, нужно указывать конкретные столбцы
#19
by drdroid
, попробую затестить. в зависимости от того что установлено выбирается либо: Provider=Microsoft.ACE.OLEDB.12.0; либо: Provider=Microsoft.Jet.OLEDB.4.0;
#20
by spectre1978
Помимо CStr можно еще функцию Format попробовать, там можно форматную строку указать, но тогда на входе обязательно должно быть число.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- DDE, Excel, как передать значение ячейки Excel в 1С
- Поиск нужного значение в листе Excel при загрузке документов из Excel в 1С
- Получить значение объединенных ячеек из Excel
- Пустое значение при сохранении таблицы в Excel
- Значение должно быть NULL. Сохранено значение NULL.
- как в Excel задать ссылку на ячейку через значение другой ячейки?
- ComОбъект неправильно считает значение атрибута
- Выгрузка в Excel по шаблону Active Document различия Excel 2010 Excel 2016
- Выгрузка в Excel по шаблону Active Document различия Excel 2010 Excel 2016 ч2
В этой группе 1С
- Как из файловой УТ11 выкинуть пользователей не имея доступа к серверу, где база?
- 1с скд постобработка
- Полууниверсальная выгрузка документов в XML,DBF, TXT форматы.
- Поле ввода и Enter вконце
- ЭтаФорма.ТолькоПросмотр = Истина. Как дать доступ на просмотр элемента в ТЧ?
- Не открывается Эксель файл, сохраненный из 1с
- Кнопка сброса отбора скд
- Автоматическая инкассация не делает выемку денег УТ 11.1
- Подвисания 1С
- Как запросом получить значение в регистре сведений?
- УФ. Программно разместить на форме кнопку с общей командой.
- Различия структур массив и таблицу значений
- Условие связи в СКД
- sbersign "не могу расшифровать файл! ошибка загрузки ключа"
- ОбъектXDTO
- Список Задач УТ 10.3
- Преобразовать ГУИД 1С к SQLному
- PowerShell ошибка при создании COM-объекта 1С
- Получить последнюю цену из регистра сведений
- УФ добавить строку и активизировать для ввода ячейку