Office: Einfache Datenbank zum Suchen und Öffnen von Dokumentdateien

Helfe beim Thema Einfache Datenbank zum Suchen und Öffnen von Dokumentdateien in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo Office-Gemeinde, ich bin komplett neu hier, Newbie im Bereich Access-Datenbanken, und möchte mich an einem kleinen Projekt versuchen - in der... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von BM22, 8. Februar 2023.

  1. BM22 Neuer User

    Einfache Datenbank zum Suchen und Öffnen von Dokumentdateien


    Hallo Office-Gemeinde,

    ich bin komplett neu hier, Newbie im Bereich Access-Datenbanken, und möchte mich an einem kleinen Projekt versuchen - in der Hoffnung, dass das so überhaupt realisierbar ist.

    Ausgangslage: In einem Verzeichnis liegen PDF- und Word-Datei-Paare mit jeweils dem gleichen Dateinamen, z.B. 12345678.pdf bzw 12345678.docx.

    Ziel: Nach Eingabe einer solchen Dateibezeichnung (z.B. 12345678) in ein Suchfeld soll das jeweilige gleichheißende Dateipaar automatisch und gleichzeitig mit dem für den Dateityp registrierten Programm (Acrobat Reader/MS Word) geöffnet werden.
    Bei Falscheingabe/nicht vorhander Dateibezeichnung sollte idealer Weise ein Hinweis kommen.

    Wäre so etwas machbar? Falls ja, wie wären die ersten Schritte zur Einrichtung einer entsprechenden Datenbank?

    Danke und Gruß
    BM22
     
  2. Doming
    Doming hat Ahnung
    Moin BM22
    warum willst Du dafür eine Datenbank bauen? Hast Du mit den Dateilisten noch was vor?
    Geht das nicht mit Excel? (Deine bisherigen Anforderungen schon)
    Gruß
    Doming
     
  3. BM22 Neuer User
    Hi Doming,
    nee, mit der Dateiliste vorerst nicht mehr als das.
    Eine Luxusfunktion wäre ggf. noch, dass ursprünglich nur die PDF-"Version" der Datei existiert und beim Suchen und Öffnen von dieser dann automatisch eine neue Docx erstellt und geöffnet wird (so noch nicht vorhanden).
    Mit Excel hatte ich schon etwas rumprobiert, mich dann aber irgendwo bei den Makros/VB verstrickt.
    Gerne auch Excel als Lösung, wenn das dort einfach machbar und auch optisch mit einer Art Eingabemaske oder so realisierbar wäre... aber das ist dann hier ja sicher das falsche Unterforum...
     
  4. Exl121150 Erfahrener User

    Einfache Datenbank zum Suchen und Öffnen von Dokumentdateien

    Hallo,

    in der beiliegenden Excel-Datei habe ich dir im Codemodul des Arbeitsblattes "Tabelle1" das folgende ereignisgesteuerte Makro eingefügt:
    Code:
    Private Sub Worksheet_Change(ByVal Target As Range)
       If Intersect(Target, Me.Range("B5")) Is Nothing Then Exit Sub
      
       'Nur wenn Target (sich ändernde Zelle) in B5
      
       Dim Pfad As String, Datei As String
       Dim DateiPDF As String, DateiDOC As String
       Dim strMsg As String, ctMsg As Integer, Msg() As String
      
       With Me
         Pfad = .Range("A4").Value   'Pfad in Zelle A4
         Datei = .Range("B5").Value  'Dateiname in Zelle B5
       End With
       DateiPDF = Pfad & "\" & Datei & ".PDF"  'PDF-Datei  samt Pfad
       DateiDOC = Pfad & "\" & Datei & ".DOCX" 'DOCX-Datei samt Pfad
      
       strMsg = ""
       If Len(Dir(DateiPDF)) Then
          'Die PDF-Datei wird im Acrobat-Reader geöffnet
          ActiveWorkbook.FollowHyperlink DateiPDF
       Else
          strMsg = strMsg & DateiPDF & vbNewLine
       End If
       If Len(Dir(DateiDOC)) Then
          'Die DOCX-Datei wird in MS-Word geöffnet
          ActiveWorkbook.FollowHyperlink DateiDOC
       Else
          strMsg = strMsg & DateiDOC & vbNewLine
       End If
      
       If Len(strMsg) Then
          'Mindestens eine der beiden Dateien konnte nicht geöffnet werden.
          Msg = Split(strMsg, vbNewLine): ctMsg = UBound(Msg)
          If ctMsg = 2 Then
             strMsg = "Die Dateien" & vbNewLine & strMsg & "konnten" ' nicht geöffnet werden."
          Else
             strMsg = "Die Datei" & vbNewLine & strMsg & "konnte" ' nicht geöffnet werden."
          End If
          strMsg = strMsg & " nicht gefunden/geöffnet werden."
          MsgBox Prompt:=strMsg, Title:="Nicht gefundene Datei" & IIf(ctMsg = 2, "en", "")
       End If
      
    End Sub
    

    Dieses Makro erwartet den Dateipfad in der Zelle A4 und den Dateinamen (ohne PDF bzw. DOCX) in Zelle B5.
    Sobald sich der Zellinhalt von B5 ändert, startet das Makro und zeigt den Dateinamen von Zelle B5 einerseits im Acrobat-Reader (PDF-Datei) als auch als Word-Datei (DOCX-Datei) an.
    Fehlt jedoch die PDF-Datei bzw. die DOCX-Datei (oder auch beide), weist ein MsgBox-Fenster auf diesen Umstand hin.
     
    Exl121150, 8. Februar 2023
    #4
    1 Person gefällt das.
  5. BM22 Neuer User
    Moin Exl,
    danke für den Aufwand und die Superarbeit!
    Werde mich gleich mal dranmachen und gucken, wie ich das zum Laufen kriege! :-)
     
  6. BM22 Neuer User
    Danke noch mal, Exl - das funktioniert super! :-)

    Hätte zusätzlich ein Luxusfrage: Könnte man das Ganze auch noch so erweitern, dass bei Suche und Start einer PDF - sollte noch keine namensgleiche DOCX-Datei im Verzeichnis liegen - statt der Fehlermeldung jetzt vom Script eine entsprechende neue leere DOCX mit dem Namen der PDF im Verzeichnis angelegt und geöffnet wird?

    Danke und VG,
    BM22
     
  7. Exl121150 Erfahrener User
    Hallo,

    ich habe das Makro in der beiliegenden Datei angepasst.
     
    Exl121150, 10. Februar 2023
    #7
  8. BM22 Neuer User

    Einfache Datenbank zum Suchen und Öffnen von Dokumentdateien

    Vielen Dank schon mal!
    Nach dem ersten Test macht das Makro aber noch genau das Gleiche -> bei fehlender DOCX kommt die Meldung und Word öffnet sich nicht...Muss da im Makro/Modul noch was angepasst werden?
     
  9. Exl121150 Erfahrener User
    Hallo,
    nein.
    Aber nach deinen Vorgaben muss Excel zuerst eine existierende PDF-Datei finden - Falls dann kein namensgleiches Word-Dokument vorliegt, soll Word gestartet werden und ein leeres Word-Dokument unter diesem Namen gespeichert werden. Es erscheint eine modifizierte Meldung, dass das Word-Dokument, da es nicht gefunden wurde, als "=leeres Dok." geöffnet wurde.
    Dieser Vorgang kann etwas dauern, je nachdem wie deine Konfiguration aussieht.
    Code:
    '....
    Prüfe_auf_DOC_Datei:
       If Len(Dir(DateiDOC)) Then
          'Die DOCX-Datei wird in MS-Word geöffnet
          ActiveWorkbook.FollowHyperlink DateiDOC
       Else
         'WinWord starten mit neuem, leerem Word-Dokument
          If WordDokument(DateiDOC) Then
             strMsg = strMsg & DateiDOC & " = leeres Dok." & vbNewLine
             GoTo Prüfe_auf_DOC_Datei
          Else
             strMsg = strMsg & DateiDOC & vbNewLine
          End If
       End If
    '....
    

    wobei der Funktionsaufruf "WordDokument(DateiDOC)" in folgender benutzerdef.Funktion enthalten ist:
    Code:
       '
       'WinWord starten mit neuem, leerem Word-Dokument
       '
    Function WordDokument(DateiPfadName As String) As Boolean
    
       Dim wApp As Object  'New Word.Application
       Dim wDoc As Object  'Word.Document
     
       WordDokument = False
       On Error GoTo Exit_Word
       Set wApp = CreateObject("Word.Application")    'Instanz der WinWord-Anwendung
     
       Set wDoc = wApp.Documents.Add(Visible:=True)   'Worddokument ("leeres" Dok.)
       wDoc.SaveAs2 Filename:=DateiPfadName           'wird in Datei gespeichert
       wDoc.Close                                     'Worddokument wird geschlossen
       WordDokument = True
     
    Exit_Word:
       wApp.Quit                                      'Word-Instanz wird beendet und
       Set wApp = Nothing                             'Garbage-Collection im Heap wird ermöglicht.
     
    End Function
    
     
    Exl121150, 10. Februar 2023
    #9
  10. BM22 Neuer User
    Hmm - es erscheint exkat die gleiche Meldung wie vor der Modifikation, und Word öffnet auch nach Warten nicht.
    Hier mal das Bild bei vorhandener 1492010.pdf (diese öffnet), dann die Meldungsbox wie gehabt wegen der fehlenden DOC-Datei:
    Einfache Datenbank zum Suchen und Öffnen von Dokumentdateien Meldung.jpg

    Mehr passiert nicht... (?)
     
  11. Exl121150 Erfahrener User
    Hallo,

    das kann ich nicht nachvollziehen. Es muss ferner die Meldung in der Messagebox lauten:
    Die Datei
    C:\Artikel_DB\1492010.DOCX = leere Dok.
    konnte nicht gefunden/geöffnet werden.

    Im Folgenden nochmal die VBA-Programme, die im Codemodul des aktiven Arbeitsblattes enthalten sein müssen:
    Code:
    Option Explicit
    
    Private Sub Worksheet_Change(ByVal Target As Range)
       If Intersect(Target, Me.Range("B5")) Is Nothing Then Exit Sub
     
       'Nur wenn Target (sich ändernde Zelle) in B5
     
       Dim Pfad As String, Datei As String
       Dim DateiPDF As String, DateiDOC As String
       Dim strMsg As String, ctMsg As Integer, Msg() As String
     
       With Me
         Pfad = .Range("A4").Value   'Pfad in Zelle A4
         Datei = .Range("B5").Value  'Dateiname in Zelle B5
       End With
       DateiPDF = Pfad & "\" & Datei & ".PDF"  'PDF-Datei  samt Pfad
       DateiDOC = Pfad & "\" & Datei & ".DOCX" 'DOCX-Datei samt Pfad
       strMsg = ""
    
    Prüfe_auf_PDF_Datei:
       If Len(Dir(DateiPDF)) Then
          'Die PDF-Datei wird im Acrobat-Reader geöffnet
          ActiveWorkbook.FollowHyperlink DateiPDF
       Else
          strMsg = strMsg & DateiPDF & vbNewLine
       End If
     
    Prüfe_auf_DOC_Datei:
       If Len(Dir(DateiDOC)) Then
          'Die DOCX-Datei wird in MS-Word geöffnet
          ActiveWorkbook.FollowHyperlink DateiDOC
       Else
         'WinWord starten mit neuem, leerem Word-Dokument
          If WordDokument(DateiDOC) Then
             strMsg = strMsg & DateiDOC & " = leeres Dok." & vbNewLine
             GoTo Prüfe_auf_DOC_Datei
          Else
             strMsg = strMsg & DateiDOC & vbNewLine
          End If
       End If
     
    Prüfe_auf_Message:
       If Len(strMsg) Then
          'Mindestens eine der beiden Dateien konnte nicht geöffnet werden.
          Msg = Split(strMsg, vbNewLine): ctMsg = UBound(Msg)
          If ctMsg = 2 Then
             strMsg = "Die Dateien" & vbNewLine & strMsg & "konnten" ' nicht geöffnet werden."
          Else
             strMsg = "Die Datei" & vbNewLine & strMsg & "konnte" ' nicht geöffnet werden."
          End If
          strMsg = strMsg & " nicht gefunden/geöffnet werden."
          MsgBox Prompt:=strMsg, Title:="Nicht gefundene Datei" & IIf(ctMsg = 2, "en", "")
       End If
     
    End Sub
       '
       'WinWord starten mit neuem, leerem Word-Dokument
       '
    Function WordDokument(DateiPfadName As String) As Boolean
    
       Dim wApp As Object  'New Word.Application
       Dim wDoc As Object  'Word.Document
     
       WordDokument = False
       On Error GoTo Exit_Word
       Set wApp = CreateObject("Word.Application")    'Instanz der WinWord-Anwendung
     
       Set wDoc = wApp.Documents.Add(Visible:=True)   'Worddokument ("leeres" Dok.)
       wDoc.SaveAs2 Filename:=DateiPfadName           'wird in Datei gespeichert
       wDoc.Close                                     'Worddokument wird geschlossen
       WordDokument = True
     
    Exit_Word:
       wApp.Quit                                      'Word-Instanz wird beendet und
       Set wApp = Nothing                             'Garbage-Collection im Heap wird ermöglicht.
     
    End Function
    
     
    Exl121150, 11. Februar 2023
    #11
    1 Person gefällt das.
  12. BM22 Neuer User
    Danke für die Mühe, aber immer noch das Gleiche. :-(
    Die modifizierte Variante funktioniert quasi genauso wie die erste. Der Code steht exakt so drinnen; ich habe den auch noch mal in beide frisch runtergeladenen Versionen reingepackt - unverändert.
    Kann es sein, dass meine Excelversion (noch 2007) damit ein Problem hat? Oder irgendeine Einstellung dazwischenfunkt?

    Hatte die .xlsm beide zum Testen erstmal so gelassen, wie sie waren (Ergebnis immer wie oben).
    Dann schon mal ein Formular gebaut mit Suchfeld, gesperrten Zellen, gewünschter Größe etc., so, wie's eigentlich mal aussehen soll - das funktioniert alles, aber immer nur nach der ursprünglichen Version.

    So'n Mist, das Problem kann ja nur eine Kleinigkeit sein...
     
  13. BM22 Neuer User

    Einfache Datenbank zum Suchen und Öffnen von Dokumentdateien

    Moin,
    des Rätsels Lösung: der zweite Teil funktioniert nicht unter Excel 2007 (Check auf zwei Rechner). Test unter 2010: sofort.
    Danke noch mal an Exl für die Mühe!
     
  14. BM22 Neuer User
    Hallo!
    Habe alles noch etwas angepasst und ein geschütztes Eingabeformular erstellt, das in definierter Größe und Position startet, alles funktioniert soweit auch super.
    Was nur vom Handling einen Tick umständlich ist: das Word öffnet immer exakt in gleicher Fenstergröße hinter dem Excel-Fenster (die PDF im Acrobat Reader in Vollbild vor allem, das ist ok so) und muss extra vorgefischt werden...
    Kann man das Word zwingen, in Vollbild oder bestimmter Größe und Position (ggf. auf zweitem Monitor) zu öffnen?
    Entsprechende Fenstereinstellungen über ein Word-Makro funktionieren zwar, aber nur bei manuellem Solostart von Word - bei Aufruf über das Excel-Makro nicht, dort immer wie oben beschrieben...
    Danke und VG, bm22
     
Thema:

Einfache Datenbank zum Suchen und Öffnen von Dokumentdateien

Die Seite wird geladen...
  1. Einfache Datenbank zum Suchen und Öffnen von Dokumentdateien - Similar Threads - Einfache Datenbank Öffnen

  2. kleines Fenster "(Strg)" geht einfach nicht weg!!!

    in Microsoft Word Hilfe
    kleines Fenster "(Strg)" geht einfach nicht weg!!!: Hallo, immer wieder kommt dieses kleine beschi**ene Fenster, wenn ich etwas einfüge. Dann direkt da, wo ich weiter schreiben will. Es ist zum ausrasten!!! Any help???
  3. Markieren einer kompletten Textzeile durch einfaches Anklicken möglich?

    in Microsoft Word Hilfe
    Markieren einer kompletten Textzeile durch einfaches Anklicken möglich?: Hallo zusammen, für eine Programmierung benötige ich viele einzelne Kommandozeilen, die ich von einem Word Dokument dann copy&paste benutze. Jedoch muss ich immer die Zeile aufwendig mit der Maus...
  4. 720xformel Kopieren gehts nicht einfacher ?

    in Microsoft Excel Hilfe
    720xformel Kopieren gehts nicht einfacher ?: Hallo Leute Ich hoffe hier findet sich jemand der mir Helfen kann. Folgendes habe dieses Makro Range("FQZ10:GSQ10").AutoFill Destination:=Range("FQZ10:GSQ2500")...
  5. Intervalle in berührten Intervallen bestimmen: einfach und SPILL

    in Microsoft Excel Tutorials
    Intervalle in berührten Intervallen bestimmen: einfach und SPILL: Meine kurze =MAX(;MIN()-MAX()) aus 2012 ist sicherlich überall bekannt. C2: =MAX(;MIN(D$1;$B2+1)-MAX(C$1;$A2)) ___ ___ 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 2.1 6.7 _30 _28 _31 _30 _31 _30 __6 3.3 1.5...
  6. Anfänger Problem mit Tabelle

    in Microsoft Excel Hilfe
    Anfänger Problem mit Tabelle: Hallo an Alle. Ich hoffe es kann mir jemand Helfen. Mit null Ahnung von Excel versuche ich mir gerade eine Tabelle zu erstellen, um die tägliche und monatliche Menge meines Stromverbrauches, nach...
  7. Aus PDF importierte Daten einfach sortieren

    in Microsoft Excel Hilfe
    Aus PDF importierte Daten einfach sortieren: Hallo zusammen, ich bin relativ unbedarft und neu bei Excell. Wenn ich deshalb das bereits bestehende Thema nicht gefunden haben sollte: sorry. Ich habe ein Ausgabedokument (PDF) einer...
  8. Zeilenumbruch in einfacher Tabelle

    in Microsoft Word Hilfe
    Zeilenumbruch in einfacher Tabelle: Hallo zusammen, ich habe eine mehrseitige Tabelle (nicht verschachtelt), bei der jeweils einige Zeilen inhaltlich zusammengehören (zwischen 2 und 8 Zeilen). Zeilenumbrüche innerhalb einer...
  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