Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: Abnah666 am September 13, 2006, 11:15:36

Titel: Hyperlinks automatisch ändern?
Beitrag von: Abnah666 am September 13, 2006, 11:15:36
Hallo zusammen!
Ich habe in einem Formular einen Hyperlink, einen pro Datensatz.
Die Hyperlinks führen zu einer Datei auf Laufwerk D:, also D:/Audios/Audio001.wav.
Ich würde gerne den Laufwerksbuchstaben ändern auf H:.
Gibt es da eine einfache Möglichkeit oder eine Prozedur, die mir die Tipparbeit bei rund 1000 Datensätzen ersparen könnte?
Besten Dank und Grüße!
Abnah
Titel: Re: Hyperlinks automatisch ändern?
Beitrag von: oma am September 13, 2006, 11:57:03
Hallo,

einfach mit einer Aktualisierungsabfrage

Gruß Oma
Titel: Re: Hyperlinks automatisch ändern?
Beitrag von: Abnah666 am September 13, 2006, 12:18:34
Besten Dank schonmal!

Aber wie behalte ich dann den Rest des Pfades bei?
Mit

UPDATE Daten SET Daten.Dokumentlink = [Dokumentlink]="H:";

würde ich doch dann den Link nur auf H:\ setzen, oder?
Titel: Re: Hyperlinks automatisch ändern?
Beitrag von: oma am September 13, 2006, 12:54:41
Hallo,

natürlich nicht nur mit H aktualisieren, den Rest des alten Links zu den neuen Buchstaben zufügen:

UPDATE tblTabelle SET tblTabelle.link = "H" & Right([link],Len([link])-1)
WHERE tblTabelle.EinTextfeld Like "*";


Gruß Oma
Titel: Re: Hyperlinks automatisch ändern?
Beitrag von: Abnah666 am September 13, 2006, 14:07:48
Hallo nochmal!

Die Abfrage sieht bei mir jetzt so aus:

UPDATE Daten SET Daten.Dokumentlink = "H" & Right([Dokumentlink],Len([Dokumentlink])-1)
WHERE (((Daten.Dokumentlink) Like "*"));


Jetzt stehen zwar in der Tabelle die richtigen Pfade, aber die Verweise haben trotzdem noch ihre alten Pfade (Werte?), also wenn man sie anklickt oder mit der Maus darüber geht.

Was mache ich noch falsch?
Titel: Re: Hyperlinks automatisch ändern?
Beitrag von: oma am September 13, 2006, 14:36:19
Hallo,

wenn die Verweise richtig in der Tabelle stehen, wo sind dann noch "alte Pfade" ?

Gruß Oma
Titel: Re: Hyperlinks automatisch ändern?
Beitrag von: DF6GL am September 13, 2006, 14:43:43
Hallo,

da es sich um ein Hyperlink-FORMAT handelt, denke ich, wäre sowas besser:

UPDATE Daten SET Daten.Dokumentlink = Replace([Dokumentlink],"D:","H:")
Titel: Re: Hyperlinks automatisch ändern?
Beitrag von: Abnah666 am September 13, 2006, 14:50:30
Der angezeigte Text in der Tabelle und im Formular ist richtig.
Es ändert sich also der Text unter "Hyperlink bearbeiten" -> "Text anzeigen als",
aber unter "Hyperlink bearbeiten" -> "Adresse" steht nach wie vor der alte Pfad.

Den Vorschlag von DF6GL, der grade beim Schreiben eingegangen ist, werde ich aber auf jeden Fall auch probieren, Danke!
Titel: Re: Hyperlinks automatisch ändern?
Beitrag von: oma am September 13, 2006, 15:00:21
Hallo,

ich glaube, Franz hat recht (wie fast immer), mein Zusammenfügen ergibt wohl einen String u. kein Hyperlink.

Sorry, hatte das nicht probiert.

Gruß Oma
Titel: Re: Hyperlinks automatisch ändern?
Beitrag von: DF6GL am September 13, 2006, 15:04:57

"wie fast immer"  will ich jetzt mal überlesen haben   ;) ;) :D :D ;D ;D 8)
Titel: Re: Hyperlinks automatisch ändern?
Beitrag von: Abnah666 am September 13, 2006, 15:14:35
 :D
Franz hatte Recht ;)
Allerbesten Dank Euch beiden!
Titel: Re: Hyperlinks automatisch ändern?
Beitrag von: oma am September 13, 2006, 15:20:36
muss ich dann wohl zugeben; da ich das schon gesehen habe, konnte ich mir wenigstens nicht den kleinen Zusatz mit fast verkneifen  ;D

Aber irgendwie muss es ja Unterschiede zwischen Götter und Gurus geben :o

Gruß Oma
Titel: Re: Hyperlinks automatisch ändern?
Beitrag von: WHEELER700 am Oktober 30, 2010, 10:39:25
Hi Access profis!

ich habe das gleiche Problem wie Abnah666. In meiner Datenbank habe ich zu jedem Datensatz einen Hyperlink zu einem PDF-Dokument. Der Pfad der PDF-Dokumente hat sich nun geändert.
Alle PDF-Dokumente liegen nun unter folgendem Pfad:
K:\Users\Tom\Documents\privates\Bücher\xxx.pdf
Vorher waren alle PDF-Dokumente unter dem Pfad:
C:\Users\Documents\privates\Bücher\xxx.pdf
Mit einer Aktualisierungsabfrage möchte ich nun für alle Hyperlinks C:\Users in K:\Users\Tom ändern. Es soll also nur ein Teil des Links geändert werden. Im Feld "Aktualisieren" in der  Aktualisierungsabfrage habe ich folgenden Code eingegeben:

UPDATE Daten SET Daten.Dokumentlink = Replace([Dokumentlink],''C:\User'',''K:\Userse\Tom'')

Leider erhalten ich dann die Fehlermeldung "Der von Ihnen eingegebene Ausddruck ist syntaktisch falsch"
Was mache ich falsch?
Wäre euch sehr dankbar für jeden Tipp zur Fehlerbeseitigung.
Grüße
WHEELER700
Titel: Re: Hyperlinks automatisch ändern?
Beitrag von: MzKlMu am Oktober 30, 2010, 10:56:45
Hallo,
von Hyperlinkfeldern die keine wirklichen Hyperlinks sind (also nicht zu einer Internetadresse führen) halte ich gar nichts. Mache eine Textfeld aus dem Hyperlinkfeld. dann genügt es mit Replace nur den Buchstaben zu tauschen.
Mit dem VBA Befehl
FollowHyperlink Feldname
wird das PDF dann genau so problemlos geöffnet.

Die ganze Handhabung ist deutlich einfacher.

Der Vorschlag gilt auch für den Beitragsersteller.
Titel: Re: Hyperlinks automatisch ändern?
Beitrag von: WHEELER700 am Oktober 30, 2010, 12:23:17
hi MzKiMu,
zunäcfhst danke für deine Hilfe. Kannst du mir trotzdem sagen was ich falsch germacht habe, auch wenn du nichts von unechten Hyperlinks hältst. Ich würde gern bei meinen Hyperlinks bleiben.

Zu deinem Vorschlag:
Wenn ich deinen Vorschlag umsetzen will, wie kann ich dann im Textfeld nur einen Teil des Textes ändern. Darüber hinaus ist mir noch nicht klar, wie ich das  Dokument aus der Datenbank dann öffnen kann. Wo muss ich den Code FollowHyperlink Feldname denn eingeben?

Sorry für meine dummen Fragen, bin noch Anfänger in Access.
Gruß
Wheeler700
Titel: Re: Hyperlinks automatisch ändern?
Beitrag von: database am Oktober 30, 2010, 18:07:37
Hallo,

ZitatKannst du mir trotzdem sagen was ich falsch germacht habe

UPDATE Daten SET Daten.Dokumentlink = Replace([Dokumentlink],'C:\Users','K:\Users\Tom')



Suchzeichenfolge und Ersetzungszeichenfolge werden in 1 einfaches Hochkomma eingeschlossen nicht in 2.

HTHPeter
Titel: Re: Hyperlinks automatisch ändern?
Beitrag von: WHEELER700 am Oktober 31, 2010, 09:32:56
Hi database,
deinen Vorschlag habe  ich verseucht umzusetzen, statt 2 habe ich 1 Hochkomma verwendet.
Leider erhalte ich auch hier die Fehlermeldung "Der von Ihnen eingegebene Ausdruck ist syntaktisch falsch"

Was mach ich denn falsch?

Gruß
Wheeler700
Titel: Re: Hyperlinks automatisch ändern?
Beitrag von: database am Oktober 31, 2010, 11:51:00
Hallo,

ich gehe davon aus, dass du diesae SQL-Syntax in einer Ereignisprozedur verwenden willst.

wenn du in diese Prozedur folgendes schreibst:

DoCmd.RunSQL "UPDATE Daten SET Daten.Dokumentlink = Replace([Dokumentlink],'C:\Users','K:\Users\Tom')"


...MUSS das laufen - ich hab's bei mir simuliert!

Vorsussetzung: Die Tabelle heißt Daten und das Feld heißt Dokumentenlink

Zeig mal her, wo du wie den SQL-String in Verwendung hast.

Greets
Titel: Re: Hyperlinks automatisch ändern?
Beitrag von: WHEELER700 am Oktober 31, 2010, 12:39:15
hi Database;

meine Tabelle heißt Bücherbestand und das Feld Inhaltsbeschreibung.
Über Afragen habe ich eine Aktualisierungabfrage erstellt und in der Entwurfsansicht im Feld "Aktualisieren" folgeden Code eingegeben

UPDATE Bücherbestand SET Bücherbestand.Inhaltsbeschreibung = Replace([Inhaltsbeschreibung],'C:\Users','K:\Users\Tom) 

Wieder kommt dann die Meldung falsche Syntax.

Wo muss ich den CFode eingeben?
Was ist eine Ereignisprozedur? Wie kann ich diese aufrufen?

Danke für die schnelle Antwort und bisherige Hilfe.

Hoffe du entdeckst den Fehler bei meinem Vorgehen. Vielleicht geb ich den code einfach an der falschen Stelle ein.

Titel: Re: Hyperlinks automatisch ändern?
Beitrag von: database am Oktober 31, 2010, 13:48:42
Hallo,

naja, von einer Abfrage als solche war bislang ja noch nicht de Rede, ich war der Meinung du würdest das Statement per VBA auf die Tablle loslassen - offensichtlich hab' ich das in deiner Frage überlesen gehabt.  :-\

In der Aktualisierungsbfrage im Abfrageentwurf schreibst du ins Feld Aktualisieren unter 'Inhaltsbeschreibung'

UPDATE Bücherbestand SET Bücherbestand.Inhaltsbeschreibung = Replace([Inhaltsbeschreibung];"C:\Users";"K:\Users\Tom")

Suchzeichenfolge und Ersetzungstext sind hierbei mit Gänsefüßen (Shift + 2) einzuschließen, Trennzeichen zwischen den Funktionsparametern ist ein Semikolon ( ; )!
Der Fehler in der SQL deiner Anfrage war demnach der, dass du statt Semikolons Kommata geschrieben hast und statt Gänsefüße zwei aufeinanderfolgende einfache Hochkomma!

Am Besten wird sein du gehst in den Abfrageentwurf und wechselst von da in die SQL-Ansicht und KOPIERST einfach den SQL-Text von meiner Antwort in deine Abfrage.  8)

Versuch das mal, ich bin sicher das klappt so  ;)

ZitatWo muss ich den CFode eingeben?
Was ist eine Ereignisprozedur? Wie kann ich diese aufrufen?

Fällt in dem Fall flach, VBA - Unterricht ist hierzu nicht notwendig. ;D

Grüße
Peter
Titel: Re: Hyperlinks automatisch ändern?
Beitrag von: WHEELER700 am Oktober 31, 2010, 17:01:47
hi  database,
ich habe den code eingefügt.
Wenn ich auf ausführen klicke kommt ein Feld Parameterwert eingeben. Wenn ich dann auf ok klicke (ohne was einzugeben) kommt die Fehlermeldung "Access kann nicht alle Datensätze aktualisieren. Access hat 250 Felder wegen Typumwandlungsfehlern, 0 Datensätze wegen Schlüsselverletzungen, 0 Datensätze wegen Sperrverletzungen und null Datensätze wegen Gültigkeitsverletzungen nicht aktualisiert. Möchten Sie trotzdem, dass die Aktionsabfrage weiter ausgeführt wird?
Wenn ich dann auf ja klicke sind alle Hyperlinks weg und die Felder unter Inhaltsbeschreibung komplett leer.
Was mache ich bloß falsch?
Hast DU noch eine Idee, ich bin langsam am Verzweifeln?

Grüße
Wheeler700
Titel: Re: Hyperlinks automatisch ändern?
Beitrag von: database am November 01, 2010, 07:58:21
Guten Morgen,

Parameterwert eingeben ... bedeutet, dass die Abfrage ein Feld der Spaltendefinition nicht finden kann.
Das bedeutet in dem Fall, dass das Feld NICHT Inhaltsbeschreibung heissen KANN - die Abfrage enthält nur ein Feld.
Da der Feldname (Inhaltsbeschreibung) in eckigen Klammern steht, behandelt Access das wie eine Parameterabfrage und stellt bei der
Ausführung die Frage nach dem Wert, der in diesem unbekannten Feld stehen soll - so wäre mal meine Interpretation

Kontrolliere noch mal die GENAUE Schreibweise des Feldnamens!

Wenn das nicht hilft dann exportiere die Tabelle in eine neue Datenbank und lade sie hier hoch, ich schau mir das an einer KOPIE des Originals mal an.

Grüße
Peter


Titel: Re: Hyperlinks automatisch ändern?
Beitrag von: WHEELER700 am November 01, 2010, 09:49:16
hi Databae,
hier ist meine Datenbank.
Im Feld Inhaltsbeschreibung möchte ich in den Hyperlinks 2004 durch PDF ersetzen, da alle Dokumente jetzt in eiem anderen Ordner sind.
Folgenden Code habe ich eingegeben:
UPDATE Bücherbestand SET Bücherbestand.Inhaltsbeschreibung = Replace([Inhaltsbeschreibung];"2004";"PDF")

Dann kommt die beschriebene Fehlermeldung und alle Links sind nach ausführen der Abfrage weg.
Gruß
WHEELER70


[Anhang gelöscht durch Administrator]
Titel: Re: Hyperlinks automatisch ändern?
Beitrag von: DF6GL am November 01, 2010, 09:57:02
Hallo,


UPDATE Bücherbestand SET Bücherbestand.Inhaltsbeschreibung = Replace([Inhaltsbeschreibung] ,   "2004"   ,    "PDF")

(in der SQL-Ansicht im Abfrageentwurf)


PS:

im Abfrageentwurf:



[Anhang gelöscht durch Administrator]
Titel: Re: Hyperlinks automatisch ändern?
Beitrag von: database am November 01, 2010, 10:06:18
Hi,

im Anhang die DB mit der Abfrage, die deine Einträge ändert.

Ich habe in meiner Antwort leider einen Fehler gemacht -

UPDATE Bücherbestand SET Bücherbestand.Inhaltsbeschreibung = Replace([Inhaltsbeschreibung];"C:\Users";"K:\Users\Tom")

im Abfrageentwurf (graphisch) unter das Feld Inhaltsbeschreibung sollte NUR der Teil ab Replace.  :'(


Grüße
Peter

[Anhang gelöscht durch Administrator]
Titel: Re: Hyperlinks automatisch ändern?
Beitrag von: WHEELER700 am November 01, 2010, 11:39:43
hi database und DF6GL,

vielen Dank für eure Antwort. Mit dem Code Ersetzen([Inhaltsbeschreibung];"2004";"PDF") hat es gelappt. Hyperlinks haben einen neuen Namen und lassen sich öffnen.
Komisch ist nur das immer noch die Fehlermeldung
"Access kann nicht alle Datensätze aktualisieren. Access hat 250 Felder wegen Typumwandlungsfehlern, 0 Datensätze wegen Schlüsselverletzungen, 0 Datensätze wegen Sperrverletzungen und null Datensätze wegen Gültigkeitsverletzungen nicht aktualisiert. Möchten Sie trotzdem, dass die Aktionsabfrage weiter ausgeführt wird?"
kommt. Aber egal, Hauptsache jetzt klappts.

Nur aus Interesse noch eine Frage: Was war dem Code UPDATE Bücherbestand SET Bücherbestand.Inhaltsbeschreibung = Replace([Inhaltsbeschreibung];"2004";"PDF") falsch?

Schonmal vielen, vielen, vielen Dank an Euch für die schnelle Hilfe und Eure Mühen.  ;) ;) ;) Ihr seit echte Access Götter.
Grüße
Wheeler700
Titel: Re: Hyperlinks automatisch ändern?
Beitrag von: DF6GL am November 01, 2010, 12:08:15
Hallo,

falsch ist nur die Unklarheit, WO der "Code" nun steht.
Die Semikola dürfen NUR im Abfrageentwurf stehen, und auch nur dann, wenn das Semikolon als Trennzeichen in den Windows-Regionseinstellungen festgelegt ist.


Die Fehlermeldung habe ich mit Deinem DB-Beispiel nicht erhalten...
Titel: Re: Hyperlinks automatisch ändern?
Beitrag von: WHEELER700 am November 01, 2010, 12:31:55
hi DF6GL;

wo kann man denn die  Regioeinstellungen nachschauen.

Zu der Fehlermeldung: In der Beispiel DB titt der Fehler bei mir auch nicht auf. Aber in meiner richtigen DB schon. Ich glaube, weil nicht in allen Datensätzen im Feld Inhaltsbheschreibung auch Hyperlinks abgelegt sind. Maschne Felder sind leer und der Befehl fragt aber glaub ich alle Felder ab.
Grüße
Wheeler700 
Titel: Re: Hyperlinks automatisch ändern?
Beitrag von: DF6GL am November 01, 2010, 12:37:44
Hallo,




naja, dann wird das ja wohl der Fehler sein.   Replace kann kein NULL-Feld behandeln...

Schreib mal so (auch wenn es im Endeffekt keine andere Wirkung hat):

UPDATE Bücherbestand SET Bücherbestand.Inhaltsbeschreibung = Replace([Inhaltsbeschreibung] ,"2004","PDF") where Inhaltsbeschreibung is not null


"Regioeinstellungen"   ---> Windows (XP) /Systemsteuerung/Regions- und Sprachoptionen
Titel: Re: Hyperlinks automatisch ändern?
Beitrag von: database am November 01, 2010, 13:01:27
Hallo,

na also ...

@DF6GL
Zitatnaja, dann wird das ja wohl der Fehler sein

So ist es auch, denn in der Beispiel-DB waren keine leeren Felder.

@Wheeler700
ZitatIn der Beispiel DB titt der Fehler bei mir auch nicht auf
Somit brauchst du auch in den Regionaleinstellungen nichts verändern ... bloß nicht  ;)

Grüße

Titel: Re: Hyperlinks automatisch ändern?
Beitrag von: WHEELER700 am November 01, 2010, 17:08:36
HI Access Profis,

der Code  Ersetzen([Inhaltsbeschreibung] ;"2004";"PDF") where Inhaltsbeschreibung is not null klappt nicht, kommt wieder die Melung falsche Syntax.
Aber das Problem ist ja gelöst.
Nochmal vielen Dank
Gruß
Wheeler700
Titel: Re: Hyperlinks automatisch ändern?
Beitrag von: DF6GL am November 01, 2010, 17:23:25
Hallo,


der SQL-String gehört auch in die SQL-ANSICHT im Abfrageentwurf kopiert....

wobei das dann im Abfrageentwurf so aussieht:



[Anhang gelöscht durch Administrator]
Titel: Re: Hyperlinks automatisch ändern?
Beitrag von: WHEELER700 am November 02, 2010, 17:46:59
hi DF6GL;

hast recht, jetzt kommt keine Fehlermeldung mehr.

Danke Dir herzlich. Ich werde dich weiterempfehlen.  Database natürlich ebenso nochmal Danke.
Machts gut und Grüße
Wheeler700