MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Access & Datenbanken > Microsoft Access
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 07.06.2016, 13:13   #1
rodgerwilco
MOF User
MOF User
Standard Acc2010 - Internet Explorer steuern

Hallo zusammen,

da Googlen nicht so recht weiterhalf, würde ich mich gerne mit meinem Problem an die Community wenden. Es ist recht einfach erklärt.
Aus Access heraus möchte ich bei Klick auf ein Objekt einen Internet Explorer öffnen und eine bestimmte Webseite laden. Soweit funktioniert das auch. Mich stört jedoch, dass bei jedem Klick eine neue Instanz des IE geöffnet wird. Daher die Frage:
Wie kann ich prüfen, ob bereits eine Instanz des IE geöffnet ist? Wie kann ich auf die bereits geöffnete Instanz zugreifen und dort ein neues Tab anlegen?
Danke für eure Hilfe

greetz
rodgerwilco
rodgerwilco ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 07.06.2016, 13:39   #2
MaggieMay
MOF Koryphäe
MOF Koryphäe
Standard

Hallo,

zeig doch einfach mal deinen bisherigen Code hierzu, dann haben wir eine gemeinsame Grundlage.

__________________

Gruß Maggie
MaggieMay ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 07.06.2016, 13:59   #3
rodgerwilco
Threadstarter Threadstarter
MOF User
MOF User
Standard

Gekürzt auf das Wesentliche bleibt folgendes übrig:

Code:

Private Sub cmd_Click()
    Call subOeffneExplorer(txtInfoBox)
End Sub

Public Sub subOeffneExplorer(p_strParameter as String)	
	
    Dim IE As InternetExplorer
    
    Set IE = New InternetExplorer
    IE.Visible = True
        
    IE.Navigate "http://www.meinewebseite.de/" & p_strParameter
	
End Sub
Das funktioniert soweit, öffnet jedoch bei jedem Aufruf eine neue Explorer-Instanz

Geändert von rodgerwilco (07.06.2016 um 14:10 Uhr).
rodgerwilco ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 07.06.2016, 19:25   #4
markusxy
MOF Meister
MOF Meister
Standard

Zitat: von rodgerwilco Beitrag anzeigen

Gekürzt auf das Wesentliche bleibt folgendes übrig:

Code:

Private Sub cmd_Click()
    Call subOeffneExplorer(txtInfoBox)
End Sub

Public Sub subOeffneExplorer(p_strParameter as String)	
	
    Dim IE As InternetExplorer
    
    Set IE = New InternetExplorer
    IE.Visible = True
        
    IE.Navigate "http://www.meinewebseite.de/" & p_strParameter
	
End Sub
Das funktioniert soweit, öffnet jedoch bei jedem Aufruf eine neue Explorer-Instanz

Die einfache Lösung, ist die Verwendung einer globalen Variabel damit nicht ständig eine neue Instanz geöffnet wird

Kleines Beispiel:

Code:

Private oIE As InternetExplorer
Property Get InternetExplorerApp() As InternetExplorer
    

    If TypeName(oIE) <> "IWebBrowser2" Then
        Set oIE = New InternetExplorer
        oIE.Visible = True
    End If
    
    Set InternetExplorerApp = oIE
End Property
Damit ein weiteres Fenster geöffnet wird, muss man die entsprechenden Argumente bei navigate mitgeben:

Hier gibts die Infos.

/Edit
Wenn du nach der shell.application vba googelst, findest aber auch Beispiele zur Auflistung der IE.
LG Markus

Geändert von markusxy (07.06.2016 um 19:32 Uhr).
markusxy ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 08.06.2016, 07:22   #5
rodgerwilco
Threadstarter Threadstarter
MOF User
MOF User
Standard

Moin,

erstmal danke für die Antwort. Irgendwie bekomme ich aber trotzdem nicht hin. Mein Code sieht nun wie folgt aus:

Code:

Private oIE As InternetExplorer

Enum BrowserNavConstants
    navOpenInNewWindow = 1
    navNoHistory = 2
    navNoReadFromCache = 4
    navNoWriteToCache = 8
    navAllowAutosearch = 16
    navBrowserBar = 32
    navHyperlink = 64
    navEnforceRestricted = 128
    navNewWindowsManaged = 256
    navUntrustedForDownload = 512
    navTrustedForActiveX = 1024
    navOpenInNewTab = 2048
    navOpenInBackgroundTab = 4096
    navKeepWordWheelText = 8192
    navVirtualTab = 16384
    navBlockRedirectsXDomain = 32768
    navOpenNewForegroundTab = 65536
End Enum

Property Get InternetExplorerApp() As InternetExplorer
    If TypeName(oIE) <> "IWebBrowser2" Then
        Set oIE = New InternetExplorer
        oIE.Visible = True
    End If
    Set InternetExplorerApp = oIE
End Property

Private Sub cmd_Click()
    Call subOeffneExplorer(txtInfoBox)
End Sub

Public Sub subOeffneExplorer(p_strParameter as String)	
    Call InternetExplorerApp.Navigate("http://www.meinewebseite.de/" & p_strParameter, navOpenInNewTab)
End Sub
Es öffnet sich immer noch jeweils eine neue Instanz. Das scheint daran zu liegen, dass die Funktion "TypeName" in der Property "InternetExplorerApp" immer als return-Value "Object" zurückliefert und dadurch eine neue Instanz generiert wird.

[EDIT:]
Die Variable "oIE" scheint nach dem ersten "Durchlauf" die Referenz zu verlieren.

Greetz

Geändert von rodgerwilco (08.06.2016 um 07:30 Uhr).
rodgerwilco ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 08.06.2016, 07:30   #6
markusxy
MOF Meister
MOF Meister
Standard

Zitat:

Das scheint daran zu liegen, dass die Funktion "TypeName" in der Property "InternetExplorerApp" immer als return-Value "Object" zurückliefert und dadurch eine neue Instanz generiert wird.

Wenn du das Problem kennst, warum änderst du dann die Qodesquenz nicht?
LGM
markusxy ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 08.06.2016, 07:34   #7
rodgerwilco
Threadstarter Threadstarter
MOF User
MOF User
Standard

Die Variable "oIE" scheint nach dem ersten "Durchlauf" die Referenz zu verlieren.
Dadurch wird dann "Object" von der Funktion "TypeName" geliefert. Warum die Referenz verloren geht, erschließt sich mir gerade nicht.
rodgerwilco ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 08.06.2016, 08:40   #8
markusxy
MOF Meister
MOF Meister
Standard

Zitat: von rodgerwilco Beitrag anzeigen

Die Variable "oIE" scheint nach dem ersten "Durchlauf" die Referenz zu verlieren.
Dadurch wird dann "Object" von der Funktion "TypeName" geliefert. Warum die Referenz verloren geht, erschließt sich mir gerade nicht.

Gewöhnlich wenn der IE geschlossen wurde. Kannst ja ganz einfach austesten.
Beim "verlieren" müsste sie sonst auf Nothing stehen.

LG Markus
markusxy ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 09.06.2016, 09:44   #9
rodgerwilco
Threadstarter Threadstarter
MOF User
MOF User
Standard

Die Objektreferenz scheint doch nicht komplett verloren zu gehen, aber irgednetwas stimmt trotzdem nicht.
Die Überwachung des Objekts "oIE" sieht nach dem ersten Durchlauf aus wie im Anhang.
Angehängte Grafiken
Dateityp: png watch.png (2,9 KB, 7x aufgerufen)
rodgerwilco ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 09.06.2016, 11:21   #10
markusxy
MOF Meister
MOF Meister
Standard

Zitat: von rodgerwilco Beitrag anzeigen

Die Objektreferenz scheint doch nicht komplett verloren zu gehen, aber irgednetwas stimmt trotzdem nicht.
Die Überwachung des Objekts "oIE" sieht nach dem ersten Durchlauf aus wie im Anhang.

Also wie das geht ist mir ein Rätsel.
Ich nehme schon an, der Code steht in einem normalen Modul?

Welche Version IE hast du?
Und werden beim ersten öffnen des IE zwei Tabs angezeigt?

LG M
markusxy ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 09.06.2016, 12:04   #11
Joss
MOF Profi
MOF Profi
Standard

Ich habe den Code getestet.

• Beim ersten Durchlauf werden 2 Registerkarten geöffnet. Die erste Registerkarte ist leer, die zweite enthält die Webseite.
• Beim zweiten Durchlauf wird ein weiterer Tab mit der gleichen Webseite geöffnet, usw..

Das heißt, ich würde den Parameter navOpenInNewTab weglassen, denn dann wird die Webseite auch bei mehreren Durchläufen nur einmal geöffnet.

Ansonsten funktioniert der Code fehlerfrei.

Gruß
Josef
Joss ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.06.2016, 07:04   #12
rodgerwilco
Threadstarter Threadstarter
MOF User
MOF User
Standard

Guten Morgen,

also ich habe jetzt nochmal ein wenig rumprobiert mit folgendem Ergebnis. Der Quellcode funktioniert so wie gepostet und öffnet mit Paramter navOpenInNewTab ein neues Tab ...

...jedoch nicht bei allen URLs.

funktionfähig ist:
https://www.google.de/?gws_rd=ssl#q=testsuche
http://www.web.de
http://winfuture.de/news/ticker/

nicht funktionsfähig ist die URL, die ich nutzen möchte :-( Hier wird der Explorer gestartet. Nach dem Start sind ganz kurz zwei Tabs zu sehen, von denen eins sofort wieder verschwindet.

https://"SERVER_OHNE_WWW":"PORT"/"DIRECTORY"/"PARAMETERÜBERGABE"

Sind irgendwelche Einschränkungen bezüglich der URL bekannt?

Greetz
rodgerwilco ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.06.2016, 07:42   #13
markusxy
MOF Meister
MOF Meister
Standard

Zitat: von rodgerwilco Beitrag anzeigen

nicht funktionsfähig ist die URL, die ich nutzen möchte :-( Hier wird der Explorer gestartet. Nach dem Start sind ganz kurz zwei Tabs zu sehen, von denen eins sofort wieder verschwindet.

Laut deinem Eingangspost:

Zitat:

Aus Access heraus möchte ich bei Klick auf ein Objekt einen Internet Explorer öffnen und eine bestimmte Webseite laden. Soweit funktioniert das auch.

Test mal ohne neuen Tab, denn laut deiner Aussage hat es ja funktioniert.
Mit der Adresse kann es natürlich nichts zu tun haben.

Aber wo der Fehler liegt, dass mußt wohl selbst herausfinden.
Du könntest auch das NavigateError Event auswerten, falls du dann mit der Fehlermeldung was anfangen kannst. Oder eventuell weiß einer unserer Profis im Bereich Web da mehr - du bist ja in einem Access Forum.

LG Markus
markusxy ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:10 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.