Einfaches Makro/Modul

Hallo zusammen,

Ich bastele noch immer an der Datenbank, mit der ich die Erfassungen der Standorte statistisch auswerten kann. dank der Hilfe vom Franz bin ich bei den SQL-Abfragen gut dabei. Ich habe aber folgendes Problem:

Unter „Tabellen“ habe ich vier verknüpfte Excel-Tabellen (nennen wir sie mal A,B,C und D). Die Originaltabellen liegen im Netzwerk und werden täglich gefüllt. Da die User keine Access-Lizenz bekommen sollen, ist das auch nicht zu ändern. Die Abfragen laufen auch anstandslos (brauchen natürlich ein paar Sekunden weil Access ja die zugrundeliegenden Daten aus dem Netz holen muss).
Die einzige „echte“ Access-Tabelle beinhaltet die Sollzeiten für verschiedene Arbeitsprozesse und wird gebraucht, um Produktivitäten zu rechnen.

Ich würde nun gern einmal täglich durch den Administrator die Excel-Tabellen zu „echten“ Access-Tabellen machen lassen, und zwar aus folgenden Gründen:

  • Man kann sich dann nicht gegenseitig blockieren
  • Die Abfragen würden auf die gespeicherten Daten gehen und somit schneller werden
  • Die Abfragen würden auch funktionieren, wenn die Netzwerkverbindung grad mal hängt.

Ich habe mal mit dem Thema Makro und den dort vorgefertigten Befehlen rumprobiert. Dort gibt es zwar eine Option Datei kopieren, das funktioniert auch, aber er setzt das Ergebnis dann wieder als Verknüpfung. Gibt es noch einen anderen Weg, z.B. VBA-Skript ? In Excel beherrsche ich das ganz gut, da gibt’s aber auch die Aufnahmefunktion…

Falls das klappt, wären auch zwei Sonderwünsche realisierbar? Zum einen soll beim Ausführen des Makros auch gleich die ganze DB gesichert werden. Zum anderen soll dem Ausführenden aus den Quelldateien nur angezeigt werden, von wann der letzte Eintrag ist ( Primärschlüssel, pro Tag gibt es einen Eintrag).

Vielen Dank im voraus

Hans-Jürgen

Hallo,

benutze „Transferarbeitsblatt“ (Transferspreadsheet), um die Excel-Sheet-Daten in Access-Tabellen zu importieren.

„die ganze DB gesichert werden“

Was verstehst Du darunter?

"Zum anderen soll dem Ausführenden aus den Quelldateien

??

nur angezeigt werden, von wann der letzte Eintrag ist ( Primärschlüssel, pro Tag gibt es einen Eintrag).

Womit und wann soll das angezeigt werden?

Gruß
Franz, DF6GL

Hallo Franz,

Du bist meine Rettung. Die Sache mit Transferspreadsheet ist super und ich hab meinen ersten Code in Access (fast…) selbst geschrieben.

Nochmal kurz der geplante Ablauf:

  • Bis morgens 8 Uhr müssen alle Standorte ihre Daten vom Vortag eingeben
  • Um 8 Uhr kommt der Auftritt des Administrators, er führt den Code aus. Dieser Code soll die Erfassungsdaten kopieren (Thema erledigt mit Transferspreadsheet)
  • Nach diesem Auftritt können sich dann die Chefs über die Abfragen hermachen.

Meine beiden „Sonderwünsche“ bedeuteten:

  • Wenn der Admi sowieso ein Makro ausführt: kann man da einen Befehl reinschreiben, dass sich die gesamte Access-Datenbank auf einem separaten Pfad wegsichert ? (Falls da mal einer was löscht)
  • Es kann ja passieren, dass ein Standort die Eingabe nicht rechtzeitig macht. Der Administrator soll durch das Makro erkennen können, ob die Daten aktuell sind. (Konkret: Anzeige des jüngsten Datums in der Datei - Datum ist der Primärschlüssel). Falls beim Import nicht das korrekte Datum (Vortag) angezeigt wird, soll das Makro weiterlaufen, aber der Admi gibt dann eine telefonische „Schelle“ weiter und nach erfolgter Erfassung des Standorts führt er es einfach nochmal aus. (Ein zu altes Datum soll die Sache nicht blockieren, denn ein Standort ist in NRW, und die haben regionale Feiertage)

Vielen Dank nochmal

Hans-Jürgen

Grüß Gott,

Da die User keine Access-Lizenz bekommen sollen, ist das auch nicht zu ändern.

eigentlich schon mit einer kostenlosen Runtime für Access.

Die Abfragen laufen auch anstandslos (brauchen natürlich ein
paar Sekunden weil Access ja die zugrundeliegenden Daten aus
dem Netz holen muss).

ich vermute, du hast dein Access Programm nicht in Frontend und Backend aufgeteilt?

Die einzige „echte“ Access-Tabelle beinhaltet die Sollzeiten
für verschiedene Arbeitsprozesse und wird gebraucht, um
Produktivitäten zu rechnen.

ok

Ich würde nun gern einmal täglich durch den Administrator die
Excel-Tabellen zu „echten“ Access-Tabellen machen lassen, und

es wäre besser, die User tragen die Daten gleich in die Access Datenbank ein.

zwar aus folgenden Gründen:

  • Man kann sich dann nicht gegenseitig blockieren

Excel ermöglicht auch die gleichzeitige Nutzung der gleiche Exceltabellen, ist eine der Einstellungen unter „Überprüfen“

  • Die Abfragen würden auf die gespeicherten Daten gehen und
    somit schneller werden

minimal, kommt halt auf Euer Netzwerk an

  • Die Abfragen würden auch funktionieren, wenn die
    Netzwerkverbindung grad mal hängt.

das spricht nicht für Euer NetzweRechtsklickund ist auch nicht sinnvoll in einer Mehrbenutzerumgebung.
Access Backend mit den Tabellen auf dem Server und Access-Frontend auf dem lokalen PC ist eigentlich üblich.

Ich habe mal mit dem Thema Makro und den dort vorgefertigten
Befehlen rumprobiert.

vergiss Makro, nutze VBA. Access ohne VBA ist wie Autofahren ohne Räder :smile:

Gibt es noch einen anderen Weg, z.B. VBA-Skript ?

ja, siehe den Beitrag von Franz

In Excel beherrsche ich das ganz gut, da gibt’s aber auch die Aufnahmefunktion…

Tipp: vergiss Excel

Falls das klappt, wären auch zwei Sonderwünsche realisierbar?

jein, mit VBA

Zum einen soll beim Ausführen des Makros auch gleich die ganze
DB gesichert werden.

nö, das kannst du machen mit einem vernünftigen Backupprogramm, das ist sinnvoller

Zum anderen soll dem Ausführenden aus den
Quelldateien nur angezeigt werden, von wann der letzte Eintrag
ist ( Primärschlüssel, pro Tag gibt es einen Eintrag).

warum nicht, erstelle eine passende Abfrage und passe das anzuzeigende Formular entsprechend auf die Abfrage an. Oder definiere einen Filter für das Formular.

ym2c

Grüße aus München
Wolfgang
(Netwolf)

Hallo,

  • Wenn der Admi sowieso ein Makro ausführt: kann man da einen
    Befehl reinschreiben, dass sich die gesamte Access-Datenbank
    auf einem separaten Pfad wegsichert ? (Falls da mal einer was
    löscht)

Das ist zwar moeglich, aber warum? Ich glaube das mittlerweile in fast jedem Unternehmen das Thema Datensicherung schon mal aufgetaucht ist. Werden die Daten nicht sowieso mit der taeglichen Sicherung erfasst?

  • Es kann ja passieren, dass ein Standort die Eingabe nicht
    rechtzeitig macht. Der Administrator soll durch das Makro
    erkennen können, ob die Daten aktuell sind. (Konkret: Anzeige
    des jüngsten Datums in der Datei - Datum ist der

Der arme Admin, hat der nichts besseres zu tun? Schreib ein kleines Programm, von mir aus Access DB (besser waere VB), die im autoexec-Makro ein Funktion startet, die alle Paar Minuten nachschaut ob die Daten zum Import bereitliegen. TransferSpreadSheet starten und gut ist…der Admin wirds dir danken. Das Programm kann dann auf einem Rechner (ewt. Server) immer laufen .
Ist der Import gelaufen, in einer eigenen Tabelle eine Eintrag mit Datum/Uhrzeit…Anzahl importierte Saetze…etc machen.

btw. warum gibst du den Leuten keine AccessDB zur Datenerfassung? Kostenlose Access-Runtime auf die Rechner und du sparst dir das Gehampel mit dem Import. Selbst wenn eigentlich im Unternhemen AccessXP eingesetzt wird, kann man die Access2010 runtime hernehmen fuer die Datenerfassung.

Tschau
Peter

Hallo Wolfgang,

vielen Dank für die Antwort. Das Problem ist, dass ich viele Jahre nur mit Excel gearbeitet habe und daran gewöhnt bin. Access ist für mich neu und ich muss erstmal in die Philosophie von Datenbanken und die Funktionen eintauchen.

Ich bin zwar verantwortlich für das Thema Statistik, aber ken Administrator im Sinne von weiteren Rechten. Es handelt sich um ein Grossunternemen und da kann ich selbst kostenlose Access-Runtimenicht den Usern nicht geben - ganz u schweigen vom der Intallation eines Backp-Programms.

Das Netzwerk funktioniert zu 99,9%. Aber wenn ich schon was neues mache, will ich es gleich vernünftig machen. Und Murphy ist ja bekannt: Wenn es dan mal ein paar Stunden nocht läuft, werden die Zahlen dann besonders dringnd gebraucht. Auch werden alle Laufwerke nachts automatisch gesichert. Aber wenn du mal eine Rücksicherung brauchst, dauert das ein paar Tage und das ist zu lang.

Zum letzten Absatz: Meine Idee war, dass dem Ausführer des Programms über ein Dialogfeld die Datenstände angezeigt werden. Aber über eine Abfrage geht das natürlich auch, die bekomme ich sogar selbst hin…

Vielen Dank für deine Mühe

Hans-Jürgen

Hallo Peter,

vielen Dank auch für deine Antwort. Das meiste habe ich schon als Antwort zu Netwolf geschrieben.

Das Problem ist, dass die Erfassungsdatei immer zur Verfügng steht. Wenn der Erfassetwasreingeschrieben hat, ist ein Datensatz mehr drin. Ich wüsste auch nicht, wie ich mit einem Makro das abfragen soll.

Abet ich lerne ja noch und folge jetzt erstmal dem Vorschlag von Netwolf: Ich importieretäglich über das Makro und habe dann eine Abfrage, die mir jeweils das aktuellste Fatum anzeugt.

Vielen Dank für deine Mühe

Hans-Jürgen