Hallo,
ich habe ein großes Problem.
Ich importiere mit Access Daten aus einer Textdatei in eine Tabelle. Die Daten sind in der Textdatei in einer festgelegten Struktur und werden mittels einer Importspezifikation importiert.
Die Datenfelder in der Tabelle sind auch dementsprechend definiert.
Diese Tabelle wird dann nach Excel exportiert, dort optisch etwas verschönert und weiterverarbeitet.
Dies funktioniert auch fast alles wunderbar, allerdings ist nun ein Problem aufgetreten.
In der Tabelle sind Zahlenfelder enthalten. Manche mit, manche ohne Nachkommastellen. Beim Export der Tabelle nach Excel wird in Excel zwar mittels Rechtsklick/Felder formatieren die richtige Formatierung angezeigt, allerdings scheint diese nicht
aktiv zu sein. Ich kann mit den Feldern nicht weiterrechnen. Dies ist erst möglich, wenn ich einmal ein Doppelklick in die betroffene Zelle gemacht habe. Dann ist die Zelle richtig formatiert.
Mit den Funktionen =ISTZAHL und =ISTTEXT lässt sich dieses ja auch prüfen.
Wie ist es nun möglich die Tabelle direkt so zu exportieren, dass die Zellen auch wirklich richtig formatiert sind ?
Es handelt sich teilweise um große Dateien mit mehreren tausend Datensätze. Damit fällt eine händische Anpassung weg.
[CODE]
DoCmd.RunSavedImportExport "77sovstor"
Set Db = Nothing
Dim rs As DAO.Recordset, fld As DAO.Field
Dim strSQL As String
Set rs = CurrentDb.OpenRecordset("Select * From sovency77 Where False")
For Each fld In rs.Fields
If fld.Type = dbText Then
strSQL = strSQL & ", Trim(sovency77." & fld.Name & ") As " & fld.Name
Else
strSQL = strSQL & ", " & fld.Name
End If
Next
rs.Close
strSQL = "Select " & Mid(strSQL, 3) & " From sovency77"
CurrentDb.CreateQueryDef "77soven", strSQL
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "77soven", "E:\77\77sovstor.xls"
DoCmd.DeleteObject acQuery, "77soven"
Set xlAnw = CreateObject("excel.application")
xlAnw.Visible = True
xlAnw.Workbooks.Open FileName:="E:\77\77sovstor.XLS"
xlAnw.Cells.Select
xlAnw.Range("F:H;P:X;AG:AN;BE:BG;BP:BW;CN:CP;CY:DF;DW:DY;EH:EO;FF:FH;FQ:FX;GO:GQ").Select
xlAnw.Selection.NumberFormat = "0"
xlAnw.Cells.Select
xlAnw.Range("Y:AF;AO:BC;BH:BO;BX:CL;CQ:CX;DG:DU;DZ:EG;EP:FD;FI:FP;FY:GM").Select
xlAnw.Selection.NumberFormat = "0.00"
xlAnw.Range("A:C;E:HZ").Select
With Selection
.HorizontalAlignment = xlRight
End With
xlAnw.Cells.Select
xlAnw.Selection.Columns.AutoFit
xlAnw.Rows("1:1").Select
xlAnw.Selection.Interior.ColorIndex = xlNone
xlAnw.Selection.Borders(xlDiagonalDown).LineStyle = xlNone
xlAnw.Selection.Borders(xlDiagonalUp).LineStyle = xlNone
xlAnw.Selection.Borders(xlEdgeLeft).LineStyle = xlNone
xlAnw.Selection.Borders(xlEdgeTop).LineStyle = xlNone
xlAnw.Selection.Borders(xlEdgeBottom).LineStyle = xlNone
xlAnw.Selection.Borders(xlEdgeRight).LineStyle = xlNone
xlAnw.Selection.Borders(xlInsideVertical).LineStyle = xlNone
xlAnw.Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
[/CODE]
Ich hoffe hier kann mir jemand weiterhelfen, da die 299 Euro für eine direkte Anfrage bei Microsoft leider nicht in Frage kommen.
gruß
Patrick