2013-06-11 3 views
1

Я использую tyring для экспорта данных из документа Word с формами. Я могу экспортировать данные в файл excel с расширением .xlsx, однако при попытке экспортировать данные в файл excel с поддержкой макросов с помощью extnesion .xslm появляется сообщение об ошибке (несоответствие типов данных в выражении критериев).ADODB не будет подключаться к моему файлу excel с макросами

Кто-нибудь знает, почему я получаю это сообщение об ошибке? Почему он экспортирует в .xlsx, но не в .xlsm?

Вот мой код:

Set cnn = New ADODB.Connection 
    With cnn 
    .Provider = "Microsoft.ACE.OLEDB.12.0" 
    .ConnectionString = "Data Source=C:\Users\Desktop\OG Database\OG Database.xlsm;" & _ 
     "Extended Properties=Excel 12.0 Macro;" 
    .Open 
    .Execute strSQL 
    End With 
+0

У меня нет ответа для вас, но вы можете попробовать посмотреть здесь http://social.msdn.microsoft.com/Forums/en-US/sqlintegrationservices/thread/de8e7f53-1ad0-4e4d-9fd5-89b8c12543d7/Вот какой ответ. –

+0

Здесь хорошо работает с 32-разрядным 32-битным, офисным 2019, ADO 6.1 и простой командой INSERT INTO SQL. Получаете ли вы тот же результат с недавно созданным .xlsm, столбцами и листами, которые вам нужны, и макросами? NB, из вашего описания соединение работает нормально, это ошибка EXECUTE. –

ответ

0

У меня была аналогичная проблема пару месяцев назад и был в состоянии воспроизвести проблему путем определения столбца как «дата» форматирование в Excel, а затем пытается вставить текст.

Excel иногда блокируется первым типом данных, который помещается в него. Затем Excel определит весь столбец как этот тип. При попытке манипулировать этими данными через ADO это вызывает эту ошибку.

Чтобы убедиться, что Excel не запутался, попробуйте вставить фальшивую строку данных, которая вряд ли будет иметь пустые строки.

"INSERT INTO [Sheet1$](Colors, SelectedDate, Balance) VALUES('red', #6/25/1950#, 24.76)" 

Конечно, не забудьте удалить его впоследствии.