Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Zugriff auf das Webbrowser-Steuerelement

598 views
Skip to first unread message

Guido Altmann

unread,
Mar 31, 2010, 10:25:05 AM3/31/10
to
Schönen Tag Kollegen,

hate die Frage versehentlich in der falschen group plaziert - sorry

mein Start-Form. sieht praktisch wie folgt aus:

Auf der linken Seite benutze ich ein Treeview als Navigationsleiste. Rechts
habe ich durch ein UFo ein Webbrowsersteuerelemnt eingebunden, dass mir eine
lokale htm Datei anzeigt (Info-Center). Über VB-Script kann ich
Datenbankabfragen, wie Anzahl der Datensätze in Platzhalter der htm-Datei
setzen, habe aber wohl keinen Zugriff auf meine globalen Access-Variablen um
wirklich sinnvolle Daten, wie Anzahl von offenen Aufträgen usw. abfragen.
Ich müsste also von Access Daten in die im Control angezeigte site über
Platzhalter dastellen können. Wie greife ich aus Acces also auf die site im
conrol zu?

Ich komme da echt nicht weiter, so zeige ich die htm-Datei über das control
an

Private oBr As SHDocVw.WebBrowser
Private doc As MSHTML.HTMLDocument


Private Sub oBr_DocumentComplete(ByVal pDisp As Object, URL As Variant)
Set doc = oBr.Document
End Sub

Private Sub Form_Open(Cancel As Integer)
oBr.Navigate2 CStr(DBPfad & "\netlInfo.htm")
End Sub

Jeglicher Zugriff wie:

oBr.Document.all.meinAbsatz.innerHTML = "Guido"
oBr.getElementById("meinAbsatz").Value .="Testeintrag")

oder andere Versuche klappen nicht

Hat jemand hiermit Erfahrung???

Mit freundlichen Grüßen

Guido Altmann

Thomas Möller

unread,
Mar 31, 2010, 10:32:32 AM3/31/10
to
Hallo Guido,

Am 31.03.2010 16:25, schrieb Guido Altmann:
> mein Start-Form. sieht praktisch wie folgt aus:
>
> Auf der linken Seite benutze ich ein Treeview als Navigationsleiste. Rechts
> habe ich durch ein UFo ein Webbrowsersteuerelemnt eingebunden, dass mir
> eine
> lokale htm Datei anzeigt (Info-Center). Über VB-Script kann ich
> Datenbankabfragen, wie Anzahl der Datensätze in Platzhalter der htm-Datei
> setzen, habe aber wohl keinen Zugriff auf meine globalen
> Access-Variablen um
> wirklich sinnvolle Daten, wie Anzahl von offenen Aufträgen usw. abfragen.
> Ich müsste also von Access Daten in die im Control angezeigte site über
> Platzhalter dastellen können. Wie greife ich aus Acces also auf die site im
> conrol zu?
>

> Hat jemand hiermit Erfahrung???

schau mal www.donkarl.com auf die Downloadseiten zur 7. AEK. Dort hat
Jörg Ackermann einen Vortrag mit dem Titel "Nutzen von Online-Angeboten
in Access" gehalten.

CU
--
Thomas

Homepage: www.Team-Moeller.de

Guido Altmann

unread,
Mar 31, 2010, 12:28:10 PM3/31/10
to
Hallo Thomas,

Danke, echt super Info! Die Beispiele sind nicht einsehbar???

Habe es jetzt soweit, dass ich ein Test-Textfeld im Browser mit einen
Textfeld in meinem Form live synchronisieren kann. Da ich aber keine
Textfelder in der html-Datei benutze muss ich noch schauen wie ich im
Browser über die id und innertext meine Daten in das html-Dokument bekomme.

Hier eine Zeile in der html-Datei:

<td id='id_oAuftraege' valign="middle" align="right" >&nbsp;</td>

Fällt Dir da spontan was ein?

Liebe Grüße

Guido

"Thomas Möller" <Thomas_N_...@Team-Moeller.de> schrieb im Newsbeitrag
news:81h4o0...@mid.individual.net...

Thomas Möller

unread,
Mar 31, 2010, 12:43:39 PM3/31/10
to
Hallo Guido,

Am 31.03.2010 18:28, schrieb Guido Altmann:
> Danke, echt super Info! Die Beispiele sind nicht einsehbar???

für die Teilnehmer der Konferenz gab es damals eine CD mit den Beispielen.

> Habe es jetzt soweit, dass ich ein Test-Textfeld im Browser mit einen
> Textfeld in meinem Form live synchronisieren kann. Da ich aber keine
> Textfelder in der html-Datei benutze muss ich noch schauen wie ich im
> Browser über die id und innertext meine Daten in das html-Dokument bekomme.
>
> Hier eine Zeile in der html-Datei:
>
> <td id='id_oAuftraege' valign="middle" align="right" >&nbsp;</td>
>
> Fällt Dir da spontan was ein?

eine ganz andere Idee wäre, dass Du Dir jeweils eine HTML-Datei mit den
notwendigen Inhalten erstellst und diese dann anzeigen lässt.

Andreas Vogt

unread,
Mar 31, 2010, 2:31:49 PM3/31/10
to
Hallo,
dazu musst du zusätzliche Events programmieren.
Sieh dir mal diesen Artikel an:
http://www.accessblog.de/archives/28
Vorallem die beiden Punkte 1 und 2.

Andreas

Guido Altmann

unread,
Mar 31, 2010, 6:00:50 PM3/31/10
to
Hallo Andreas,

Danke für den link

ich habe das "schreiben" in die html-Datei mit der Eigenschaft innerText
gelöst:

HTML.all("AnzahlMietObjekte").innerText = "345"

Da ich in dem Webbrowser Control viele Daten anzeige, es ist praktisch eine
Art Info-Center mit ToDo Liste, möchte ich jetzt noch die schon erstellten
links oder Buttons in der html-Datei zum Aufrufen von Forms nutzen. Ich
suche jetzt praktisch einen Weg von außen nach innen.

Hast Du hier vielleicht eine Idee?

Gruß

Guido

"Andreas Vogt" <webm...@access-o-mania.de> schrieb im Newsbeitrag
news:078c7208-563a-4752...@33g2000yqj.googlegroups.com...

Andreas Vogt

unread,
Apr 1, 2010, 1:31:11 PM4/1/10
to
Hallo,
wenn du mit Außen nach Innen meinst, dass Access Events eine
Browserseite auslöst, dann ist das einfach zu machen.... lass einfach
per VBA eine neue HTML-Seite erzeugen.
Auch dazu findest du Infos in meinem Blog.

Andreas

Guido Altmann

unread,
Apr 1, 2010, 6:29:36 PM4/1/10
to
Hallo Andreas,

ich meine, wenn ich einen Button oder link im Browser-Control anklicke, soll
zum Beispiel ein Form aufgehen oder ein Befehl in Access ausgef�hrt werden.
Hierzu finde ich keine Info. Habe die Infos in Deinem Blog (sch�n gemacht)
eigentlich auch alle durch.

Liebe Gr��e

Guido

"Andreas Vogt" <webm...@access-o-mania.de> schrieb im Newsbeitrag

news:8fb21008-d92c-418c...@z6g2000yqz.googlegroups.com...
> Hallo,
> wenn du mit Au�en nach Innen meinst, dass Access Events eine
> Browserseite ausl�st, dann ist das einfach zu machen.... lass einfach

Andreas Vogt

unread,
Apr 2, 2010, 3:35:58 AM4/2/10
to
Hallo,
kannst du nicht lesen?
Das steht alles haarklein in dem Blogartikel unter Punkt 1.
Deklarationsteil:
Private WithEvents Browser As SHDocVw.WebBrowser
Klick-Ereignis abfangen:
Private Sub WebBrowser_BeforeNavigate2(ByVal pDisp As Object, URL As
Variant, Flags As Variant, TargetFrameName As Variant, PostData As
Variant, Headers As Variant, Cancel As Boolean)
'mach was
End Sub

Was die Parameter im einzelnen bedeuten findest du im Artikel.
Gruß Andreas

BTW:
Ich empfehle immer nur 1 HTML-Datei zu verwenden, z.B. index.html, und
diese in Access immer wieder mit den aktuellen Werten zu erstellen


Guido Altmann

unread,
Apr 3, 2010, 3:18:32 AM4/3/10
to
Guten Morgen Andreas,

doch, ich kann lesen, aber irgendwie kann ich es nicht umsetzen.

Dim WithEvents HTML As HTMLDocument
Dim WithEvents inputText1 As HTMLInputTextElement
Dim WithEvents bott1 As HTMLButtonElement
Dim WithEvents link1 As HTMLLinkElement
Dim WithEvents WebBrowser1 As SHDocVw.WebBrowser


Hiermit lese ich ein Textfeld im Browser aus:
Private Sub inputText1_onkeyup()
Text12.Value = HTML.Forms(0).elements(0).Value
End Sub

Hiermit schreibe ich in den Browser
Private Sub axWebBrowser_DocumentComplete(ByVal pDisp As Object, URL As
Variant)
Set HTML = axWebBrowser.Document


HTML.all("AnzahlMietObjekte").innerText = "345"

End Sub


Jetzt will ich durch einen Klick auf einen link ein Formular in Access
öffnen
Private Sub WebBrowser1_BeforeNavigate2(ByVal pDisp As Object, URL As


Variant, Flags As Variant, TargetFrameName As Variant, PostData As Variant,
Headers As Variant, Cancel As Boolean)

Dim a String

If a= WebBrowser1.Document.getElementById("link1") Then
DoCmd.OpenForm "frmxyz"
Else
End If
End Sub

Tja und da geht nix.
Ich komme einfach nicht weiter. Im Internet gibt es kaum Infos zu diesem
BeforeNavigate2-Ereignis, habe Deinen Aufsatz durchgearbeitet, auch den von
Thomas Nell und Jörg Ackermann. Die beiden aber nicht auf dieses
Navigate2-Ereignis ein.

Ich denke es ist nur eine Kleinigkeit und es wäre nett von Dir mir einen
Kick in die richtige Richtung zu geben.

Vielen Dank

Guido


"Andreas Vogt" <webm...@access-o-mania.de> schrieb im Newsbeitrag

news:e88e5ec0-5d4d-4da0...@l36g2000yqb.googlegroups.com...

Andreas Vogt

unread,
Apr 3, 2010, 4:34:31 AM4/3/10
to
Hallo,
das funktioniert schon ganz einfach.
Hier mal ein kompletter Beispielcode:

Option Compare Database
Option Explicit

Private WithEvents Browser As SHDocVw.WebBrowser

Private Sub Form_Load()
DoEvents
WebBrowser.Navigate "file:///" & Replace(CurrentProject.Path, "\",
"/") & "/" & "index.html"
End Sub


Private Sub WebBrowser_BeforeNavigate2(ByVal pDisp As Object, URL As
Variant, Flags As Variant, TargetFrameName As Variant, PostData As
Variant, Headers As Variant, Cancel As Boolean)

Dim startpos As Long
Dim FormName As String
startpos = InStr(1, URL, "action=")
If startpos > 0 Then
FormName = Mid(URL, startpos + 7)
Me.Visible = False
DoCmd.OpenForm FormName
End If
End Sub


Meine index.html sieht so aus: (man beachte die Linkadressen)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0013)about:internet -->
<html>
<head>
<title>Test</title>
</head>
<body>
<br /><br />
<a href="index.html?action=Formular1" name="Formular1">Formular1
öffnen</a><br />
<a href="index.html?action=Formular2" name="Formular2">Formular2
öffnen</a><br />
<a href="index.html?action=Formular3" name="Formular3">Formular3
öffnen</a>
<br /><br />
</body>
</html>

Gruß Andreas

Andreas Vogt

unread,
Apr 3, 2010, 4:37:29 AM4/3/10
to
Und zu letzt nicht vergessen beim Schließen der Formulare das eine
Formular mit dem Browserfenster wieder sichtbar machen:
Private Sub Form_Close()
Forms!BrowserFenster.Visible = True
End Sub

Gruß Andreas

Guido Altmann

unread,
Apr 3, 2010, 7:24:00 AM4/3/10
to
Hallo Andreas,

vielen Dank, Du hast mir sehr geholfen.

Schöne Oster!

Guido

Andreas Vogt

unread,
Apr 3, 2010, 8:03:54 AM4/3/10
to
Hallo Guido,
auch dir ein frohes Osterfest.

Gruß Andreas

markus...@itmart.de

unread,
Jul 3, 2014, 2:23:08 PM7/3/14
to
Finde den Vortrag nicht.

Winfried Sonntag

unread,
Jul 3, 2014, 2:38:59 PM7/3/14
to
Am 03.07.2014 schrieb markus...@itmart.de:

> Finde den Vortrag nicht.

http://www.donkarl.com/Downloads/AEK/AEK7_OnlineAngebote.zip

Servus
Winfried
--
Access-FAQ: http://www.donkarl.com/AccessFAQ.htm
Access-Stammtisch: http://www.access-muenchen.de
NNTP-Bridge fᅵr MS-Foren: http://communitybridge.codeplex.com/
0 new messages