Office: (Office 2010) Automatisierung von Access-Abfragen

Helfe beim Thema Automatisierung von Access-Abfragen in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, ich würde gerne wissen, wie ich Abfragen in Access automatisieren kann. Momentan exportiere ich aus 2 verschiedenen Systemen Daten zu... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Michi90, 24. Mai 2014.

  1. Automatisierung von Access-Abfragen


    Hallo zusammen,

    ich würde gerne wissen, wie ich Abfragen in Access automatisieren kann.

    Momentan exportiere ich aus 2 verschiedenen Systemen Daten zu unseren Bestellungen nach Excel.

    Diese beiden Exceltabellen importiere ich dann nach Access, wo ich sie über verschiedene Abfragen zu einer Datenbank verknüpfe.

    Die Verknüpfung erfolgt dabei über einen Schlüssel, den ich aus Bestellnummer und Bestellposition bilde.

    Ich habe das mal in der angehängten Access-Datei beispielhaft dargestellt.

    Da ich diese Arbeit nahezu täglich machen muss, wäre es eine große Hilfe, wenn ich diese Schritte irgendwie automatisieren (VBA?) könnte.

    Könnt ihr mir dabei weiterhelfen?

    Grüße Michi


    PS:

    Unser Firmensystem verlangt, dass Archive immer veschlüsselt werden. Ich musste die zip-Datei daher leider mit einem Passwort versehen :/

    Passwort: 12345678

    :)
     
    Michi90, 24. Mai 2014
    #1
  2. Moin,
    und mein Firmensystem öffnet maximal Access 2003 *wink.gif* .

    Daher kann ich dir nur ein paar Stichworte für die weitere Suche (im Forum, in der Access OH, im WWW ... ) liefern:
    Importieren einer Exceldatei -> TransferSpreadsheet
    VBA-Code zum Ausführen einer Aktions-Abfrage, z.B. als Ereignisprozedur bei Klick auf einen Button:
    Code:
    maike
     
    maikek, 26. Mai 2014
    #2
  3. Hallo maikek,

    ich hätte gleich dran denken können, dass mdb besser ist. Hier noch mal im Access-2003-Format. (Passwort: 12345678)

    Danke für deine Tipps mit den Stichworten! Da werde ich mich gleich mal auf die Suche machen.

    Grüße Michi
     
    Michi90, 26. Mai 2014
    #3
  4. Automatisierung von Access-Abfragen

    Hi, nur zur Ergänzung:

    - für die Auswahl der Excel-Tabellen setzt du einen Dateiauswahldialog (-> FileDialog) ein
    - anstelle vom Import (acImport) käme auch das Einbinden (acLink) der Tabellen in Frage
    - vorher wäre dann noch jeweils die Hilfstabelle zu löschen, oder du legst die Struktur fest an und löschst vor dem erneuten Import lediglich die Datensätze
    Was am Ende mit dem Ergebnis passieren soll, geht aus deiner Beispiel-DB nicht hervor.
     
    Anne Berg, 26. Mai 2014
    #4
  5. Hallo Anne,

    auch für deine Hinweise vielen Dank!

    Letztendlich möchte ich nur eine Tabelle, in der alle Informationen zu den Bestellungen enthalten sind (siehe Abfrage "A5").

    Ziel ist, dass ich die Bestellungen bzw. den Bestellverlauf besser überwachen kann. Wenn die Informationen über 2 Tabellen verteilt sind, ist das ziemlich unhandlich.

    In den richtigen Exporten stehen auch noch viel mehr Informationen, z.B. zur bestellten Menge, Wareneingangsdatum, Lieferant etc.

    Grüße Michi
     
    Michi90, 26. Mai 2014
    #5
  6. Hallo zusammen,

    gibt es denn eine Möglichkeit die Abfrage nicht nur durch VBA ausführen zu lassen, sondern gleich in VBA zu programmieren?

    Ich erhoffe mir davon eine Verringerung der Berechnungszeit.

    Falls das möglich ist, kann man in Access Makros (wie in Excel) aufzeichnen? Ich habe leider nur die Funktion "Makros ausführen" gefunden....

    Grüße Michi
     
    Michi90, 26. Mai 2014
    #6
  7. Code:
    Du kannst statt der Abfrage mit einem Recordset arbeiten. Ich wette aber, dass die Abfrage schneller ist. Eine Verringerung der Berechnungszeit würde ich in der Abfrage selbst versuchen (Indizierung, nur benötigte Felder, ...).

    Man kann bestehende Makros zu VBA konvertieren. Da kommt aber meist nichts Vernünftiges dabei heraus, programmiere lieber gleich in VBA.

    maike
     
    maikek, 26. Mai 2014
    #7
  8. Automatisierung von Access-Abfragen

    Sry, aber ich habe keine Ahnung was ihr mit FileDialog, Recordset, Indizierung meint...

    VBA kenne ich bisher nur aus Excel. Da hatte ich auch nicht programmiert, sondern nur Makros aufgezeichnet und "angepasst".

    Kannst du mir mal zeigen, wie eine meiner Abfrage in VBA aussehen würde? Ich würde dann versuchen, darauf aufbauend, die anderen Abfragen umzusetzen...
     
    Michi90, 26. Mai 2014
    #8
  9. Bleib bei den Abfragen, ich sehe keinen Grund, Recordsets o.ä. zu verwenden.

    Was mir auffällt an deinem Beispiel: Warum erstellst du dort Tabellen neu?

    Wenn du die Exceldaten jeweils an bestehende Tabellen anfügst (diese können dazu wenn nötig auch vorher geleert werden), hast du die Schlüsselfelder und Beziehungen bereits definiert und musst nur noch per Anfügeabfrage die Werte eintragen.

    maike
     
    maikek, 26. Mai 2014
    #9
  10. - Export aus Systemen ...?
    Hast Du aus VBA Zugriff auf diese?
    - Finden der erzeugten Excelfiles für Import in Access?
    Wenn die Excelfiles in einem definierten Verzeichnis abgelegt sowie nach dem Importvorgang in einen weiteres Verzeichnis verschoben (oder auch gelöscht) werden und im besseren Fall die dateinamen auch schon bekannt sind, kann man automatisch abgreifen.

    Abfragen (SQL-Anweisungen) sind Massendatenverarbeitung und in der Regel deutlich schneller (wenn man es richtig macht) als VBA-Lösungen, die per Schleife(n) Wert für Wert einzeln verarbeiten. Deine Hoffnung wird sich nicht erfüllen.

    Dein Import ist aber arg umständlich und daher zeitfressend.
    Wenn ich den Vorgang richtig überblicke, erzeugst Du aus den beiden Exceltabellen einen FULL OUTER JOIN (alle Datensätze aus A, die nicht in B sind zuzüglich alle Datensätze aus B, die nicht in A sind).

    DAS kann man mit einer Auswahlabfrage auf die verknüpften Exceltabellen erreichen. Man muss nur eben die gewünschten Tabellen einfach und schnell finden.

    Makroaufzeichnung gibt es in Access nicht, wobei Makros in Excel/Word eigentlich VBA-Codes sind, in Access dagegen eine ganz andere Anweisungsgruppe.
     
    ebs17, 26. Mai 2014
    #10
  11. Nein, ich exportiere die Daten manuell nach Excel.

    Die beiden Exceltabellen liegen immer im selben Verzeichnis und haben immer den gleichen Dateinamen. Der Spaltenaufbau ist auch immer gleich.

    Genau, das ist meine Absicht.

    Das hatte ich auch versucht. Mir ist es aber ohne den Umweg über die Hilfstabelle nicht gelungen.

    Der Grund ist ganz einfach, ich wusste es einfach nicht besser *Smilie
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    Michi90, 26. Mai 2014
    #11
  12. Da braucht man gar nichts programmieren oder ändern, sondern einfach verknüpfen. In der nachfolgenden Abfrage erfolgt die Verknüpfung direkt innerhalb der SQL-Anweisung.
    Der SELECT-Teil ist noch etwas unvollständig, weil ich aus Deinen Versuchen nicht weiß, was notwendig, gewünscht und was mal so entstanden ist.
    Code:
     
    ebs17, 26. Mai 2014
    #12
  13. Automatisierung von Access-Abfragen

    Vielen Dank, Eberhard!

    Die Code funktioniert, liefert aber leider nicht das gewünschte Ergebnis. Das ist aber nicht dein Fehler! (siehe Edit)

    Im Anhang findest du 2 Screenshots, "Istzustand" (nach Ausführung deines Codes) und "Sollzustand" (Ergebnis der Abfrage "A5" aus meiner ursprünglich angehängten Datenbank).

    Die Information in der Spalte "Datenquelle" sagt aus, ob die Bestellung in System1 (Exceltabelle1) oder in System2 (Exceltabelle2) vorhanden war, bzw. in beiden Systemen (System1/2).

    Je nach dem ob die Bestellung nur in einem oder in beiden Systemen zu finden ist, fehlen eventuell einige Informationen. (vgl. Screenshot "Sollzustand")

    Ein Datensatz fehlt, da ich in der letzten Abfrage (A5) einen Filter gesetzt habe, sodass gesperrte Datensätze ("x" in Spalte "Sperrung") nicht angezeigt werden.

    Als einzige Änderung an deinem Code habe ich den Dateipfad angepasst.

    Code:
    Edit

    Ich habe mir gerade noch mal deine Erklärung zu FULL OUTER JOIN angeschaut. Ich habe mir das vorhin wohl nicht richtig durchgelesen. Sry dafür!

    Das Ergebnis soll eigentlich folgendes sein:

    Alle Datensätze aus A (inkl. der Informationen zu diesen Datensätze aus B, falls vorhanden) sowie die Datensätze aus B, die in A fehlen.

    Zusätzlich soll in einer neuen Spalte (Datenquelle) angezeigt werden, in welchen Systemen die Daten vorhanden waren. Gesperrte Datensätze sollen hierbei ausgeblendet werden.
     
    Michi90, 27. Mai 2014
    #13
  14. Inhaltliche Nachbesserung:
    Code:
    Als Tabellenbezeichnungen kannst Du wieder die oben verwendeten einsetzen. Hier erkennt man auch die Ersparnis durch die Tabellenaliase.

    Bei XLSX müsste es in den Verknüpfungsdaten eigentlich "excel 12.0 xml" statt "excel 8.0" heißen.

    Als Datenquelle lasse ich der Einfachheit halber Ziffern berechnen:
    1 ... Quelle1
    2 ... Quelle2
    3 ... Quelle1 und Quelle2
    Bei Bedarf könnte man über diesen Schlüssel mit einer zusätzlichen Tabelle verknüpfen, die dann verständliche Klarnamen liefern würde.
     
    ebs17, 27. Mai 2014
    #14
  15. Vielen Dank!! Jetzt ist es perfekt!

    Könntest du mir aber vielleicht noch ein paar Kommentare zu deinem Code geben, damit ich verstehe, was die einzelne Bestandteile bewirken?
     
    Michi90, 27. Mai 2014
    #15
Thema:

Automatisierung von Access-Abfragen

Die Seite wird geladen...
  1. Automatisierung von Access-Abfragen - Similar Threads - Automatisierung Access Abfragen

  2. powerpoint video loop Automatisierung

    in Microsoft PowerPoint Hilfe
    powerpoint video loop Automatisierung: Hallo Forum, ich drehe mich im bei folgendem powerpoint Problem: Ich habe ein Video in Endlosschleife (loop) als 1 .Folie. Das Video startet automatisch bei Beginne der Präsentation und soll...
  3. Automatisierung erstellen

    in Microsoft Outlook Hilfe
    Automatisierung erstellen: Hallo, wir haben folgendes Problem: Unserer Rechnungsprogram ist angeblich nicht individuell programmierbar und geht nur auf einen Kundenwunsch ein. Bei der Erstellung Rechnung-per Mail wird eine...
  4. Zahl in Zelle erkennen, sortieren und dann zählen.

    in Microsoft Excel Hilfe
    Zahl in Zelle erkennen, sortieren und dann zählen.: Liebe Community Ich komme mit meiner Exceltabelle nicht weiter. Ich erstelle eine Tabelle mit Daten (auch als Mehrzahl von Datum gemeint), die sich stetig verändern. Bei der Tabelle geht es um...
  5. E-Mail Automatisierung Funktioniert nur bis zur zweiten E-Mail.

    in Microsoft Excel Hilfe
    E-Mail Automatisierung Funktioniert nur bis zur zweiten E-Mail.: Diese E-Mail Automatisierung hat bereits Funktioniert nur seit heute kann ich maximal zwei E-Mails versenden. VBA Code: Sub Senden() Dim ol As Outlook.Application Dim olm As Outlook.MailItem...
  6. Vorlage in Excell + Grafik Automatisierung

    in Microsoft Excel Hilfe
    Vorlage in Excell + Grafik Automatisierung: Hallo Zusammen, bei der Erstellung einer Vorlage habe ich folgendes Problem: ich möchte gerne, dass beim Öffnen von Excel ein Fenster geöffnet wird in dem ich eine bestimmte Anzahl an Bildern...
  7. Dukumente erstellen mit VBA?

    in Microsoft Word Hilfe
    Dukumente erstellen mit VBA?: Moin. Ich bin auf der Suche nach einer Arbeitserleichterung im Job. Folgende Problemstellung: Im Büro (Stadtverwaltung) benutzen wir viele Dokumente gleichen textlichen Inhalts, die aber...
  8. Bitte um Hilfe! Stecke fest bei Produktionsplan Automatisierung

    in Microsoft Excel Hilfe
    Bitte um Hilfe! Stecke fest bei Produktionsplan Automatisierung: Hi, Ich bin ein neu registriertes Mitglied. Hoffe jemand "da draußen" kann mir mit dieser Aufgabe helfen da ich total überfordert bin ... Ich habe 25 tägliche Aufgaben in einer Spalte , auf...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden