Mrfivejunior Geschrieben 13. April 2008 Teilen Geschrieben 13. April 2008 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Reinhold Geschrieben 13. April 2008 Teilen Geschrieben 13. April 2008 Moin, ... Pfad = "D:\Tobias\" & Me.QM_Nr ... Gibt es eine Möglichkeit, dass der Computer nicht den kompletten Ordnernamen vergleicht sondern nur die ersten fünf Stellen heranzieht?? ja, klar: ... Pfad = "D:\Tobias\" & left(Me.QM_Nr, 5) ... hth Reinhold Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Mrfivejunior Geschrieben 13. April 2008 Autor Teilen Geschrieben 13. April 2008 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." Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Reinhold Geschrieben 13. April 2008 Teilen Geschrieben 13. April 2008 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Mrfivejunior Geschrieben 14. April 2008 Autor Teilen Geschrieben 14. April 2008 Aso, aber ich hab definitiv immer nur einen Ordner, der zur entsprechenden QM-Nr. passen würde. Kann man dem Computer nicht den Befehl geben, dass er einfach den ersten passenden Ordener nimmt?? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Reinhold Geschrieben 14. April 2008 Teilen Geschrieben 14. April 2008 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Mrfivejunior Geschrieben 14. April 2008 Autor Teilen Geschrieben 14. April 2008 Hi, Wenn ich nun aber deinen Code verwende kommt, dass ein Sicherheitsrisiko besteht. Ich hab da mal ein screenshot angefügt: 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." Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Reinhold Geschrieben 15. April 2008 Teilen Geschrieben 15. April 2008 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Mrfivejunior Geschrieben 15. April 2008 Autor Teilen Geschrieben 15. April 2008 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Mrfivejunior Geschrieben 24. April 2008 Autor Teilen Geschrieben 24. April 2008 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Reinhold Geschrieben 25. April 2008 Teilen Geschrieben 25. April 2008 Moin, ich tippe mal darauf, dass du den Pfad in Anführungszeichen setzen solltest, also: Shell "explorer.exe " & chr(34) & Pfad & Ordner & chr(34), vbNormalFocus hth Reinhold Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Mrfivejunior Geschrieben 25. April 2008 Autor Teilen Geschrieben 25. April 2008 Danke. Habs so gemacht und funktioniert auch. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.