Excel VBA ODBC连接导入列格式

我正在寻找一种方法来重新格式化一些使用ODBC连接导入到我的工作表的字段。 这些字段尤其是date字段。 我需要导入这些文本或其他格式,因为数据库中的数据有时会有“1850-01-01”或“0001-01-01”date。 当导入到Excel中时,date显示为####标志。

这是我目前使用的编辑查询:

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列是所讨论的列。

为未来的后代发表我自己的问题的答案:

在我的SELECT语句是EFF_DATE ,我把它改为读取CAST(EFF_DATE as varchar(30)) ,然后维护数据库本身的格式。