Neuigkeiten:

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

Mobiles Hauptmenü

FileSearch-Ersatz in Acc97-2003

Begonnen von Barrabas, März 24, 2009, 13:02:35

⏪ vorheriges - nächstes ⏩

Barrabas

Hallo,

wie Ihr vielleicht schon festgestellt habt, laufen Anwendungen der Acc-Versionen 2000-2003 nicht mehr, wenn diese das Application.FileSearch - Object benutzen.  >:(
Aus diesem Grunde habe ich einen VB-Quellcode, den ich auf http://www.activevb.de gefunden habe, an Acc2000 angepasst.

Leider habe ich keinen Rechner, auf dem Acc2007 (und nur dieses) installiert.
Ich bitte diejenigen unter Euch, die Acc2007 haben, meinen Code zu testen.

Ich habe für alle Antworten ein offenes Ohr.

Mangels Zeit, konnte ich die Routinen nicht so erweitern, dass auch Selektionen auf bestimmte Dateiendungen durchgeführt werden können.

Wer den Code, um diese Funktion erweitert, sollte den mal hochladen.

Die Demo ist im Downloadbereich.

Hondo

#1
und wo ist der Code?
Na im Downloadbereich ::)

Habs eben unter Vista mit Access 2007,  wo keine anderes Office installiert ist, getestet.
Funktioniert einwandfrei nach dem ich einen Verweis auf die OLE Automation entfernt hatte, den mir Access 2007 automatisch wohl einfügte.

Gruß Andreas

Barrabas

Hallo,

nee, den habe ich vergessen rauszunehmen. ;D
ZitatVerweis auf die OLE Automation
Mich wundert aber, warum so wenige antworten, denn keine Acc-Anwendung ab Acc-2000-2003 läuft unter Acc-2007 wenn sie das Objekt FileSearch ansprechen. ???

Hondo

Ich denke dass nur ganz wenige Anwender Objekt FileSearch verwenden/kennen.

Gruß Andreas

raist100

#4
Zitat
Mich wundert aber, warum so wenige antworten, denn keine Acc-Anwendung ab Acc-2000-2003 läuft unter Acc-2007 wenn sie das Objekt FileSearch ansprechen

Öhem ... wieso wundert Dich das? Ist doch eine alt bekannte Tatsache das FileSearch seit 2007 nicht mehr existiert.

Muss man halt FSO nutzen, das funzt auch zuverlässig unter 2007.

EDIT: Habe die Test-DB geladen und probiert. Ohne Konvertierung in 2007 Format läuft sie problemlos. Wird nach 2007 konvertiert dann geht nix mehr. Z.B. mag 2007 die Deklaration Dim FD As Folder mal gar nicht, Abänderung in FD As Object schafft Abhilfe.Allerdings gibt es dann weitere Probleme beim DAO Zugriff. Fazit: In 2007 öffnen und laufen lassen funzt prima, konvertieren in Acc2007 Format ist keine gute Idee. ^^

Hatte auch kein Verweisproblem wie ein Vorredner berichtete.

Gruß

Rainer

blackoutNO

Hi,

bei mir hat es sowohl vor, als auch nach der Konvertierung bestens geklappt.

Gruß, Jörn
Cheers
Jörn

Jonny

Hallo,
ich habe eine alte Routine mit der ich Dateinamen ermittel.
Die klappte schon unter 97 und läuft noch unter 2007.

Aber jetzt habe ich das Problem, dass ich nicht den Dateinamen haben möchte sondern nur den Pfad.

Das geht leider nicht weil ich immer bis zum Dateinamen durchgehen muss.

Kann mir da jemand helfen?

Hier mein Code:

Option Compare Database
Option Explicit

Declare Function GetOpenFileName Lib "comdlg32.dll" _
        Alias "GetOpenFileNameA" (pOpenfilename As _
        OPENFILENAME) As Long

Type OPENFILENAME
    lStructSize As Long
    hwndOwner As Long
    hInstance As Long
    lpstrFilter As String
    lpstrCustomFilter As String
    nMaxCustFilter As Long
    nFilterIndex As Long
    lpstrFile As String
    nMaxFile As Long
    lpstrFileTitle As String
    nMaxFileTitle As Long
    lpstrInitialDir As String
    lpstrTitle As String
    Flags As Long
    nFileOffset As Integer
    nFileExtension As Integer
    lpstrDefExt As String
    lCustData As Long
    lpfnHook As Long
    lpTemplateName As Long
End Type
Public Const OFN_FILEMUSTEXIST = &H1000
Public Const OFN_READONLY = &H1
Public Const OFN_HIDEREADONLY = &H4

Public Function DateiOeffnen(Optional Titel, Optional Filter, Optional DefExtension, _
                             Optional AktDir) As String

    Dim strDateiname As String
    Dim strDlgTitel As String
    Dim strFilter As String
    Dim strDefExtension As String
    Dim strAktDir As String
    Dim strNull As String
    Dim OpenDlg As OPENFILENAME

    strNull = Chr$(0)

    strDateiname = String$(512, 0)

    If IsMissing(Titel) Then
        strDlgTitel = "Datei öffnen" & strNull
    Else
        strDlgTitel = Titel & strNull
    End If

    If IsMissing(Filter) Then
        strFilter = "Alle Dateien" & strNull & "*.*" & strNull & strNull
    Else
        strFilter = Filter & strNull
    End If

    If IsMissing(DefExtension) Then
        strDefExtension = strNull
    Else
        strDefExtension = DefExtension & strNull
    End If

    If IsMissing(AktDir) Then
        strAktDir = CurDir$ & strNull
    Else
        strAktDir = AktDir & strNull
    End If

    With OpenDlg
        .lStructSize = Len(OpenDlg)
        .hwndOwner = Screen.ActiveForm.hWnd
        .lpstrFilter = strFilter
        .nFilterIndex = 1
        .lpstrFile = strDateiname
        .nMaxFile = Len(strDateiname)
        .lpstrInitialDir = strAktDir
        .lpstrTitle = strDlgTitel
        .Flags = OFN_FILEMUSTEXIST Or OFN_READONLY
        .lpstrDefExt = strDefExtension
        If GetOpenFileName(OpenDlg) <> 0 Then
            DateiOeffnen = Left$(.lpstrFile, InStr(.lpstrFile, strNull) - 1)
        Else
            DateiOeffnen = ""
        End If
    End With

End Function

Gruß
Jonny

beluga

Ich möchte mich ganz herzlich bedanken, bei mir Funktionierte es Tipp-Top, aber....

Ja auch bei mir funktioniert es nicht mehr wenn ich nach ACC 2007 konvertiere.
Das Lustige daran, auf meinem neuen PC mit Office 10 klappt es Tipp-Top auch nach dem konvertieren.

Also zwinge ich meine Kunden zu einem Update auf Office 10  ;)

ganz lieben Dank für dieses Thema...

database

Hallo beluga,

ZITAT von HONDO in Beitrag #1
ZitatFunktioniert einwandfrei nach dem ich einen Verweis auf die OLE Automation entfernt hatte, den mir Access 2007 automatisch wohl einfügte

Hast du das ganz oben im 2. Beitrag gelesen und nachgesehen?

Grüße
Peter

Hondo

Hallo,
der Betreff ist vieleicht etwas verwirrend, da filesearch bis 2003 noch funktioniert. Das gilt übrigends für alle Office-VBAs, also auch für Excel und Word.
Unter Office-Lösung.de ist ein guter Beitrag mit Ersatzmodul.
http://www.office-loesung.de/ftopic148247_0_0_asc.php

Mir hats geholfen ;)
Gruß Andreas

Ivo