Hallo Zusammen,
ich sitze vor einem Problem was ich nicht lösen kann, und so langsam weiß ich nicht mehr weiter. Ich hoffe Ihr könnt mir helfen.
Folgendes Problem:
Ich habe eine Datenbank gebaut die Probendaten verwaltet und mir die Probendaten auf ein Prüfschema druckt.
Nun soll neuerdings das Datum nicht mehr per Hand auf dem Probenschein eigetragen werden sondern es soll vorweg direkt eingedruckt werden.
Der Clou an der Sache ist, dass die Probengruppe mit geraden Zahlen das Datum X bekommt und die ungeraden das Datum XY.
Gibt es eine Möglichkeit einen VBA zu schreiben der mir in der Tabelle der Probendaten automatisch das Datum nachträgt? Oder habt ihr vielleicht eine andere Idee wie man das Lösen kann?
Bei über 30000 Proben mit Copy & Paste arbeiten ist zeitaufwendig und zu fehlerträchtig :-\
Viele Grüße Harry
Hallo,
das ist kein Problem.
Aber die Ausgangslage ist unklar beschriben, daher erst mal folgende Fragen:
Wo kommt Datum X und XY her ?
Das kann ja nicht willkürlich aus der Luft gegriffen werden.
Ist die Probengruppe das Feld das auf gerade/ungerade geprüft werden soll ?
Welchen Datentyp hat dieses Feld ?
Das Feld PROBENGRPNR (Zahl) ist das Feld das auf gerade/ungerade geprüft werden soll.
Bei dem Feld Datum hab ich folgendes Problem:
Ich ziehe mir die ganzen Daten aus einer Software in meine Datenbank. In der Software gibt es zu den Probendaten das Feld Datum nicht - ich muss mir das Feld dann leider extra erstellen.
Deshalb versuche ich ein MAKRO oder VBA auf die Beine zu stellen, das mir nach Aktualisierung der Tabelle das Datum als neue Spalte einträgt.
Da sich das Datum ja von Prüftermin zu Prüftermin immer ändert dachte ich an eine Lösung mit einer Art Eingabeaufforderung.
Hallo,
ZitatDa sich das Datum ja von Prüftermin zu Prüftermin immer ändert dachte ich an eine Lösung mit einer Art Eingabeaufforderung.
Für 30000 Datensätze ? Hältst Du das für praktikabel ?
Da kannst Du das Datum auch gleich manuell eintragen.
Wenn es keine Regel gibt zur Ermittelung des einzutragenden Datums, sehe ich keine Möglichkeit zur Automatisierung.
Außer der Filterung der Datensätze auf gerade/ungerade damit man gleich die entsprechenden Datensätze hat.
Hallo,
sehr undurchsichtige Beschreibung.
Zitat
Ich ziehe mir die ganzen Daten aus einer Software in meine Datenbank.
WIE machst Du das?
Zitatich muss mir das Feld dann leider extra erstellen.
Wieso erstellen? Das Feld sollte in der Zieltabelle schon vorhanden sein.
Oder meinst Du: Das Feld mit einem (bestimmten) Datum füllen?
Zitatnach Aktualisierung der Tabelle das Datum als neue Spalte einträgt.
Aktualisierst Du die Tabelle(n) oder fügst Du neue Datensätze hinzu?
ZitatDa sich das Datum ja von Prüftermin zu Prüftermin immer ändert dachte ich an eine Lösung mit einer Art Eingabeaufforderung
.
Ist
Prüftermin ==
Aktualisierung der Tabelle ?
Zitatdas Datum ... einträgt.
Ist
das Datum dasjenige des Import-, bzw. Aktualisierungsvorgangs?
Zeig mal ein konkretes vollständiges Beispiel der zu importierenden Daten und ein Beispiel dazu, was und wann damit geschehen soll.
Bsp.:
PRUEFTERMIN PROBENGRPNR PROBENNR
50026 1 1
50026 2 91
Das ist eine kurze Fassung von dem was aus der Software per Datenextraktion herausbekomme. In der Software werden alle Proben angemeldet und verwaltet, die Software wurde extra für uns Hergestellt.
Da die Software nicht alles kann, verarbeite ich die Daten die ich mir daraus ziehe in einer eigenen Datenbank weiter.
Wenn ich Daten aus der Software extrahiere, läd die Software mir die Tabelle Probendaten in meine Datenbank - dies ist die Grundtabelle für alle weiteren Abfragen Berichte Serienbriefe ect.
Bei jeder neuen Datenextraktion werden die Tabellen in meiner Datenbank leider komplett überschrieben, also kann ich dort keine Spalte nachtragen weil diese nach jeder neuen Datenextraktion wieder weg wäre.
Ich brauche nun etwas was mir das Feld Datum in die Tabelle Probendaten erstellt.
PRUEFTERMIN PROBENGRPNR PROBENNR DATUM
50026 1 1
50026 2 91
Wie ich dann der Datenbank sage das sie das Feld DATUM bei gerader Zahl im Feld PROBENGRPNR mit dem Datum XY belegt weiß ich leider nicht.
Gibt es eine Möglichkeit dies über eine Maske laufen zu lassen? Also ein VBA das mich nach dem Aktivieren fragt welches Datum bei gerade und welches bei ungerade gesetzt werden soll?
Sorry das ich hier so eine Verwirrung stifte, aber ich hab da selbst grad ein Brett vor dem Kopf
Bei jeder Datenextraktion wird die alte Tabelle gelöscht und durch eine neue erstetzt, das kann man leider auch nicht ändern.... anscheinend ist das in der Software so programmiert.
Hallo,
ZitatWie ich dann der Datenbank sage das sie das Feld DATUM bei gerader Zahl im Feld PROBENGRPNR mit dem Datum XY belegt weiß ich leider nicht.
Es ist immer noch völlig unklar, wo das Datum xy herkommt.
Wird das Datum dann für alle geraden/ungeraden Probengruppen gleich ?
Du solltest die Importtabelle nur verknüpfen und dann mit einer Anfügeabfrage die neuen Daten anfügen, dann wird auch nichts gelöscht.
Alles in allem, ist das Vorhaben aber immer noch ziemlich unklar, trotz der vielen Worte die Du geschrieben hast. ;D
Hallo,
mühsam ernährt sich das Eichhörnchen... ::)
WOHER soll das Datum in der Datumsspalte kommen?
Mit z. B. der folgenden VBA-Funktion kann das Feld "PDatum" ("Prüfdatum") in die Tabelle eingefügt werden:
In einem Standardmodul:
Public Function fktInsDat()
Currentdb.Execute "Alter Table Tabelle1 Add Column PDatum Date", dbfailOnError
End Function
Die Datumsspalte könnte mit einer Aktualisierungsabfrage eingetragen werden, wenn man denn wüsste, woher dieses Datum genommen werden soll/kann.
Also das Datum an sich ist momentan leider nirgends hinterlegt. Ich müsste mir eine Tabelle dazu erstellen. Aber ich weiß nicht genau wie ich das Sinnvoll gestalten soll. Dumm gesagt das Datum hat man im Kopf oder es wird in einem Meeting besprochen.
Das ist ja das schlimme, wenn ich das Datum schon in einer Tabelle hätte, wäre das ja alles nicht so umständlich. Und ich müsste mich nicht um Kopf und Kragen reden ;D
Der Code ist schon mal ein Anfang :) :)
Wäre es Sinnvoll wenn ich eine Tabelle erstelle die alle 356 Tage enthält und ich daraus die Info ziehe?
Mein Wunschtraum wäre Folgender:
Eine Befehlsschaltfläche ( Prüftdatum setzen ) dann kommt die Frage -Datum gerade- und ich gebe nur noch das Datum ein und drücke Enter.
Ist das in Access per Code überhaupt möglich?
Hallo,
esa wäre überaus hilfreich (für Dich) wenn Du auch alle Fragen beantworten würdest.
ZitatWird das Datum dann für alle geraden/ungeraden Probengruppen gleich ?
ZitatIst das in Access per Code überhaupt möglich?
natürlich ist das möglich.
Hallo,
wenn das Datum erst bei Besprechungen definiert wird, dann trag das Datum (über ein auf der Tabelle1 basierendes Formular ein, sobald es bekannt ist/wird. Für den Eintrag brauchst Du keine weitere Tabelle, für Datumsfelder steht ein DatePicker standardmäßig zur Verfügung. Anschließend können die Prüfscheine mit dem entspr. Datum gedruckt werden.
Ansonsten solltest Du selber erst mal im Klaren sein/werden, was genau denn die DB leisten soll und wie der eigentliche Arbeitsablauf vonstatten geht.. Der ist (mir zumindest) ziemlich unklar.
Was hat es denn mit dem Feld "Prüftermin" auf sich?
Für alle geraden/ungeraden Zahlen ist das Datum gleich.
z.B. alle geraden bekommen das Datum 25.09.2017 und alle ungeraden Zahlen bekommen das Datum 26.09.2017.
Zitat von: DF6GL am September 12, 2017, 12:42:24
Halo,
wenn das Datum erst bei Besprechungen definiert wird, dann trag das Datum (über ein auf der Tabelle1 basierendes Formular ein, sobald es bekannt ist/wird. Für den Eintrag brauchst Du keine weitere Tabelle, für Datumsfelder steht ein DatePicker standardmäßig zur Verfügung. Anschließend können die Prüfscheine mit dem entspr. Datum gedruckt werden.
Ansonsten solltest Du selber erst mal im Klaren sein/werden, was genau denn die DB leisten soll und wie der eigentliche Arbeitsablauf vonstatten geht.. Der ist (mir zumindest) ziemlich unklar.
Was hat es denn mit dem Feld "Prüftermin" auf sich?
Der Prüftermin ist eine Art ID - z.B. 9147 // alle Prüflinge unter dieser ID gehören zur Prüfung, diese Nummer wird von unserer Software vergeben. Man kann das mit einer Fortlaufenden Nummer vergleichen. Also das Feld hat mit der Benennung nicht viel am Hut, aber daran kann ich leider nichts ändern :( hab mich da anfangs auch erst dran gewöhnen müssen
Sorry ich hätte das alles von Grund auf besser erklären sollen was was ist...
Hier im Anhang mal ein Screenshot.
So soll es am Ende aussehen. Habe das Feld Datum und den Inhalt per Hand eingetragen.
Hallo,
gibt es nur die beiden Probengruppen (1 und 2) ?
Zitat von: MzKlMu am September 12, 2017, 13:29:47
Hallo,
gibt es nur die beiden Probengruppen (1 und 2) ?
Bisher schon sollten es mal mehr werden muss das neu aufgebaut werden.
Das ist ein Super Ansatz von dir daran hab ich gar nicht gedacht.
Hallo,
mein letzter Kommentar hierzu:
Wenn Du nicht definieren kannst, woher das Datum kommt und wie es mit den anderen Daten zusammenhängt, wird es wohl bei manueller Eingabe bleiben...
Hallo,
als einfache Aktualisierungsabfrage mit festen Datumswerten so:
UPDATE TabellenName SET Datum = IIf([Probengruppe]=1,"25.09.2017","26.09.2017")