2017-01-25 2 views
1

Я ищу способ переформатировать некоторые поля, которые импортируются на мой лист, используя соединение ODBC. В частности, полями являются поля даты. Мне нужно импортировать их как текст или какой-либо другой формат, потому что данные в базе данных иногда имеют даты «1850-01-01» или «0001-01-01». При импорте в excel даты отображаются только как ####.Excel VBA ODBC соединение импортированное форматирование столбцов

Вот отредактирован запрос настоящее время я использую:

Public Sub REFRESH_DATA() 

Dim cnDB As New ADODB.Connection 'Declare the connection object. 
Dim rsRecords As New ADODB.Recordset 'Declare a Recordset object. 

'Open the connection 

cnDB.Open "DSN=DB;Database=DB;Servername=server.net;UID=username;Password=password;Port=0000;ReadOnly=0;SQLBitOneZero=0;LegacySQLTables=0;NumericAsChar=0;ShowSystemTables=0;LoginTimeout=0;QueryTimeout=0;DateFormat=1;SecurityLevel=onlySecured;CaCertFile=" 

rsRecords.Open "SELECT REGION_CD, CUST_NO, EFF_DATE FROM DATABASE.TABLE", cnDB 

'Print the records in the correct table 
.Range("A2").CopyFromRecordset rsRecords 

'Close everything 
rsRecords.Close 
Set rsRecords = Nothing 
cnDB.Close 
Set cnDB = Nothing 

End Sub 

EFF_DATE Столбец является столбцом под вопросом.

+0

Вы уверены, что столбцы просто недостаточно широки, чтобы показать дату? Если столбец недостаточно широк, чтобы отображать дату полностью, он будет показывать только «#####» – Jordan

ответ

1

Проводка ответ на мой собственный вопрос для будущего потомства:

Где моя SELECT заявление EFF_DATE, я изменил его читать CAST(EFF_DATE as varchar(30)) который затем поддерживает формат из самой базы данных.

+0

Это * несколько приемлемое решение, только потому, что * данные * содержат даты, которые находятся за пределами допустимого диапазона дат (формат '0' в качестве короткой даты в Excel, вы получите' 1/0/1900', поэтому самая ранняя допустимая дата в Excel равна «1/1/1900'). Проблема, которую он создает, заключается в том, что Excel не будет обрабатывать даты как таковые. См. [Как работать с датами до 1900 года в Excel] (http://www.exceluser.com/formulas/earlydates.htm) для получения дополнительной информации. –

+0

В этом случае факт, что они не отформатированы как даты в Excel, для меня не имеет большого значения. Но я понимаю, откуда вы, если по дороге мне нужно отформатировать их как даты. – user6949811

Смежные вопросы