Aktualisierungsabfrage für ein Hyperlinkfeld

Moderator: ModerationP

Re: Aktualisierungsabfrage für ein Hyperlinkfeld

Beitragvon Bitsqueezer » 01. Sep 2021, 13:33

Hallo,

"FollowHyperlink" wäre ja auch der Wahnsinn, um das zu testen, weil Du JEDE Datei öffnen würdest bzw. JEDE Internetseite...

Wie Steffen schon gesagt hat, testet man einfach die Existenz der Datei.

Für Internet-Links kannst Du so eine Methode verwenden:
https://stackoverflow.com/questions/222 ... s-in-excel

Der Test würde hier allerdings vermutlich einige Zeit dauern, wenn es um viele Links geht. Bei Datei-Links geht es dagegen sehr schnell.

Gruß

Christian
Bitsqueezer
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 8465
Registriert: 21. Jun 2007, 12:17

Re: Aktualisierungsabfrage für ein Hyperlinkfeld

Beitragvon kathyv » 02. Sep 2021, 09:16

Hallo,
ich habe jetzt die Dir-Funktion verwendet und mit Debug.Print werden nun die Pfade gezeigt, bei denen len(Dir$(dateiname)) = 0 zutrifft.
Darunter auch Pfade wie z.B. ein solcher LW:\O\UO\123%20XYZ%20ABC.pdf
Es gibt die Datei aber, klickt man den Link in der Tabelle an, wird sie geöffnet.
Wie der Pfad zustande kommt, weiß ich nicht.
Korrigiert man zu LW:\O\UO\123 XYZ ABC.pdf, wird sie nicht mehr gemeldet, da obiges len > 0.
Andere Pfade sind relativ z.B. ..\..\UO\Dateiname
Da dasselbe, sie werden gemeldet, können aber geöffnet werden.
Bei allen anderen gemeldeten sind die Pfade tatsächlich falsch.
Kann man die falsch gemeldeten irgendwie ausschließen bzw. so korrigieren, dass sie nicht mehr gemeldet werden?
Gruß Kathy
kathyv
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 31
Registriert: 01. Dez 2020, 14:50

Re: Aktualisierungsabfrage für ein Hyperlinkfeld

Beitragvon Bitsqueezer » 02. Sep 2021, 09:27

Hallo,

in Internet-Links sind Leerzeichen nicht zugelassen, "%20" steht für hexadezimal 20, also = 32, also Leerzeichen. Achte mal darauf, wenn Du Dir Links in der Adresszeile des Browsers im Internet zu z.B. PDF-Dateien anschaust.

Du kannst vor der Prüfung mit Dir also "%20" gegen Leerzeichen (mit Replace) austauschen. Wobei es noch mehr solcher Austauschzeichen gibt, Du also ggf. auch noch weitere austauschen mußt.

Gruß

Christian
Bitsqueezer
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 8465
Registriert: 21. Jun 2007, 12:17

Re: Aktualisierungsabfrage für ein Hyperlinkfeld

Beitragvon kathyv » 02. Sep 2021, 09:43

Hallo Christian,
danke für die schnelle Antwort.
Ich werde das gleich machen.
Aber wie bekommt man das Problem mit den relativen Pfaden gelöst?
Ich bin mir relativ sicher, absolute eingegeben zu haben. Aber wer weiß, können schon vor langem so entstanden sein. Aber durch was? Sie funktionieren ja als Link, werden nur gemeldet.
Gruß Kathy
Edit
Ich habe jetzt absolute Pfade durch Replace erhalten.
Bei dem ganzen ist noch nicht klar, durch was in der Vergangenheit relative Pfade entstanden.
Kann man das herleiten?
Gruß Kathy
kathyv
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 31
Registriert: 01. Dez 2020, 14:50

Re: Aktualisierungsabfrage für ein Hyperlinkfeld

Beitragvon Bitsqueezer » 02. Sep 2021, 12:17

Hallo Kathy,

das kann ich Dir nicht sagen, ich vermute mal, es liegt daran, wie man das Open-File-Dialogfenster bedient. Standardmäßig öffnet es sich ja in einem Ordner, wenn man dann von diesem aus in einen anderen wechselt, ist es wahrscheinlich ein relativer Pfad, wenn man mit dem Laufwerksbuchstaben beginnt und dann den Ordner sucht, ein absoluter. Habe ich jetzt aber nicht ausprobiert. Im "Hyperlink bearbeiten" sollte der Pfad ja mit angezeigt werden, so daß der User das anpassen kann (Textanzeige gegenüber Link).

Wenn Du absolute Pfade erzwingen willst, kannst Du ja "BeforeUpdate" des Controls verwenden, mit HyperlinkPart den Link auslesen (sollte dann in "Text" und nicht in "Value" stehen) und den User darauf hinzuweisen, nur absolute Pfade einzugeben. Mit "Cancel=True" kannst Du den Link so ablehnen und der User bleibt im Feld.

Gruß

Christian
Bitsqueezer
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 8465
Registriert: 21. Jun 2007, 12:17

Re: Aktualisierungsabfrage für ein Hyperlinkfeld

Beitragvon knobbi38 » 02. Sep 2021, 14:56

Hallo Kathy,

mit den rel. Pfaden gab es mal etwas. Vielleicht hilft dir dieser Thread weiter:
http://www.office-loesung.de/p/viewtopic.php?f=167&t=847075&hilit=Hyperlink

Gruß Ulrich
knobbi38
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 3456
Registriert: 02. Jul 2015, 14:23

Re: Aktualisierungsabfrage für ein Hyperlinkfeld

Beitragvon kathyv » 02. Sep 2021, 20:17

Hallo,
zur Entstehung der relativen Pfade und der hex-Leerzeichen fand ich jetzt folgendes heraus.
Wählt man in Word (2010) über einem Hyperlink im Kontextmenü Hyperlink kopieren aus und fügt das kopierte mit Strg & v in ein Hyperlinkfeld einer Tabelle ein, so bekommt man einen relativen Pfad (hier im Beispiel voran-gestellt ..\..\) und ggf. hex-Leerzeichen.
Die Kopie ist in einem besonderen Zustand, das wird deutlich, wenn man sie mit Strg & v in eine Textbox einfügt. Erstaunlicherweise ist in der Box nichts zu sehen. Auch das Einfügen über das Ribbon mit Inhalte einfügen hilft nicht. Im Gegensatz zu Word gibt es bei Access nicht im Inhalte-einfügen-Menü die Option als unformatierten Text, sondern nur Text. Das entspricht offensichtlich Strg & v, da nichts in der Textbox erscheint.
Fügt man dagegen in Word den Inhalt der Zwischenablage unformatiert ein und kopiert ihn wieder zurück, so erscheint er mit Strg & v auch in der Textbox.
Fügt man ihn mit Strg & v in ein Hyperlinkfeld einer Tabelle ein, so bekommt man einen absoluten Pfad und normale Leerzeichen, falls vorhanden.
Ob dieser Umstand auch für die neueren Access-Versionen zutrifft, kann ich nicht testen und es ist die Frage, ob man mit VBA da was erreichen kann.
Gruß Kathy
kathyv
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 31
Registriert: 01. Dez 2020, 14:50

Re: Aktualisierungsabfrage für ein Hyperlinkfeld

Beitragvon Bitsqueezer » 03. Sep 2021, 09:39

Hallo Kathy,

die Zwischenablage funktioniert "mehrdimensional". Wenn man nicht ein ganz simples Objekt hat wie etwa ein einfacher Text, dann erstellt die Zwischenablage automatisch mehrere Versionen des kopierten Objekts - alle, die die Zwischenablage daraus machen kann. Also bei HTML dann z.B. einen HTML-Text wie im Original, aber auch eine "Einfache Textvariante", die keine HTML-Tags mehr enthält. Das "Paste Special" ist also kein Feature der Zielanwendung, sondern der Zwischenablage, wird aber nicht von allen Anwendungen zur Verfügung gestellt.
Genaugenommen hast Du also immer mehrere Kopien des gleichen Objektes in unterschiedlichen Formaten in der Zwischenablage - ein "Service" der Zwischenablage.

Ob da "unformatierter Text" oder nur "Text" steht, ist wiederum eine Sache der Anwendung, die "Paste Special" anbietet, hat aber keine Bedeutung.

Allerdings kann ich nicht nachvollziehen, wieso Du eine leere Textbox erhältst. Auch das mit den relativen Pfaden kann ich nicht nachstellen. Wenn ich einen absoluten Pfad als Hyperlink in Word erstelle und den kopiere und in Access wieder einfüge, bekomme ich genau den gleichen Pfad auch dort wiedergegeben, auch habe ich keine "%20" im Link, wenn der Pfad Leerzeichen enthält. Auch bei "Einfügen als Text" erkennt Access, daß es sich um einen Hyperlink handelt und wandelt ihn automatisch in einen Hyperlink um, gleiches, wenn ich den Link als Text kopiere.

Aber da ich davon ausgehe, daß es bei Dir halt so ist, würde ich mal sagen, daß es irgendwo eine Konfigurationssache ist. Wenn Du also davon ausgehen mußt, daß sowas vorkommt, mußt Du halt auf Programmierebene den Link vor dem Speichern prüfen und entsprechend abändern. Da man nie wissen kann, wie ein anderer Rechner das handhabt.

Gruß

Christian
Bitsqueezer
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 8465
Registriert: 21. Jun 2007, 12:17

Re: Aktualisierungsabfrage für ein Hyperlinkfeld

Beitragvon kathyv » 03. Sep 2021, 11:34

Hallo Christian,
Allerdings kann ich nicht nachvollziehen, wieso Du eine leere Textbox erhältst. Auch das mit den relativen Pfaden kann ich nicht nachstellen.

Vielleicht liegt es an Acc2010 und du hast eine höhere Version?
Gruß Kathy
kathyv
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 31
Registriert: 01. Dez 2020, 14:50

Re: Aktualisierungsabfrage für ein Hyperlinkfeld

Beitragvon Bitsqueezer » 03. Sep 2021, 12:05

Hallo Kathy,

ausprobiert mit A2007...:)
Und Word 2010/2013.

Gruß

Christian
Bitsqueezer
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 8465
Registriert: 21. Jun 2007, 12:17

Re: Aktualisierungsabfrage für ein Hyperlinkfeld

Beitragvon kathyv » 03. Sep 2021, 12:21

Hallo Christian,
danke.
Seltsam, hoffe, ich finde was bei mir.
Gruß Kathy
kathyv
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 31
Registriert: 01. Dez 2020, 14:50

Vorherige

Zurück zu Access Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 8 Gäste