Tag Archives: Access

Kann mann mit Männergrippe schon Pflegestufe 3 beantragen?

Erstaunlich. Ich programmiere eine Access-Datenbank, die Daten nach Excel exportiert und aufbereitet.

Die Excel-Datei liegt im XLS-Format vor und wird am Ende als XLSX gespeichert. Ich muss die Liste nach vier Kriterien sortieren. Deshlab verwende ich den „neuen“ Sortierbefehl, der seit Excel 2007 vorhanden ist:

i = xlBlatt.Range("I1").CurrentRegion.Rows.Count
xlBlatt.Sort.SortFields.Clear
xlBlatt.Sort.SortFields.Add2 Key:=xlBlatt.Range("I2:I" & i), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
xlBlatt.Sort.SortFields.Add2 Key:=xlBlatt.Range("J2:J" & i), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
xlBlatt.Sort.SortFields.Add2 Key:=xlBlatt.Range("M2:M" & i), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
xlBlatt.Sort.SortFields.Add2 Key:=xlBlatt.Range("K2:K" & i), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With xlBlatt.Sort
        .SetRange xlBlatt.Range("I1").CurrentRegion
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
End With
    ' -- sortiere, damit man zählen kann

Klappt. Klappt bei meinem Excel in Microsoft 365. Allerdings beim Kunden, der Office 2016 einsetzt – leider nicht:

Schade! Also verwende ich den „alten“ Sortierbefehl. Da er jedoch nur drei Sortierkriterien zulässt muss ich zwei Mal sortieren:

xlBlatt.Range("A1").CurrentRegion.Sort Key1:=xlBlatt.Range("J1"), Order1:=xlAscending, Key2:=xlBlatt.Range("M1"), Order2:=xlAscending, Key3:=xlBlatt.Range("K1"), Order3:=xlAscending, Header:=xlYes

xlBlatt.Range("A1").CurrentRegion.Sort Key1:=xlBlatt.Range("I1"), Order1:=xlAscending, Header:=xlYes

Geht doch!

Ich höre, dass der Wein atmen muss. Ich will ihn doch trinken und nicht wiederbeleben.

In Excel kann man keine Datentypen definieren. Okay – man kann Zellen formatieren. Man kann über eine Datenüberprüfung festlegen, dass nur Datumsangaben oder Zahlen in eine Spalte eingetragen werden soll.

Was geschieht aber in folgendem Fall: in einer Personalliste stehen Mitarbeiternamen mit Abteilungsnummern. Die meisten Abteilungsnummern sind numerisch; jedoch nicht alle. Werden diese Daten nach Access importiert, überprüft Access die ersten (16?) Datensätze. Wird beispielsweise in Zeile 8 ein Text gefunden, wird der Spalte (dem Feld) der Datentyp Text zugewiesen.

Befindet sich jedoch der erste Text in Zeile 50, wird von einem Zahlentyp ausgegangen und der nun „falsche“ Wert wird in eine Importfehlertabelle geschrieben.

Auch ein Anfügen an eine vorhandenen Tabelle, in der der Datentyp definiert ist, bringt keinen Erfolg, da zuerst die Access-Prüfung stattfindet und anschließend angefügt wird. Man könnte die Importschritte speichern oder per Programmierung die Excelmappe öffnen und in der entsprechenden Spalte die Formatierung auf Text ändern. Doof!

Danke an Stefan, den Excel-Killer, für diesen Hinweis.

Access

Unser System liefert Exceltabellen, die wir in Access importieren möchten. Kann man in Access einstellen, dass die Dateien nicht eine, sondern mehrere Überschriftszeilen haben?

import20150120

Schwieriger Export von Excel nach Access

Die Antwort – Nein – die Daten müssen zuvor in Excel aufbereitet werden. Wenn Sie regelmäßig Daten importieren, dann sollten Sie sich ein Programm schreiben (lassen), das Ihnen diese Datenaufbereitung vornimmt.