Office: (Office 2010) Bei jpg-Datei per VBA das Aufnahmedatum ändern

Helfe beim Thema Bei jpg-Datei per VBA das Aufnahmedatum ändern in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Ich möchte gern per VBA zu einer JPG-Datei die Dateieigenschaft Aufnahmedatum verändern, im Regelfall im Sinne eines Offsets, also zu um z.B. 46... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von werner budde, 20. August 2011.

  1. Bei jpg-Datei per VBA das Aufnahmedatum ändern


    Ich möchte gern per VBA zu einer JPG-Datei die Dateieigenschaft Aufnahmedatum verändern, im Regelfall im Sinne eines Offsets, also zu um z.B. 46 Minuten später / früher.
    Zur Verdeutlichung:
    Urlaub --> 2 Digicams (eine für mich, eine für meine Frau) --> jeder macht ein paar Hundert Bilder --> beide Bildserien werden später in einen gemeinsamen Ordner des PCs kopiert und nach Dateidatum sortiert.
    Da die Systemuhren der beiden Digicams um einige bis einige zig Minuten / Stunden differieren können (vorher nicht dran gedacht, in den Kameramenüs das mal zu synchronisieren), werden die jeweilig unterschiedlichen Aufnahmezeitstempel als Dateidatum der Datei übernommen.
    Resultat: Die Bildserien der beiden Cams werden bei Sortierung nach Datum entsprechend zeitversetzt angezeigt und nicht mehr chronologisch.
    Nun habe ich schon hier und außerhalb gesucht und gegoogelt, habe u.a. Tommy K's API:
    Datum- und Zeitangaben von Dateien manipulieren downgeloadet und getestet.
    Ergebnis:
    Tommys Tool funktioniert zwar, es können unabhängig Erstellungs- / Änderungs- / letztes Zugriffsdatum einer Datei verändert werden.
    Aber der Eintrag in der Spalte Datum im Windowsexplorer bleibt unverändert und entspricht exakt dem Aufnahmedatum, welches ich per rechtem Klick auf die Datei -> Eigenschaften --> Box --> Reiter Details --> Listeneintrag Aufnahmedatum einsehen kann.
    Frage: Wie kann ich diese Dateieigenschaft Aufnahmedatum (ggf. auch andere) per VBA ändern
    (Ich vermute, das hat nichts mehr mit einem Datei-Attribut zu tun)

    Danke für Eure Hilfe im Voraus.

    :)
     
    werner budde, 20. August 2011
    #1
  2. Scorefun, 22. August 2011
    #2
  3. Marsu65, 22. August 2011
    #3
  4. Bei jpg-Datei per VBA das Aufnahmedatum ändern

    IMHO wird das Aufnahmedatum aus den Exifdaten übernommen. Das gilt es dann auch zu ändern.
    Warum die Fotos nicht sofort entsprechend als von Kamera 1 und 2 gekennzeichnet abspeichern?
    K1Bild1
    K2Bild1
     
  5. Hallo an alle,

    habe inzwischen selbst weiter gesucht:
    Kama bringt es auf den Punkt: es handelt sich beim Aufnahmedatum um einen von vielen Einträgen, die als sogenannte EXIF-DAten zu einer Bilddatei mit in der Datei abgelegt sind.
    Zum Manipulieren solcher EXIF-Daten gibt es in der Tat Freeware auf dem Markt, zum Beispiel EXIFER (man wird beim Googeln schnell fündig).
    Habe dieses Tool inzwischen installiert, es läuft ganz gut, ich muss mich noch einarbeiten, aber im Prinzip tut es das, was ich möchte.

    Also, warum das Rad neu erfinden. Problem gelöst.
    Trotzdem Danke für Eure Antworten. thread kann geschlossen werden.
    @ Kama:
    Es sollen eben von beiden Kameras die Bildserien ZUSAMMEN in einen Ordner und dann aber chronologisch nach dem "Knips"-Zeitpunkt sortiert sein.
     
    werner budde, 22. August 2011
    #5
  6. Thread doch noch mal auf:
    Jetzt hänge ich doch fest.
    Offenbar können die hinlänglich verbreiteten EXIF-Tools Exif-Daten ändern, aber ein Abgleichen der 3 Datumsstempel (Erstellt am / geändert am / Zugriff am) zur Datei mit den EXIF-Daten ist hier wohl doch nicht machbar.
    HAbe es mehrfach ohne Erfolg versucht. Ersatzweise habe ich aber bei intensiverem Googeln eine VB6-Prozedur entdeckt, und zwar die Freeware Exif Reader class/dll for VB 6.
    Das ist allerdings VB6-Code, der nicht 1:1 in einer VBA-Umgebung funzt.
    Im Deklarationsteil dieses VB6-Codes taucht folgendes auf:

    Code:
    Das ist hier nicht der Komplettcode, aber vielleicht kann mir auch so jemand von Euch mitteilen, wie die entsprechenden VBA-Substituierungen zu den VB6-Attribute- Befehlen in VBA lauten müssen, denn nur die und die Zeile VERSION 1.0 CLASS ercheinen im VBA-Editor rot.

    Hie der Inhalt der Readme-Datei dazu:

    Code:
    Ich habe ein bisschen Sorgen, ob das Abkupfern von Freeware -Code und erneutes Quasi-Veröffentlichen hier in unserem Forum gegen die Forumsregeln bzw. die des Freeeware-Erstellers verstößt. Falls dem so ist: MOF, bitte Info. Deshalb der Code auch nur schnipselweise
     
    werner budde, 22. August 2011
    #6
  7. Diesen ganzen Block brauchst Du in VBA nicht
     
    Scorefun, 22. August 2011
    #7
  8. Bei jpg-Datei per VBA das Aufnahmedatum ändern

    Heißt das, dass du die EXIF-Daten der Erstellung geändert hast und nun nach einem Weg suchst, Erstellt am / geändert am / Zugriff am auf dieses Datum zu setzen?

    [Edit]
    du kannst im Explorer auch nach "Bild Aufgenommen Am" sortieren. Vielleicht erspart dir das die weitere Arbeit.
     
    Marsu65, 22. August 2011
    #8
  9. \@Ralf,

    Jau, Du hast recht.
    Manchmal geht es doch wirklich durch Weglöschen von Ballast.

    Code:
    funzt so.
    Resumé:

    Also jetzt noch ein bisschen Fleißarbeit:
    Auslesen des Aufnahmedatums einer jpg-Datei per Exif-Reader-Code und diesen Zeitstempel auf die DAteidatumseinträge schreiben mit Tommy K's Code. Das ganze als Schleife zu allen JPG-Dateien eines Ornders, das kriege ich schon hin. Danke nochmal. Ich lasse den thread noch ein paar Stunden auf, vielleicht ergeben sich noch weitere Erkenntnisse.
     
    werner budde, 23. August 2011
    #9
  10. \@ Marsu,

    Ich wollte den EXIF-Eintrag Aufnahmedatum nicht ändern, sondern unverändert lassen, aber auslesen und mit diesem Zeitstempel die 3 Zeitstempel (Erstellt am / Geändert am) der Datei überschreiben.
     
    werner budde, 23. August 2011
    #10
  11. \@ MArsu,

    So, jetzt lasse ich die Katze mal ganz aus dem Sack *grins

    Ich habe eine bereits fertig laufende Access-VBA-Prozedur, die sämtliche JPG-DAteien in einem Ornder umbenennt auf
    001.jpg / 002.jpg etc
    Die Reihenfolge dieser Nummerierungen soll aber dem Aufnahmedatum enstprechen.
    Hierzu habe ich (viellicht als Krücke) folgenden Code aufgabaut:

    Code:
    Die Parametrierung Code:
    des guten alten Dos-Aufrufs DIR fasst aber nicht das (EXIF-)Aufnahmedatum, sondern das DAteidatum an, das war das zentrale Problem, an dem ich mich festgebissen hatte!


    Die hier entstehende neue Tabelle Liste wird dann noch anschließend weiter bearbeitet, letztendlich mit dem VBA-Befehl
    Code:
    jede Datei umbenannt.
     
    werner budde, 23. August 2011
    #11
  12. Hallo Werner,
    ich musste etwas suchen hab es aber doch wiedergefunden.
    Als Alternative zum EXIF-Reader, kannst du das Bilderstellungsdatum auch mit folgendem Code ermitteln:
    Code:
    BTW: Warum der Umweg über die "DOS-Liste"?
    Wenn du die DIR-Function in VBA nutzt, könntest du m.E. alles in einem Rutsch erledigen.

    Pseudocode:
    DateiName = Dir (Verzeichnis)
    AufgAm = AufgenommenAm(DateiName)
    evtl. umbenennen
    Daten in Tabelle speichern
     
    Marsu65, 23. August 2011
    #12
  13. Bei jpg-Datei per VBA das Aufnahmedatum ändern

    Hallo Marsu,

    hmm, ok, dein Code sieht recht kurz und knackig aus.
    Parameter 24 liefert Kameramodell, 25 das Aufnahmedatum.

    Der von mir jetzt integrierte Exif reader class/dll for VB 6 liefert alle anderen Parameter auch noch (was ich im Moment nicht brauche, später vielleicht doch mal) und läuft jetzt eigentlich ganz rund bei mir.

    Zum Thema Dir:
    Die von Dir vorgeschlagene VBA-Funktion DIR() liefert, soweit ich weiß, nur den Dateinamen einer Datei als Rückgabewert, aber kein Dateidatum.

    Der DOS-Befehl Dir *.* > Liste.txt jedoch erzeugt in einem Rutsch eine Textdatei mit den Spalten Dateidatum / Dateigröße / Dateiname zu sämtlichen Dateien des Ordners, diese Liste exportiere ich mir dann als Tabelle rein und habe in einem Guss die Dateienliste (jetzt nur ganz grob erläutert).

    Ich drehe mich im Moment im Kreis, wieder neue Problemchen, aber nicht mehr mit dem Auslesen der EXIF-Daten, das läuft eigentlich jetzt ganz gut mit dem Exif reader class/dll for VB 6. Ich werde noch einmal konzeptionell was ändern, habe eine Idee, halte Euch gern mal auf dem Laufenden, aber jetzt steht erst mal Mittagessen kochen an *mrcool
     
    werner budde, 23. August 2011
    #13
  14. Ich fragte auch nur, weil das die Tage hier schon mal ein Thema war
    Es gibt noch viele weitere *wink.gif*
    Größe_KB = 1
    Geändert_Am = 3
    Erstellt_Am = 4
    Letzter_Zugriff_Am = 5
    ...
    Die reinen EXIF-Daten wie z.B. Belichtung lassen sich so natürlich nicht ermitteln.

    Guten Hunger! *Smilie
     
    Marsu65, 23. August 2011
    #14
  15. Hallo an alle,

    So, Endlich, geschafft.
    Großer Dank an Marsu, dessen Code ich jetzt doch allem anderen vorgezogen habe.

    Als Gegenleistung habe ich mein fertiges Baby hier mal als Anlage für alle bereitgestellt.
    Beschreibung der Access-Datenbank:
    Version 2010
    Diese Datenbank kann in einen beliebigen Ordner kopiert werden, welcher sinnvollerweise jpg-Bilddateien enthält.
    Bei anschließendem Öffnen dieser DB werden 2 .. 3 Fragen gestellt (Start-Nr und Dateiendung, nur jpg ist hier sinnvoll)
    Anschließend werden sämtliche jpg-Dateien dieses Ordners, beginnend ab der zuvor abgefragten Start-Nr. umbenannt in z.B. 1501.jpg, 1502.jpg usw.
    Das Besondere dabei ist, dass die Sortierreihenfolge den Aufnahmedatums-Einträgen in den jeweiligen EXIF-Einträgen der jpg-Dateien entspricht.

    Ich schließe ausdrücklich jegliche Haftung aus.
    Ggf. sind nicht alle Unplausibilitäten u.ä. vorher abgefangen.
    So kommt z.B. Laufzeitfehlermeldung, wenn die Umbenennung Neue Dateinamen vergeben soll, die aber schon existieren (zur Sicherheit lass ich das auch so).
    Es steht jedem frei, das Baby für seine eigenen Zwecke weiter- / umzubauen.
    Viel Spaß.
    Nochmals Danke an Marsu.

    @Ralf,
    Der von Dir vorgeschlagene Download war ebenfalls sehr gut, aber da blieb ein Problem: Bei wiederholtem Aufruf der Tag-Funktion wurde immer das Ergebnis des ersten Aufrufs angezeigt. Hab die Ursache nicht finden können.
     
    werner budde, 23. August 2011
    #15
Thema:

Bei jpg-Datei per VBA das Aufnahmedatum ändern

Die Seite wird geladen...
  1. Bei jpg-Datei per VBA das Aufnahmedatum ändern - Similar Threads - jpg Datei VBA

  2. Speichern will "connect to docs"

    in Microsoft PowerPoint Hilfe
    Speichern will "connect to docs": Hallo zusammen, ich arbeite mit Office 365 (Windows 10 Pro) und will eine PPT-Datei mit mehreren Folien als jpg speichern. Das funktioniert aber nicht einfach so, sondern ständig kommt ein...
  3. Kann Posteingang an meine Mails angehängte Office Dateien sowie Pdf und Fotos-Jpg nicht mehr öffnen

    in Microsoft Outlook Hilfe
    Kann Posteingang an meine Mails angehängte Office Dateien sowie Pdf und Fotos-Jpg nicht mehr öffnen: Guten Tag Folgendes Problem: Seit geraumer Zeit kann ich im Outlook Posteingang an meine Mails angehängte Office Dateien sowie Pdf und Fotos(Jpg)nicht mehr öffnen, sehe nur ein weisses Symbol. Ich...
  4. Drucken als jpg: Qualitätsunterschiede in versch. Dateien

    in Microsoft Excel Hilfe
    Drucken als jpg: Qualitätsunterschiede in versch. Dateien: Hallo, Mit den Schnipsel Code: With Sheets("TSP") Set rngImage = .Range("TSP_Bild_Ber") On Error Resume Next ActiveSheet.Range("TSP_Erzeugerdatum") = Format(Now, "dd.mm.yyyy, hh:mm") Do...
  5. kann ich ein worddocument ind eine jpg Datei umwandeln?

    in Microsoft Word Hilfe
    kann ich ein worddocument ind eine jpg Datei umwandeln?: Moin, ich brauche eine jpg Datei, die sowohl texte als auch Logos enthält. Diese habe ich in word erstellt. Frage: kann ich die Datei irgendwie in das Format jpg kriegen? Ich muss das...
  6. Bilder von JPG Dateien ind PPS kopieren

    in Microsoft PowerPoint Hilfe
    Bilder von JPG Dateien ind PPS kopieren: Guten Tag, ich hoffe, ihr könnt mir bei meinem Problem helfen: Aus einem Teil meiner Urlaubsbilder (JPG-Dateien) wollte ich eine kleine Diashow machen. Leider "passen" die Bilder nicht auf die...
  7. Bilderliste (.jpg) in Namensliste einer Excel-Datei konverti

    in Microsoft Excel Hilfe
    Bilderliste (.jpg) in Namensliste einer Excel-Datei konverti: Wie kann man eine Bilderliste noimage.jpg, noimage1.jpg usw. aus einer Datei (Eigene Bilder) in eine Excel-Datei als Namensliste umwandeln (in Spalten oder in Zeilen) ohne, dass man einzelne...
  8. Outloot 2003: keine Gif oder JPG Dateien aus Mails speichern

    in Microsoft Outlook Hilfe
    Outloot 2003: keine Gif oder JPG Dateien aus Mails speichern: sondern nur BMP Dateien. Temp und Cookies sind ohne Erfolg gelöscht. Kann jemand helfen?
  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