Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Formatproblem beim Einlesen einer Excel Daten

Begonnen von stemo, März 28, 2023, 16:14:18

⏪ vorheriges - nächstes ⏩

stemo

Guten Abend,

ich kämpfe mich hier gerade mit einem Problem ab, welches ich nicht gelöst bekomme.

Ich habe eine Exceldatei mit Access verknüpft. Diese erscheint dann unter "Tabellen". Nur leider ist der Felddatentyp sämtlicher Feldnamen dieser Exceldatei in Access immer "Kurzer Text". Umstellen kann ich das in Access nicht, da ja die Exeldatei die eigentliche Tabelle ist. In der Exceldatei habe ich die entsprechenden Spalten als "Zahl" deklariert. Aber auch das nützt nichts. Ich brauche aber den Felddatentyp "Zahl", sonst klappt die gesamte sortiererei nicht.
Fakt ist, ich muß mit der Exceldatei Arbeiten, da diese täglich bearbeitet und erweitert wird und Access dann nur ein Werkzeug zur weiteren Auswertung ist.

Könnt ihr einem Dummy hier unter die Arme greifen? Wie bekomme ich "Kurzer Text" in eine "Zahl"

ebs17

Machst Du noch mehr als Sortieren?

Simpel wäre es, wenn Du eine Abfrage auf die verknüpfte Exceltabelle erzeugst und diese dann nachfolgend verwendest:
SELECT
   CLng(Text1) AS Feld1,
   CDbl(Text2) AS Feld2
FROM
   VerlinkteTabelle

Es sollte in diesen Spalten aber durchgehend als Zahlen auswertbare Inhalte stehen, keine Buchstaben oder Sonderzeichen, keine leeren Felder. Anderenfalls muss man Extrarunden drehen.
Mit freundlichem Glück Auf!

Eberhard

stemo

Hallo Eberhard,
vielen Dank für die schnelle Antwort.
Ja, ich will mehr als sortieren. Eigentlich alles was man mit Access so machen kann, allerdings ohne eingaben. Die werden ja über Excel gemacht.
Sorry, aber ich verstehe Deinen Code nicht so recht. Von Excel bekomme ich eine ganze Spalte mit Zahlen, die in Access aber als Format "Kurzer Text" eingelesen werden. Alles was man also so mit Zahlen machen kann geht jetzt nicht mehr. Kann ich die ganze Spalte (und es sind mehrere Spalten in der Exceltabelle) zu Zahlen machen? Sie liegen in Excel ja auch als Zahlen vor.

MzKlMu

Hallo,
Du musst mit einer Abfrage nach obigem Muster jede Spalte in eine Zahl (geeigneter Datentyp) umwandeln und dann diese Abfrage statt der Tabelle verwenden.
Gruß Klaus

stemo


andyfau

Hallo,
normalerweise funktioniert die automatische Feldtyperkennung wenn eine Exceltabelle verknüpft wird.

Eine Ursache für das Problem könnte sein, dass die erste Zeile der Exceltabelle bei der Verknüpfung nicht als Überschriftenzeile deklariert wird.

Zweitens kann es sein, dass die einzelnen Spalten nicht durchgängig vernünftige, rein numerische Werte enthalten. Vielleicht hängen an der Exceltabelle einige "leere" Zeilen, die nicht richtig als Zahlenzellen deklariert sind.

Beste Grüße
Andreas
Beste Grüße
Andreas

ebs17

Zitatnormalerweise funktioniert die automatische Feldtyperkennung wenn eine Exceltabelle verknüpft wird
Das würde ich dick unterstreichen wollen. Wenn die Verlinkung ohne Fehler funktioniert, ist man ja schon auf einem guten Weg.
Wie genau verknüpfst Du?
Neben der angesprochenen Beachtung, ob man Spaltennamen hat, kann es auch eine Rolle spielen, dass die Tabelle deutlich größer ist als man sieht, weil also in Excel beim Aktualisieren nur Inhalte gelöscht wurden, nicht aber die ganzen Zeilen. Somit könnte der UsedRange deutlich größer sein als angezeigte Daten vermuten lassen.

Lege z.B. testweise folgende Abfrage neu an:
SELECT T.* FROM [excel 12.0 xml;hdr=yes;imex=1;DATABASE=D:\eine\Exeldatei.xlsx].[Tabelle1$] AS TDen Pfad zur Excelmappe und den Tabellenblattnamen änderst Du auf Deine Bedingungen ($-Zeichen beibehalten).
Mit freundlichem Glück Auf!

Eberhard