August 10, 2020, 08:19:24

Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!


Access Button spezielle Abfrage

Begonnen von Black Sabbath, April 01, 2016, 15:41:46

⏪ vorheriges - nächstes ⏩

Black Sabbath

Guten Tag zusammen,

ich habe eine Datenbank erstellt, in der verschiedne Informationen über Bearbeitungsmaschinen stehen. Desweiteren ist in jeder Zeile ein Button, der eine entsprechende Datei zu der Maschine öffnet. Der Button öffnet die Datei über einen Hyperlink, der in der Tabelle gespeichert ist.


Private Sub Befehl52_Click()
Application.FollowHyperlink Me!Datei
End Sub


Das Problem bei der ganzen Sache ist, dass erstens der Dateipfad sehr lang ist und zweitens, sobald jemand den Ordner verschiebt, z.B. in einen anderen Unterordner, sind über 300 Hyperlinks da, die nicht mehr funktionieren.

Ich würde gerne meine Datenbank in einen Ordner mit den dazugehörigen Word, Excel, PDF, etc. Dokumenten speichern und den Code so gestalten, dass er mir immer die Datei mit dem Dateinamen in dem gleichem Ordner wo ich mich befinde öffne. Ist das möglich? Wenn ja, kann mir jemand dabei helfen?

Wie gesgat, zur Zeit habe ich im Formular einen Button, der über den oben gennanten Code den jeweiligen Hyperlink aus der zeile öffnet. Jede Zeile in meiner Datenbank hat eine laufenden Nummer (ID). Vielleicht kann man es so einstellen, dass er nach der Datei mit gleichen Namen in der Spalte im Ordner sucht und öffnet. Dann würde ich keinen Hyperlink mehr benötigen.



Wie im Bild hier zu sehen ist, habe ich ganz links meine ID's. Alle verknüften Dateien haben den gleichen Namen. Nur die Endung ändert sich (doc, docx, pdf, xlsx....). Hat jemand eine Idee wie ich es umsetzen kann oder besser, hat jemand schon mal sowas ähnliches erstellt?.

Vielen Dank im Voraus  :)

MaggieMay

Hallo,

den aktuellen Pfad bekommst du über CurrentProject.Path, aber woher willst du den Dateityp nehmen?
Kann ein Datensatz mehrere Anlagen haben?

Den oder die konkreten Dateinamen kannst du mit Hilfe der Dir-Funktion ermitteln:
Dim strDatei As String
strDatei = Dir(CurrentProject.Path & "\" & Me!ID & ".*")
Do While strDatei <> ""
    Debug.Print strDatei
    strDatei = Dir
Loop
Freundliche Grüße
MaggieMay

Black Sabbath

Hallo, erst mal danke für die Antowrt, freue mich über jede Hilfe :)

Nein, jeder Datensatz hat nur eine Anlage. Nur die Dateiebndung variiert. Manchmal ist es ein PDF Dokument, machmal ein Word Dokument etc. was er öffnen soll.

Ich brauche im Prinzip ein Verfahren, welches den Namen aus der ID nimmt und ihn dann in dem ordner sucht wo auch die Datenbank gespeichert ist.

MaggieMay

Genau das macht der oben gezeigte Code, die Schleife kannst du ja weglassen.
Freundliche Grüße
MaggieMay

Black Sabbath

ok, danke ich versuch es mal :) Vielen Dank schon mal

Black Sabbath

Zitat von: MaggieMay am April 01, 2016, 16:03:17
Genau das macht der oben gezeigte Code, die Schleife kannst du ja weglassen.


Funktioniert leider nicht. Einen Fehler gibt er mir auch nicht raus  :o

MaggieMay

Was genau funktioniert nicht, was erwartest du was der Code tut?
Und wie sieht der aktuelle Code bei dir aus?
Freundliche Grüße
MaggieMay

Black Sabbath

April 07, 2016, 09:29:27 #7 Letzte Bearbeitung: April 07, 2016, 09:42:39 von Black Sabbath
Hab es geschaft

Private Sub Befehl52_Click()
Dim strDatei As String
strDatei = Dir(CurrentProject.Path & "\" & Me!ID & ".*")
FollowHyperlink strDatei
End Sub


Da ist jedoch noch ein lästiges Ding was mich stört und zwar beim Anklicken erscheint folgendes:



Kann man es per VBA deaktievieren?



MaggieMay

Hallo,

was passiert, wenn du den vollständigen Pfad angibst, also CurrentProject.Path & "\" & strDatei ?

Alternativ könntest du die Datei mit Shell bzw. ShellExecute öffnen.
Freundliche Grüße
MaggieMay

DF6GL

Hallo,

es lohnt sich auch, die Sicherheitseinstellungen (Vertrauenswürdige Speicherorte etc.)  zu überprüfen...

und z. B. dies anzusehen:

http://www.wintotal.de/tipparchiv/?id=1155

Black Sabbath

April 07, 2016, 10:37:55 #10 Letzte Bearbeitung: April 07, 2016, 10:54:16 von Black Sabbath
Das habe ich schon gemacht, ich habe den Speicherort als Sicher in den Optionen markiert, jedoch habe ich den blöden Hinweis immer noch.

Außerdem macht es keinen Sinn etwas in der Registry zu ändern, da die Datei an mehreren Rechnern genutzt wird. Ich müsste dann an jedem Rechner diesen Schritt durchführen.

Black Sabbath

Zitat von: MaggieMay am April 07, 2016, 10:19:39
Hallo,

was passiert, wenn du den vollständigen Pfad angibst, also CurrentProject.Path & "\" & strDatei ?

Alternativ könntest du die Datei mit Shell bzw. ShellExecute öffnen.


Ich habe es schon mit Shell probiert

Shell Dir(CurrentProject.Path & "\" & Me!ID & ".*")

dann sagt er mit, datei nicht gefunden. Ich denke ich übersehe da etwas....

atom007

Ändere deine Sub mal folgendermaßen ab:


Dim strDatei As String
strDatei = CurrentProject.Path & "\" & Me!ID & ".*"
MsgBox strDatei


...und du siehst den Fehler. Da Windows keine Datei mit .* kennt wird es die Datei auch nicht öffnen. Kannst du in die ID - Spalte auch den kompletten Datei-Namen eingeben, oder soll/muss das so bleiben?

Black Sabbath

Er soll mir ja eine Datei öffnen beliebeiger Endung. Ich habe ja auch in dem Ordner PDF und Excel Dokumente vorhanden, allerdings hat keine Datei den gleichen Namen. Es soll schon so sein, dass in der Tabelle nur die Namen der ID stehene, keine Endungen.

Black Sabbath

Zitat von: MaggieMay am April 07, 2016, 10:19:39
Hallo,

was passiert, wenn du den vollständigen Pfad angibst, also CurrentProject.Path & "\" & strDatei ?


Wunderbar, top!!!

Private Sub Befehl52_Click()
Dim strDatei As String
strDatei = Dir(CurrentProject.Path & "\" & Me!ID & ".*")
FollowHyperlink CurrentProject.Path & "\" & strDatei
End Sub


so klappt es, danke für den Tipp!
Alternativ könntest du die Datei mit Shell bzw. ShellExecute öffnen.