2017-01-25 1 views
1

Ich suche nach einer Möglichkeit, einige Felder neu zu formatieren, die mit einer ODBC-Verbindung in mein Blatt importiert werden. Die Felder sind insbesondere die Datumsfelder. Ich muss diese als Text oder ein anderes Format importieren, da die Daten in der Datenbank manchmal Daten von "1850-01-01" oder "0001-01-01" haben. Beim Import in Excel werden die Daten nur als #### Zeichen angezeigt. HierExcel VBA ODBC-Verbindung importierte Spaltenformatierung

ist die bearbeitet Abfrage ich zur Zeit mit:

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 

Die Säule EFF_DATE ist die Säule in Frage.

+0

Sind Sie sicher, dass die Spalten einfach nicht breit genug sind, um das Datum anzuzeigen? Wenn eine Spalte nicht breit genug ist, um ein Datum vollständig anzuzeigen, wird nur '#####' angezeigt. – Jordan

Antwort

1

Posting die Antwort auf meine eigene Frage für zukünftige Nachwelt:

Wo ist meine SELECT Aussage EFF_DATE ist, habe ich es CAST(EFF_DATE as varchar(30)) zu lesen, die dann das Format aus der Datenbank selbst verwaltet.

+0

Das ist eine * etwas * akzeptable Lösung, nur weil * die Daten * Daten enthalten, die außerhalb des gültigen Datumsbereichs liegen (formatieren Sie '0' als ein kurzes Datum in Excel, Sie erhalten' 1/0/1900', also das früheste gültige Datum in Excel ist '1/1/1900'). Das Problem, das dadurch entsteht, ist, dass Excel Daten nicht als solche behandelt. Weitere Informationen finden Sie unter [Arbeiten mit Datumsangaben vor 1900 in Excel] (http://www.exceluser.com/formulas/earlydates.htm). –

+0

In diesem Fall ist die Tatsache, dass sie nicht als Daten in Excel formatiert sind, keine große Sache für mich. Aber ich verstehe, woher du kommst, wenn ich sie später als Daten formatieren muss. – user6949811