powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / Открыть таблицу Excel как базу данных, чтобы все столбцы стали строковыми
2 сообщений из 2, страница 1 из 1
Открыть таблицу Excel как базу данных, чтобы все столбцы стали строковыми
    #36709278
Zaharius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Открываю экселевский файл, как базу данных, с помощью такого кода


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
        Set cn = New ADODB.Connection 
        Set rs = New ADODB.Recordset 
        With cn 
            .Provider = "Microsoft.Jet.OLEDB.4.0" 
            .ConnectionString = "Data Source=D:/BD.xls; Extended Properties='Excel 8.0; HDR=NO; IMEX=2';" 
            .open 
        End With 
    
cnSQL= "SELECT * FROM [Лист1$]" 

rs.open cnSQL, cn, adOpenStatic, adLockOptimistic

Всё работает, НО:
Дело в том, что при открытии эксцелевской таблицы Microsoft.Jet сам определяет, какие именно данные находятся в таблице. Я уже примерно допёр, при помощи какого алгоритма он это делает: просматривает несколько первых ячеек в каждом столбце и, если, скажем, находит в них большинство числовых символов, определяет этот столбец, как содержащий числовые значения; тоже делает, если находит даты или строкые значения. Но в тех таблицах, с которыми работаю я, всё не так просто. Например, в столбце могут быть такие значения:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
 1  
 1  
 456  
 73  
 73  
 456  
ликвид 
простой 
 73 

Программа определит, что этот столбец - числовой, хотя это не так.

Короче, что мне сделать, чтобы при открытии таблицы Excel, все столбцы в ней опредлялись как заведомо содержащие строковые данные?
...
Рейтинг: 0 / 0
Открыть таблицу Excel как базу данных, чтобы все столбцы стали строковыми
    #36710226
Zaharius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем большое спасибо за помощь! )
Всё действительно просто - нашлось на буржуйском форуме.
Просто необходимо изменить одно свойство в ConnectionString и выставить IMEX=1, а не 2, как было до этого.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / Открыть таблицу Excel как базу данных, чтобы все столбцы стали строковыми
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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