Zum Inhalt springen

Probleme beim Vergleich von Ordnernamen


Mrfivejunior

Empfohlene Beiträge

Hallo zusammen,

ich brauch wieder einmal eure Hilfe.

Ich habe ein Formular, über das ich über einen Button in einen Windows-Ordner springen und dort dann Bilder abzuspeichern bzw. anzusehen kann. Der Computer springt automatisch in den Ordner, der den gleichen Namen des Datensatz hat. Der Datensatz besitzt eine QM-Nr. und der Ordner wird gleich genannt. Die QM-Nr. ist wie folgt aufgebaut: Zuerst die „08“ für das aktuelle Jahr und dann die „001“, „002“, „003“… für den Auftrag; Folglich also „08001“, „08002“, 08003“

Bis jetzt funktioniert auch alles wunderbar, doch nun soll ich einen Altbestand von ca. 1000 Ordnern einbinden, deren Namen zwar mit der QM-Nr. beginnen aber danach noch etwas folgt (z.B. „01005 Pleuel“ ).

Mein jetziger Code ist:

Private Sub Befehl37_Click()

Dim Pfad As String

Pfad = "D:\Tobias\" & Me.QM_Nr

If Dir(Pfad, vbDirectory) <> "" Then

Me.Application.FollowHyperlink Pfad

Else

MkDir (Pfad)

Me.Application.FollowHyperlink Pfad

End If

End Sub

Gibt es eine Möglichkeit, dass der Computer nicht den kompletten Ordnernamen vergleicht sondern nur die ersten fünf Stellen heranzieht??

Bitte um eure Hilfe.

Schon mal Danke.

Gruß Tobias

PS:Ich verwende Access 07

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi Reinhold,

des hab ich auch schon ausprobiert, aber so funktiert es irgendwie nicht.

Er erzeugt trotzem den neuen Ordner "08112" und geht nicht in den schon vorhandenen Ordner "08112 Pleuel".

Ich habs auch schon mit

Pfad = "D:\Tobias\" & left(Me.QM_Nr, 5) & "*"

versucht, aber da kommt dann der folgende Fehler:

"Laufzeitfehler 490: Die angegebene Datei konnte nicht geöffnet werden."

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi Reinhold,

des hab ich auch schon ausprobiert, aber so funktiert es irgendwie nicht.

Er erzeugt trotzem den neuen Ordner "08112" und geht nicht in den schon vorhandenen Ordner "08112 Pleuel".

Ich habs auch schon mit

Pfad = "D:\Tobias\" & left(Me.QM_Nr, 5) & "*"

versucht, aber da kommt dann der folgende Fehler:

"Laufzeitfehler 490: Die angegebene Datei konnte nicht geöffnet werden."

Ah, verstehe. Das wird so auch nix. Du kannst somit lediglich in einer Schleife über alle Verzeichnisse prüfen, welche alle mit deinen 5 Zeichen anfangen. Aus den Treffern kannst du dann eine Auswahl erzeugen.

Es kann ja theoretisch unendlich viele Verzeichnisse geben, die mit diesen 5 Zeichen anfangen und du kannst definitv nur in genau eins wechseln.

hth

Reinhold

Link zu diesem Kommentar
Auf anderen Seiten teilen

Moin,

probier es mal so: (ACHTUNG, wie immer ungetestet):


Private Sub Befehl37_Click()

    Dim Pfad As String, Ordner As String


    Pfad = "D:\knurpsel\" & Me.QM_Nr & "*"

    If Dir(Pfad, vbDirectory) <> "" Then

        Ordner = Dir(Pfad, vbDirectory)

        Application.FollowHyperlink Ordner

    End If

End Sub

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

Wenn ich nun aber deinen Code verwende kommt, dass ein Sicherheitsrisiko besteht. Ich hab da mal ein screenshot angefügt:

post-45193-14430447891488_thumb.jpg

Wenn ich dann auf "Ja" geh, kommt der gleiche Fehler wie oben: Laufzeitfehler 490.

Wenn ich auf "Nein" geh, kommt: "Laufzeitfehler 16388: Der Hyperlink kann nicht zum Ziel verfolgt werden."

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn ich dich richtig verstehe, dann willst du doch nur den Ordner öffnen? Also ohne jede Interaktion mit Access? Dann gehts so:


Private Sub OpenOrdner()

    Dim Pfad As String, PfadUndOrdner As String, Ordner As String


    Pfad = "C:\Programme\"

    PfadUndOrdner = Pfad & Me!QM_Nr & "*"

    If Dir(PfadUndOrdner, vbDirectory) <> "" Then

        Ordner = Dir(PfadUndOrdner, vbDirectory)

        Shell "explorer.exe " & Pfad & Ordner, vbNormalFocus

    End If

End Sub

Den Rest kriegst du ja jetzt hin, oder?

Reinhold

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Reinhold,

danke für die deine Lösung.

Ich hab nun folgenden Code geschrieben:

Public Function BilderOrdnerSuchenOeffnen()

Dim Pfad As String

Dim PfadUndOrdner As String

Dim Ordner As String


Pfad = DLookup("pfad", "aageji_pfade", "pfadid = 60")

PfadUndOrdner = Pfad & Forms!frmstammdaten![QM-Nr] & "*"


If Dir(PfadUndOrdner, vbDirectory) <> "" Then

      Ordner = Dir(PfadUndOrdner, vbDirectory)

      Shell "explorer.exe " & Pfad & Ordner, vbNormalFocus

Else

      MkDir (Pfad & Forms!frmstammdaten.[QM-Nr])

      Forms!frmstammdaten.Application.FollowHyperlink (Pfad & Forms!frmstammdaten.[QM-Nr])

End If

End Function

Und den Pfad hab ich in einer Tabelle hinterlegt, da ich mehere Pfade haben werden.

Nochmals Danke für deine Hilfe.

Gruß Tobias

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Wochen später...

Hallo zusammen,

ich bins nochmal zum gleichen Thema. Es ist ein weiteres Problem in diesem Zusammenhang aufgetreten.

Es besteht folgendes Problem:

Wenn der Ordner Name "08015 Pleuel" heißt funktioniert alles wunderbar, wenn nun aber der Ordner den Namen "08015 Pleuel, Oberschalle" hat geht die Funktion nicht mehr. Es kommt dann der Fehler: Der Pfad Oberschalle ist nicht vorhanden oder verweist auf kein Verzeichnis.

Muss ich folglich alle Ordner umbennen und alle Ordnernamen ohne "Komma" schreiben, oder gibt es da einen anderen Weg um mein Problem zu lösen.

Alle Ordner umzubenennen würde für mich einen sehr großen Aufwand bedeuten, da es um die 2000 Ordner gibt, die fast alle ein Komma in ihrem Ordnernamen haben.

Bitte um Hilfe.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...