Supportnet / Forum / Datenbanken
Hyperlink aus Textfeld
Frage
Hallo zusammen
Schon wieder ich. Ist mir langsam peinlich. Aber ich habe da ein Problem, welches ich nicht verstehe. (wieder einmal)
Ich habe ein Textfeld, bei welchem ich möchte, dass beim anklicken im Formular, die Webseite geöffnet wird. Also nichts Weltbewegendes. Theoretisch könnte ich ja das Textfeld ja umformatieren auf einen Hyperlink. Das geht auch ohne Probleme. Doch ich habe da einen Automatismus, bei dem ich von einer Excelliste, die Daten in die Tabelle einlese und sobald ich dies gemacht habe, funktioniert das ganze nicht mehr. Darum habe ich es als Textfeld belassen und versucht mittels Code das ganze zu lösen. Habe im Internet auch div. Sachen gefunden. Doch funktioniert haben keine Lösungen. Nicht mal der folgende Code.
Private Sub website_Click()
Application.FollowHyperlink Me!website
End Sub
Da erscheint die folgende Fehlermeldung:
Laufzeitfehler ´432´:
Datei- oder Klassenname während Automatisierungsoperation nicht gefunden
Ich muss noch dazu sagen, dass wir das Vorsintflutartige Access 97 haben und ich dazu keine grosse Ahnung von VB habe.
Aber ich hoffe trotzdem, dass wie immer, hier mir jemand weiterhelfen kann.
Schon zum voraus: Vielen herzlichen Dank und Gruss aus der Schweiz
Cello
Antwort 1 von firefox
Du willst bei Click auf "Website" den Wert auswerten. Dazu solltest du Me.website.text verwenden.
Generell ist die Funktion FollowHyperlink in Ac97 implementiert - kannst ja an der Stelle einfach mal einen Textdatei öffnen, ob dies funktioniert.
zb.
Application.FollowHyperlink ´c:\test.txt´
Generell ist die Funktion FollowHyperlink in Ac97 implementiert - kannst ja an der Stelle einfach mal einen Textdatei öffnen, ob dies funktioniert.
zb.
Application.FollowHyperlink ´c:\test.txt´
Antwort 2 von Cello
Salü Firefox
Vielen Dank für Deinen Tip. Doch leider klappts nicht. Erhalte nach wie vor die gleiche Fehlermeldung, obwohl der Code nun so aussieht:
Private Sub website_Click()
Application.FollowHyperlink Me.website.Text
End Sub
Was mache ich falsch ?
Vielen herzlichen Dank an alle
Gruss
Cello
Vielen Dank für Deinen Tip. Doch leider klappts nicht. Erhalte nach wie vor die gleiche Fehlermeldung, obwohl der Code nun so aussieht:
Private Sub website_Click()
Application.FollowHyperlink Me.website.Text
End Sub
Was mache ich falsch ?
Vielen herzlichen Dank an alle
Gruss
Cello
Antwort 3 von firefox
Hat denn der Test mit einer lokalen Datei funktioniert?
Und ist der Inhalt des Textfeldes auch sicher nicht leer in dem Moment?
Ansonsten ist kein sichtbarer Grund zu erkennen, warum es nicht gehen sollte...
Und ist der Inhalt des Textfeldes auch sicher nicht leer in dem Moment?
Ansonsten ist kein sichtbarer Grund zu erkennen, warum es nicht gehen sollte...
Antwort 4 von Cello
Salü Firefox
Sorry. Habe ich vergessen zu schreiben.
Es erscheint die folgende Fehlermeldung:
Fehler beim kompilieren:
Sytaxfehler
Der Code lautet folgendermassen:
Private Sub website_Click()
Application.FollowHyperlink c:\test.txt
End Sub
Mistding ! ;-)
Vielen Dank für Deine Mühe !
Cello
Sorry. Habe ich vergessen zu schreiben.
Es erscheint die folgende Fehlermeldung:
Fehler beim kompilieren:
Sytaxfehler
Der Code lautet folgendermassen:
Private Sub website_Click()
Application.FollowHyperlink c:\test.txt
End Sub
Mistding ! ;-)
Vielen Dank für Deine Mühe !
Cello
Antwort 5 von firefox
Da fehlen die Zeichenkettenmarkierungen - also die Anführungszeichen:
"c:\text.txt"
"c:\text.txt"
Antwort 6 von Cello
Dann funktionierts.
Wenigstens das. Doch was mache ich nun mit der Website ?
Sieht ganz so aus, als dass ich die Variante mit der autom. öffnenden Seite vergessen kann.
Wenigstens das. Doch was mache ich nun mit der Website ?
Sieht ganz so aus, als dass ich die Variante mit der autom. öffnenden Seite vergessen kann.
Antwort 7 von firefox
Werte doch mal den Inhalt von
Me.website.Text
mit Hilfe eines Haltepunktes aus, genau wenn du ihn per Application.FollowHyperlink öffnen willst.
Was sagt der Debugger?
Me.website.Text
mit Hilfe eines Haltepunktes aus, genau wenn du ihn per Application.FollowHyperlink öffnen willst.
Was sagt der Debugger?
Antwort 8 von Cello
Ich hoffe, ich habe Dich da richtig verstanden. Habe nämlich keinen blassen Schimmer von VBA.
Habe den Haltepunkt gesetzt und zwar auf der Linie von Hyperlink. Was nun ein debugger ist, weiss ich nicht genau. Aber wenn ich mit der Maus über Me.website.Text fahre, erscheint das folgende:
Me.website.Text="www.1-zu-1.ch"
Das sieht ja schon mal gut aus. Aber ist das der Debugger ?
Sorry. Dämliche Frage. Habe aber echt keine Ahnung.
Habe den Haltepunkt gesetzt und zwar auf der Linie von Hyperlink. Was nun ein debugger ist, weiss ich nicht genau. Aber wenn ich mit der Maus über Me.website.Text fahre, erscheint das folgende:
Me.website.Text="www.1-zu-1.ch"
Das sieht ja schon mal gut aus. Aber ist das der Debugger ?
Sorry. Dämliche Frage. Habe aber echt keine Ahnung.
Antwort 9 von firefox
Es gibt keine dämlichen Fragen, nur dämliche Antworten... ;)
Debugger ist im Endeffekt genau das was du gemacht hast - den Code im Ablauf angehalten und Werte geprüft.
Alternativ zum Mausdrüberhalten, kann man aber noch im Debugfenster (Strg-G) etwas komfortabler Variablen auslesen - nichts anderes meinte ich.
ZU deinem Problem:
hier fehlt das Protokoll, also "http://" nur weil dein Browser das selbstständig hinzufügt macht das Access noch lange nicht ;-)
Also teste mal ob
Application.followhyperlin "http://www.1-zu-1.ch"
funktioniert - sollte es nämlich.
Application.followhyperlin "www.1-zu-1.ch" führt zu oben genanntem Fehler...
gruß Firefox
Debugger ist im Endeffekt genau das was du gemacht hast - den Code im Ablauf angehalten und Werte geprüft.
Alternativ zum Mausdrüberhalten, kann man aber noch im Debugfenster (Strg-G) etwas komfortabler Variablen auslesen - nichts anderes meinte ich.
ZU deinem Problem:
hier fehlt das Protokoll, also "http://" nur weil dein Browser das selbstständig hinzufügt macht das Access noch lange nicht ;-)
Also teste mal ob
Application.followhyperlin "http://www.1-zu-1.ch"
funktioniert - sollte es nämlich.
Application.followhyperlin "www.1-zu-1.ch" führt zu oben genanntem Fehler...
gruß Firefox
Antwort 10 von firefox
Sollte natürlich " Application.FollowHyperlink" heißen ...
Antwort 11 von Cello
Ciao Firefox
Es funktioniert. Das heisst also, dass meine Accessversion das Autom. Voransetzen von http:\\ an die Adresse nicht ausführt ? Könnte es sein, dass dies zusammenhängt mit der Version von Access ? Wir haben nämlich noch 97. Habe aber eben letzte Woche vernommen, dass unsere Firma mitte Aug. nun auf eine neuere Version umstellen wird. Dann würde ev. das Problem ja gelöst.
Gruss
Cello
Es funktioniert. Das heisst also, dass meine Accessversion das Autom. Voransetzen von http:\\ an die Adresse nicht ausführt ? Könnte es sein, dass dies zusammenhängt mit der Version von Access ? Wir haben nämlich noch 97. Habe aber eben letzte Woche vernommen, dass unsere Firma mitte Aug. nun auf eine neuere Version umstellen wird. Dann würde ev. das Problem ja gelöst.
Gruss
Cello
Antwort 12 von firefox
Nein, das Protokoll muß immer angegeben werden, auch bei späteren Access Versionen ...
Also in VBA so lösen:
dann darf natürlich in "website" nicht auch noch "http://" stehen...
Also in VBA so lösen:
Application.FollowHyperlink "http://" & Me.website.Textdann darf natürlich in "website" nicht auch noch "http://" stehen...
Antwort 13 von Cello
Firefox, Du bist ein Genie ! Es klappt einwandfrei !
Das einzige, was ich noch lösen muss ist, dass wenn das Feld leer ist, dann keine Fehlermeldung erscheint. Es gibt immer noch Firmen, die noch keine Website haben. Doch das bringe ich bei Gelegenheit sicher auch noch hin.
Vielen, vielen herzlichen Dank für Deine Mühe und alles.
Gruss aus der Schweiz
Cello
Das einzige, was ich noch lösen muss ist, dass wenn das Feld leer ist, dann keine Fehlermeldung erscheint. Es gibt immer noch Firmen, die noch keine Website haben. Doch das bringe ich bei Gelegenheit sicher auch noch hin.
Vielen, vielen herzlichen Dank für Deine Mühe und alles.
Gruss aus der Schweiz
Cello
Antwort 14 von firefox
Freut mich geholfen zu haben.
Als Tipp zu leeren Daten: Länge des Textfelder vorher abfragen...
if len(website.text) > 0 then
usw.
Frohes Schaffen.
Firefox
Als Tipp zu leeren Daten: Länge des Textfelder vorher abfragen...
if len(website.text) > 0 then
usw.
Frohes Schaffen.
Firefox
Antwort 15 von Cello
Und nochmals haste mir helfen können. Mit diesem Befehl, kriege ich keine Fehlermeldungen mehr und das ganze ist einfach perfekt ! Es ist ne wahre Freude !!!
Nochmals vielen herzlichen Dank und alle Gute !
Cello
Nochmals vielen herzlichen Dank und alle Gute !
Cello

