Hallo zusammen,
habe für die Urlaubsvertretung eine kleine Accessanwendung gebastelt. Diese besteht aus einer Personaltabelle verknüpft mit einer Thementabelle. Diese enthält das Datum, den Personalbezug, die Themenbeschreibung und eine Hyperlinkspalte für Anhänge.
Das ganze funktioniert auch wunderbar bis auf die Ausleitung.
Hierzu habe ich eine Abfrage geschrieben, welche zuerst die Person abfrägt und anschließend das Protokollstartdatum (ab wann die Themen dargestellt werden sollen). Also eigentlich recht simpel.
Nur passiert durch die Abfrageprozedur nun das seltsame, dass zwar der Hyperlinktext (=Linkadresse) unverändert bleibt aber der dahinter abgelegte Hyperlink verkürzt wird, so dass dieser nicht mehr verwendbar ist.
Wie kann ich dies abstellen. Hat jemand von euch eine Idee. Wäre super.
Gruß Mupfel
Hallo,
erklär mal genauer, was Du mit "abgelegte Hyperlink verkürzt wird" meinst und wo der Hyperlink nicht mehr verwendbar ist.
Sinnvoll wäre vielleicht ein Screenshot der einzelnen Fenster...
Hallo,
mit Hyperlink meine ich, dass ich in der Tabelle eine Spalte mit dem Feldtyp "Hyperlink" angelegt habe.
Im Formular angewendet kann man in diesem Feld einen Link auf eine Datei auf einem Laufwerk ablegen. Da die Dateien meinst immer auf Netzlaufwerken liegen und die Ordnerpfade administrativ recht lang sein können, entstehen dadurch recht lange Hyperlinkadressen. Diese funktionieren trotzdem jedoch einwandfrei - ruft man die Thementabelle selbst auf.
Durchlaufen die Daten der Thementabelle jedoch eine Auswahlabfrage, werden die Hyperlinkadressen abgeschnitten - heißt vom Ende der Hyperlinkadresse werden x Buchstaben einfach gelöscht.
Kann es sein, dass Access nur eine bestimmte Hyperlinklänge intern zulässt und den REst einfach abschneidet? Kann man das ändern?
Danke und Gruß.
Hallo,
m.W. ist die max. Feldfröße eines Hyperlink-Feldes 255 Zeichen.
<Edit> Korrektur: 64000 Zeichen </Edit>
Ein Hyperlink besteht aber als solcher aus mehr als der angezeigten Textzeichen..
Wie lang ist denn ein solcher Hyperlink-Text?
Vorschlag: Wirf die Hyperlinkfelder überall heraus, bzw. ändere sie zu Datentyp "Text" und passe die Daten entspr. an. Mit folgendem Code kann dann die "Hyperlink-Funktion" simuliert werden (bei Datei-Verweisen):
Sub MeinHyperlink_Click()
Followhyperlink "file://" & Me!MeinHyperlink
End Sub
Hallo,
also die 255 Zeichengrenze überschreite ich nicht einmal. habe mal zwei links exemplarisch angesehen:
Eigentliche Soll-Linklänge veränderte Linklänge
174 78
161 91
Also eine Systematik kann ich da nicht erkennen....
Hallo,
kann Dein Problem nicht nachvollziehen.. Ein Tabellen-Hypertextfeld kann sogar mehr als 255 Zeichen aufnehmen (bei meinem Test 280) und in einer Auswahlabfrage wird nichts abgeschnitten (A2003)
WO siehst Du denn, dass die Zeichen abgeschnitten sind?
Wenn ich einen Hyperlink innerhalb des Formulars erzeuge, ziehe ich mit Drap&Drop einfach die Datei in das vorgesehene Hyperlinkfeld. Dadurch generiert Access automatisch den Hyperlink: zum einen wird als Text die Hyperlinkadresse dargestellt und zum anderen dem Text der Link hinterlegt.
Link und Text stimmen innerhalb der Tabelle überein --> keine Veränderung und somit funktioniert alles
Link und Text stimmen innerhalb der Auswahltabelle NICHT mehr überein --> Access muss, aus welchen Gründen ???, den Link während der SQL-Anweisung bearbeiten
Hallo,
mit "Auswahltabelle" meinst Du sicher die "AuswahlAbfrage" ..
Lt. Spezifikation kann ein Hyperlinkfeld bis zu 64000 Zeichen aufnehmen.
Bei meiner nachgestellten Situation habe ich wie gesagt kein solches Abschneiden festgestellt.
Poste mal den SQL-String der Abfrage.. Wenn diese Abfrage gruppiert, wird ein Feld auf max. 255 Zeichen begrenzt. Vielleicht liegt es daran.
Hallo, Hier das skript:
SELECT [tb-hist-urlaubsvertretung].Datum, [tb-hist-urlaubsvertretung].Memo, [tb-hist-urlaubsvertretung].Link, [tb-person].Nachname
FROM [tb-person] INNER JOIN [tb-hist-urlaubsvertretung] ON [tb-person].[Person-ID] = [tb-hist-urlaubsvertretung].[Vertretung für]
WHERE ((([tb-person].Nachname)=[Vertretung für wen?]) AND (([tb-hist-urlaubsvertretung].Datum)>[Startdatum:]))
GROUP BY [tb-hist-urlaubsvertretung].Datum, [tb-hist-urlaubsvertretung].Memo, [tb-hist-urlaubsvertretung].Link, [tb-person].Nachname
ORDER BY [tb-hist-urlaubsvertretung].Datum;
ZitatWenn diese Abfrage gruppiert, wird ein Feld auf max. 255 Zeichen begrenzt. Vielleicht liegt es daran.
Hallo,
ja es wird gruppiert. Allerdings sind die Links kürzer als 255 Zeichen und werden trotzdem gekürzt - habe ich oben ja schon mal aufgeführt
???? was macht Access da???
Hallo,
naja, was macht Access da ... Es schneidet das Feld ab...
Bist Du sicher , dass der
Feldinhalt wirklich weniger als 255 Zeichen ist?
Eigenes
Zitat
Ein Hyperlink besteht aber als solcher aus mehr als den angezeigten Textzeichen..
ja es sind weniger als 255 Zeichen
Hallo,
ja, und das glaube ich nicht....
Erstell mal die folgenden Abfrage (SQL im Abfrageentwurf unter "SQL-Ansicht" einkopieren) :
Select * , Len([Link]) as AnzahlZeichen from [tb-hist-urlaubsvertretung]
Ansosnten kann Du auch eine Kopie der TAbelle herstellen , dort das Hyperlinkfeld in den Datentyp TEXT ändern und dann die Feldinhalte ansehen....
Ok, kann gern die sql - anweisung mal einbinden.
Die bisher ermittelten Zeichenanzahlen (mehr als 100) aber ich natürlich auch nicht per Auge gezählt sondern die Tabelle in Word exportieren lassen und die Zeichen in der jeweilegen Zelle zählen lassen.
Bis dann
und siehe da word zählt anders als access ::)
hab die Länge der Zeichen für das Feld Link durch Access zählen lassen --> alle 255 >:(
hattest recht!
Was kann jetzt da machen?
Hallo,
ok, jetzt kommen wir weiter.... ;D
Zitathattest recht!
war eigentlich zu erwarten.. 8)
ZitatWas kann jetzt da machen?
1) Hyperlinkfeld nicht gruppieren, bzw. nicht in die gruppierende Abfrage aufnehmen.
2) Wie vorangegangen schon gesagt, Feld in der Tabelle als TEXT typisieren und auch als reinen Text behandeln, d. h. den Link mit "Followhyperlink" oder "Shellexecute" öffenen.
Eigenes
ZitatVorschlag: Wirf die Hyperlinkfelder überall heraus, bzw. ändere sie zu Datentyp "Text" und passe die Daten entspr. an. Mit folgendem Code kann dann die "Hyperlink-Funktion" simuliert werden (bei Datei-Verweisen):
Sub MeinHyperlink_Click()
Followhyperlink "file://" & Me!MeinHyperlink
End Sub
so, hab den Feldtyp geändert auf Memo. Text war nicht so gut - hat auch nur 255 Zeichen ;)
kannst du mir noch verraten wie ich jetzt deine sub in die Abfrage bastel?
Gruß
Hallo,
ich versteh (glaube) immer noch nicht , dass die eigentliche UNC-Name (PfadDateiName für "Anhänge") selber mehr als 255 Zeichen hat . In dem Text-(oder Memo-) Feld darf auch NUR der komplette PfadDateiName des Anhangs stehen.
In der Abfrage hat die vorgestellte Funktion auch nichts zu suchen, genausowenig, wie eine Abfrage an sich dem User zu präsentieren ist. Allenfalls ist die Abfrage als Datenherkunft für ein Formular geeignet, in welchem sich dann die Klick-Ereignis-Prozedur für das anzeigende Textfeld befindet.
auf Grund der Netztlaufwerkstruktur und Projektestruktur ergeben sich leider lange Pfade.
aber jetzt denke ich habe ich auch den Grund für das "abschneiden des Links" gefunden. Die Zeichenkettenzählung in Word des angezeigten Linktextes war schon korrekt ... nur....
... behandelt Access intern eine Linkzelle folgend kodiert: [***Linktext****]#[***PfadDateiName]
--> Access schreibt den angezeigten Linkanzeigetext (welchen man im Feld sieht) durch eine Raute (#) getrennte zusammen mit der eigentlichen Linkadresse zusammen. Daraus ergibt sich dann sehr schnell eine Zeichenfolge welche länger als 255 Zeichen hat
--> muss ganz ehrlich sagen, das ist echt eine bescheidene Leistung von Microsoft. Damit ist diese Funktion nicht verwendbar
--> schlecht für mich :-[
Hallo,
warum drehen wir uns immer noch im Kreis?
Die interne Formatierung eines Hyperlinkfeldes hab ich anfänglich schon angedeutet.
Warum das nun eine "bescheidene Leistung von Microsoft" sein soll, kann ich nicht nachvollziehen.
" Damit ist diese Funktion nicht verwendbar" . Habe auch schon anfänglich erwähnt, keine Hyperlinkfelder zu benutzen.
Wo liegt nun das Problem, wegen des langen UNC -Strings ein Memofeld zu nutzen und mit Followhyperlink (auch schon vorgeschlagen) die betreffende Datei zu öffnen?