Neuigkeiten:

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

Mobiles Hauptmenü

Neueste Beiträge

#21
Smalltalk / Re: Probleme mit dem Forum
Letzter Beitrag von Bitsqueezer - März 02, 2026, 12:28:27
Hallo Ulrich,

ja, den ganzen Vormittag heute. Bereits beim Anzeigen der Seite.
DDOS-Hackerangriff?.. :)

Gruß

Christian
#22
Smalltalk / Probleme mit dem Forum
Letzter Beitrag von Knobbi38 - März 02, 2026, 12:09:43
Hallo,

haben andere eventuell auch Probleme mit der Forumssoftware, z.B. beim Anmelden?

Bekomme seit wenigen Tagen immer wieder die Seite mit dem "503" Fehler beim Zugriff angezeigt.

Knobbi38
#23
Access Programmierung / Re: Einlesen einer xml-Datei
Letzter Beitrag von Bitsqueezer - März 02, 2026, 11:57:41
Hallo,

für die Verwendung von ADO mußt Du kein Addon installieren, sondern im VBA-Editor eine Referenz setzen auf die ADO Library. Das ist die "Microsoft ActiveX Data Objects 6.x" (sollte i.d.R. 6.1 sein).

Ein Objekt sollte man nicht mit "New" deklarieren, besser ist, Deklaration und Initialisierung zu trennen. Damit kann es auch per Set auf Nothing gesetzt werden.

Für XML gibt es von MS die XML Library, die Du zur Verarbeitung verwenden kannst. Aktuell "Microsoft XML v6.0", ebenfalls in den Referenzen.
Hier ist ein Tutorial zur Verwendung:
https://activevb.de/tutorials/tut_msxml/msxml.html

Wenn es JSON sein soll, findest Du hier ein Projekt mit einem JSON-Parser:
https://github.com/VBA-tools/VBA-JSON/tree/master

Da Du keinen Code zeigst, kann man nicht sagen, inwiefern man das verbessern könnte.

Gruß

Christian

#24
Access Programmierung / Re: Einlesen einer xml-Datei
Letzter Beitrag von Knobbi38 - März 02, 2026, 01:20:38
Hallo,

Massenverarbeitung mit INSERT INTO ist sicherlich nicht die schnellste Methode, zumal wenn keine Query dafür verwendet und der String jedes mal neu erzeugt wird.

Auch muss kein Recordset definiert werden, sondern man öffnet eine Recordset für die Tabelle und fügt mit AddNew neue DS hinzu.

Bei Verwendung von ADO geht das z.B. auch mit UpdateBatch.

Knobbi38
#25
Access Programmierung / Re: Einlesen einer xml-Datei
Letzter Beitrag von hajott - März 01, 2026, 20:16:05
Hallo Knobbi38,

das Parsing per Code mache ich ja gerade, ist aber langsam, da jede der zigtausend Zeilen in einen einzelnen INSERT INTO umgesetzt wurd

Meine Hoffnung war, dass man die Daten vielleicht ib eiben Recordset schreiben und dort auch noch anpassen kann. Erst am Ende wird das in eine Tabelle übertragen.

Aber ich scheitere daran, das Recordset überhaupt zu definieren (siehe Frage), gibts  dazu vielleicht noch was zu wissen?

Vieleb Dank

Hans-Jürgeb
#26
Access Programmierung / Re: Einlesen einer xml-Datei
Letzter Beitrag von Knobbi38 - März 01, 2026, 16:37:22
Hallo Hans-Jürgen,

es gibt sicherlich einige verschiedene Methoden, XML-Daten in Access zu importieren, allen vorweg schlichtweg mit dem Assistenten für "externe Daten". Die Schritte kann man dann Speichern und dann immer wieder neu anwenden. Selbst eine Transformation per xslt wäre möglich, wenn die Struktur der XML-Datei nicht passend ist.

Eine andere Variante wäre, da ja eine XML-Datei nichts anderes als eine Textdatei ist, diese mit einer Komponente oder einfach per Code zu parsen und dann die Daten an eine Tabelle anzufügen.

Leider reichen deine Informationen (noch) nicht aus, um wirklich zielführende Hinweise zu geben.

Zum Thema JSON:
Da Access das nicht unterstützt, müsste man das selber programmieren. Sicherlich kann man sich dafür dann einiger vorhanden Bibliotheken bedienen, so dass man nicht alles neu erfinden muss. Einfach auf Github mal nach VBA + JSON suchen.

Knobbi38

PS:
Hast du mal hier im Forum nach dem Begriff "XML" gesucht?


#27
Access Programmierung / Einlesen einer xml-Datei
Letzter Beitrag von hajott - März 01, 2026, 14:56:47
Hallo Wissende,

ich möchte regelmäßig Daten in Access einlesen, die ich aus einer xml-Datei erhalte. Die Importfunktion von Access bringt mir nur leere Felder. Laut meiner Internetrecherche liegt das wohl daran, dass ich Daten auf drei Ebenen habe. Die ersten drei Zeilen sehen beispielhaft so aus:
<ebene1 var1="hallo" var2="3" var4="49.73" usq. />
   <ebene2 var5="3" var6="q" usw />
       <ebene3 var7="r" usw />

Ich habe es geschafft, ein Programm zu bauen, welches die Zeilen ausliest, die Feldnamen und Variablen sortiert, eine ID dazugibt und mit einer INSERT INTO in vorbereitete Tabellen schreibt. Dazu ist noch zu sagen, dass einige Variablen in einigen Zeilen nicht vorkommen (wie in ebene1 var3), deshalb ist die Zuordnung zum Feldnamen erfdorderlich.

Wie gesagt, es klappt, dauert aber äußerst lange. Wie ich am fröhlichen Blinken der Statusbar sehe, läuft (logischerweise) jede Abfrage einzeln. Neben der Wartezeit stört mich, dass die Lösung vielleicht doch nicht die beste ist, zumal ich die Daten nach dem Import auch noch überarbeiten muss.

Als erstes fiel mir ein: Recordset beschreiben und einmalig in die Tabelle übergeben. Das würde ich sogar hinbekommen, aber mein Test scheiterte schon am "Dim objRs As New ADODB.Recordset", was er nicht kennt.
Aus meiner Zeit als ich beruflich ein bisschen an Access gebaut habe, weiß ich, dass man ggf.  Add-Ins einschalten muss. Das Fenster ist bei mir aber leer ! Wisst ihr, woran das liegt oder was man daran machen könnte? (Falls das der Grund ist: ich habe kein natives Windows, sondern arbeite mit Mac und Parallels)

Als zweites wollte ich mal fragen: Gibt es nicht doch eine elegantere Möglichkeit, eine dreistufige XML einzulesen?`(Falls es hilft: Dieselben Daten würden auch als JSON vorliegen)

Vielen Dank im voraus für alle Tipps

Hans-Jürgen
#28
Tabelle/Abfrage / Re: Kreuztabelle mit mehreren ...
Letzter Beitrag von Knobbi38 - Februar 26, 2026, 15:22:03
👍
#29
Tabelle/Abfrage / Re: Kreuztabelle mit mehreren ...
Letzter Beitrag von kisslinger - Februar 26, 2026, 15:11:49
Hallo nochmal,

ich habe es nun selbst geschafft. Wie? Ich vergebe für jede Datensatz automatisch eine eigene Nummer und  so werden zu jedem Datum nun alle Datensätze angezeigt.
#30
Tabelle/Abfrage / Re: Kreuztabelle mit mehreren ...
Letzter Beitrag von kisslinger - Februar 26, 2026, 14:01:45
Hallo, danke für Deine Hilfe, ich bin völlig neu hier darum poste ich vermutlich nicht das was Ihr für die Hilfestellung benötigt. Kann ich Datum vermulich nicht als nicht Gruppierung machen. Soweit zeigt mir die Kreuztabelle alles an wie ich es gewünscht hatte doch leider nur jeweils 1 Datensatz pro Mitarbeiter pro Datum obwohl diese oftmals mehrere Datensätze pro Tag haben.  lg Günther