collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 53
  • Punkt Versteckte: 0
  • Punkt Mitglieder: 0

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 13702
  • stats Beiträge insgesamt: 62196
  • stats Themen insgesamt: 8474
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 16
  • stats Am meisten online: 415

Autor Thema: VBA Wenn gerade Zahl dann Datum ( automatischer eintrag )  (Gelesen 201 mal)

Offline SchuhmacherHarry

  • Newbie
  • Beiträge: 8
VBA Wenn gerade Zahl dann Datum ( automatischer eintrag )
« am: September 12, 2017, 09:43:38 »
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

 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 6754
Re: VBA Wenn gerade Zahl dann Datum ( automatischer eintrag )
« Antwort #1 am: September 12, 2017, 10:17:37 »
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 ?
Gruß
Klaus
 

Offline SchuhmacherHarry

  • Newbie
  • Beiträge: 8
Re: VBA Wenn gerade Zahl dann Datum ( automatischer eintrag )
« Antwort #2 am: September 12, 2017, 10:44:20 »
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.

 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 6754
Re: VBA Wenn gerade Zahl dann Datum ( automatischer eintrag )
« Antwort #3 am: September 12, 2017, 10:58:51 »
Hallo,
Zitat
Da 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.
Gruß
Klaus
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 22990
Re: VBA Wenn gerade Zahl dann Datum ( automatischer eintrag )
« Antwort #4 am: September 12, 2017, 10:59:00 »
Hallo,

sehr undurchsichtige Beschreibung.

Zitat
Ich ziehe mir die ganzen Daten aus einer Software in meine Datenbank.

WIE machst Du das?

Zitat
ich 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?

Zitat
nach Aktualisierung der Tabelle das Datum als neue Spalte einträgt.


Aktualisierst Du die Tabelle(n) oder fügst Du neue Datensätze hinzu?


Zitat
Da 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 ?

Zitat
das 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.


Offline SchuhmacherHarry

  • Newbie
  • Beiträge: 8
Re: VBA Wenn gerade Zahl dann Datum ( automatischer eintrag )
« Antwort #5 am: September 12, 2017, 11:19:09 »
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.
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 6754
Re: VBA Wenn gerade Zahl dann Datum ( automatischer eintrag )
« Antwort #6 am: September 12, 2017, 11:42:16 »
Hallo,
Zitat
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.
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
Gruß
Klaus
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 22990
Re: VBA Wenn gerade Zahl dann Datum ( automatischer eintrag )
« Antwort #7 am: September 12, 2017, 11:51:27 »
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.

Offline SchuhmacherHarry

  • Newbie
  • Beiträge: 8
Re: VBA Wenn gerade Zahl dann Datum ( automatischer eintrag )
« Antwort #8 am: September 12, 2017, 12:14:40 »
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?
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 6754
Re: VBA Wenn gerade Zahl dann Datum ( automatischer eintrag )
« Antwort #9 am: September 12, 2017, 12:25:44 »
Hallo,
esa wäre überaus hilfreich (für Dich) wenn Du auch alle Fragen beantworten würdest.
Zitat
Wird das Datum dann für alle geraden/ungeraden Probengruppen gleich ?

Zitat
Ist das in Access per Code überhaupt möglich?
natürlich ist das möglich.
Gruß
Klaus
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 22990
Re: VBA Wenn gerade Zahl dann Datum ( automatischer eintrag )
« Antwort #10 am: September 12, 2017, 12:42:24 »
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?


Offline SchuhmacherHarry

  • Newbie
  • Beiträge: 8
Re: VBA Wenn gerade Zahl dann Datum ( automatischer eintrag )
« Antwort #11 am: September 12, 2017, 12:49:56 »
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.

 


 

Offline SchuhmacherHarry

  • Newbie
  • Beiträge: 8
Re: VBA Wenn gerade Zahl dann Datum ( automatischer eintrag )
« Antwort #12 am: September 12, 2017, 12:57:46 »
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...
 

Offline SchuhmacherHarry

  • Newbie
  • Beiträge: 8
Re: VBA Wenn gerade Zahl dann Datum ( automatischer eintrag )
« Antwort #13 am: September 12, 2017, 13:02:33 »
Hier im Anhang mal ein Screenshot.

So soll es am Ende aussehen. Habe das Feld Datum und den Inhalt per Hand eingetragen.

 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 6754
Re: VBA Wenn gerade Zahl dann Datum ( automatischer eintrag )
« Antwort #14 am: September 12, 2017, 13:29:47 »
Hallo,
gibt es nur die beiden Probengruppen (1 und 2) ?
Gruß
Klaus