Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Neueste Beiträge

#81
Access Programmierung / Re: Dateidatum per VBA ändern
Letzter Beitrag von Gockel67 - Juni 01, 2026, 16:11:41
Hallo Holger,

nach verschiedenen Tests vermute ich Punkt 3. Egal was ich mache. Es wird immer das aktuelle Datum gesetzt.
Damit hat sich das ganze dann auch erledigt.

Liebe Grüße
Jörg

P.S. Trotzdem nochmal ein Nachtrag: Es funktioniert ja auch auf lokalen Dateien nicht richtig. Also zumindest auf meinem Rechner.
Januar und Februar sind jeweils um -1 Tag verschoben.
#82
Access Programmierung / Re: Scannerauflösung einstelle...
Letzter Beitrag von Gockel67 - Juni 01, 2026, 15:58:13
Moin Knobbi,

1. Quelle ist Google KI
2. Ich mache das ganze damit ich nicht ständig zwischen zwei Programmen hin und her pendeln muss.
3. Danke für den Code. Das setzen von dpi funktioniert nicht. Einen ähnlichen Code hatte ich auch schon ausprobiert. Das Problem dabei ist, dass der Scan direkt startet. Ich benötige aber für Vorschau und zurechtschneiden die Wia-Oberfläche.

Liebe Grüße
Jörg
#83
Access Programmierung / Re: Dateidatum per VBA ändern
Letzter Beitrag von Debus - Juni 01, 2026, 15:36:52
Hallo Jörg, hallo Ulli

ich habe da mal was nachgelesen und da müsste Jörg dann auch noch was zu sagen bezüglich WebDav

Gruß
Holger



1. WebDAV als Laufwerksbuchstabe gemappt D:\
Ja, funktioniert. SetFileTime API arbeitet mit normalen Dateihandles. Windows kümmert sich um die WebDAV-Übersetzung. Erstelldatum, Änderung, Zugriff werden 1:1 gesetzt. Teste ich hier regelmäßig.

2. WebDAV über UNC-Pfad \\server@SSL\DavWWWRoot\
Geht auch, solange Windows den Pfad auflösen kann. CreateFile akzeptiert UNC. Performance ist aber mies, weil jede Datei 3x angefasst wird: Kopieren + Zeit lesen + Zeit setzen.

3. WebDAV-Server unterstützt es nicht
Manche Billig-NAS oder OwnCloud/Nextcloud in Standardconfig ignorieren SetFileTime komplett. Datei wird kopiert, Datum bleibt "jetzt". Kein Fehler, aber Datum falsch.
#84
Access Programmierung / Re: Dateidatum per VBA ändern
Letzter Beitrag von Knobbi38 - Juni 01, 2026, 15:22:45
FileCopy? Hast du die Freigabe als Laufwerk eingebunden? Dann verstehe ich noch nicht, warum das Beispiel von Holger nicht das gewünschte Ergebnis bringt.

Knobbi38
#85
Access Programmierung / Re: Dateidatum per VBA ändern
Letzter Beitrag von Gockel67 - Juni 01, 2026, 14:19:47
Hallo Knobbi,

das Beispiel war auch von einer KI.
Ich verwende Access 2024 und den filecopy Befehl.
64 bit.
Liebe Grüße
Jörg
#86
Access Programmierung / Re: Scannerauflösung einstelle...
Letzter Beitrag von Knobbi38 - Juni 01, 2026, 13:49:22
Nachtrag:

hier mal ein Code Snippet (ungetestet):
    ' WIA initialisieren
    Set objDialog = CreateObject("WIA.CommonDialog")
    Set objDevice = objDialog.ShowSelectDevice(1, False, False) ' 1 = Scanner

    If objDevice Is Nothing Then Exit Sub
    Set objItem = objDevice.Items(1)

    ' Auflösung auf 300 DPI setzen (IDs 6147 und 6148)
    objItem.Properties(6147).Value = 300
    objItem.Properties(6148).Value = 300

    ' Scan starten (wiaFormatJPEG = "{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}")
    Set objImageFile = objDialog.ShowTransfer(objItem, "{B96B3CAE-0728-11D3-9D7B-0000F81EF32E}", True)

    If Not objImageFile Is Nothing Then
        ' Bestehende Datei löschen, falls vorhanden
        If Dir(strZielPfad & strDateiName) <> "" Then Kill strZielPfad & strDateiName

        ' Datei speichern
        objImageFile.SaveFile strZielPfad & strDateiName

        ' Pfad im aktuellen Formularfeld speichern
        Me!DokuPfad = strZielPfad & strDateiName ' "DokuPfad" ist Ihr Textfeld in der Tabelle

        MsgBox "Dokument erfolgreich mit 300 DPI gescannt und verknüpft!", vbInformation
    End If
#87
Access Programmierung / Re: Scannerauflösung einstelle...
Letzter Beitrag von Knobbi38 - Juni 01, 2026, 13:47:10
Hallo Jörg,

Zitatich hab mir aus dem Internet einen Code gezogen um zu Scannen.
Warum gibst du die Quelle nicht an? Ich finde es nicht korrekt gegenüber demjenigen, dessen Arbeit einfach ohne Hinweis bzw. Quellenangabe kopiert wird. Wenn man seinen Code verwenden möchte, sollte man schon so viel Respekt gegenüber dem Programmierer zeigen.  Außerdem könnte man als Helfer so auch im Original nachsehen, in welchem Kontext der Code gültig ist.

Auch verstehe ich dein Problem nicht. Warum sollte man mit Access scannen wollen, wenn es doch bereits fertige Apps in Windows gibt und diese oft auch bei den Scannern beiliegen bzw. beim Hersteller heruntergeladen werden können? Die Dateien landen doch eh in einem Verzeichnis und nur die Pfadangaben sind in Access wirklich interessant.

Eine Routine zum Synchronisieren mit dem Ablageort fände ich jetzt interessanter.


Knobbi38

PS:
War das deine Quelle zufällig:
https://access-im-unternehmen.de/Dokumente_scannen_mit_WIA/
... dann sind die entscheidenden Funktionen dort leider kostenpflichtig und deshalb ausgeblendet.
#88
Access Programmierung / Re: Dateidatum per VBA ändern
Letzter Beitrag von Knobbi38 - Juni 01, 2026, 13:11:29
Hallo Jörg,

bei deiner Testroutine fängt es schon mit der API-Deklaration für die API-Funktionen an. Diese ist schlichtweg falsch, der Else-Fall passt gar nicht. Nutzt du noch VBA6?

Dann ist die Testroutine für diesen Test nicht gut geeignet. Vor dem Kopiervorgang müssten die Metadaten der zu kopierenden Datei ausgelesen und nach dem Kopiervorgang wieder gesetzt werden. Da die Metadaten immer in UTC-Zeiten kodiert sind, sollte eine Konvertierung eigentlich nicht notwendig sein. Man müsste die ursprünglichen Zeiten einfach nur neu setzen.  Bitte nicht mit den Zeiten verwechseln, die im Explorer angezeigt werden – das sind lokale Zeiten!

Ich habe mir von der KI einen Rohentwurf als Ausgangspunkt generieren lassen. Da dabei jedoch noch so viele Fehler auftreten, möchte ich das hier nicht ungeprüft weitergeben. Ein passendes Beispiel wird also noch etwas dauern.

Wie kopierst du eigentlich deine Dateien auf die WebDAV Freigabe? Per VBA, einem Tool oder ...? Access 32- oder 64-Bit?

Knobbi38


 
#89
Access Programmierung / Re: VBA Funktionen per Zeiger ...
Letzter Beitrag von Hondo - Juni 01, 2026, 12:34:07
Was für den einen interessant muss es ja nicht für andere sein.
Man braucht ja nur ne zusätzliche Tabelle mit ID, ThreadID und/oder PostingID und UserID, sollte sehr schlank machbar sein. Und eine Anzeigefunktionalität.
Werde am WE mal recherchieren ob es sowas nicht gibt, ähnlich der abbonnierten Themen.
Aber die abonnierten Themen sind ja fluktuativ, und werden bei Antworten automatisch angelegt, das wäre hier nicht Sinn und Zweck.

Gruß Andi
#90
Access Programmierung / Scannerauflösung einstellen WI...
Letzter Beitrag von Gockel67 - Juni 01, 2026, 12:13:05
Moin Gemeinde,

ich hab mir aus dem Internet einen Code gezogen um zu Scannen. Funktioniert auch ohne Probleme.
Leider schaffe ich es nicht die Auflösung auf 600x600 dpi einzustellen.

Könnte mir dabei bitte einer helfen?

Hier der Code:

Private Sub cmdScannen_click()

    Dim objDialog As Object
    Dim objDevice As Object
    Dim objItem As Object
    Dim objProperty As Object
       
    ' WIA Dialog- und Geräteobjekt erstellen
    Set objDialog = CreateObject("WIA.CommonDialog")
    Set objDevice = objDialog.ShowSelectDevice(wiascannerDeviceType, False, False)

    ScannenUndSpeichern "D:\Scan.jpg"

End Sub

Public Function ScannenUndSpeichern(strDateiname As String)
     Dim objCommonDialog As WIA.CommonDialog
     Dim objImage As WIA.ImageFile
     Set objCommonDialog = New WIA.CommonDialog
     Set objImage = objCommonDialog.ShowAcquireImage
     If Not objImage Is Nothing Then
         objImage.SaveFile strDateiname
         Set objImage = Nothing
     End If
     Set objCommonDialog = Nothing
End Function

Alternativ: Wäre es möglich im Wia-Dialog 'Benutzerdefinierte Einstellungen' per VBA anzuklicken?

Wünsche allen eine schöne Woche
Jörg