run time error 46 - follow hyperlink

Status
Niet open voor verdere reacties.

Scallebe

Gebruiker
Lid geworden
29 okt 2014
Berichten
528
Goede morgen ontwikkelaars,

Ik heb op mijn form diverse links naar internet- en intranet pagina's.

voorbeeld :

Code:
Private Sub Command1_Click()

Application.FollowHyperlink "https://symphony.idcn.mil.intra", , True

End Sub

Soms werken deze links en soms niet... :(

dan krijg ik deze errormelding :

error 46.JPG


Hoe kan ik dit oplossen?

Thanks

Greetz

Pascal
 
En je weet zeker dat de websites het wél doen als je de link rechtstreeks in een browser intypt?
 
Jouw voorbeeldje bijvoorbeeld: doet het niet. Dus dan is het logisch dat je opdracht het ook niet doet.
 
OctaFish,

Het voorbeeld dat ik meegegeven heb is een pagina op ons intranet. Daar zal jij geen toegang tot hebben.

Al de URL's zijn juist (100% zeker van) want als ik deze open met via een shortcut, of als opgeslagen favoriet, dan werken deze prima.

Het rare is als IE reeds open is op gelijk welke pagina dan worden de pagina's wel geladen (in een nieuwe tab). Het probleem doet zich (soms) voor wanneer IE nog niet geopend is.

Greetz
 
Het probleem doet zich (soms) voor wanneer IE nog niet geopend is.
Dan zit daar dus je probleem: vermoedelijk een timeout waardoor de pagina niet geladen kan worden. Ik zou er een check bijzetten die controleert of IE al open staat of niet, en anders eerst een browser opstarten voordat je de link stuurt. In welk geval je de hele afhandeling natuurlijk net zo goed helemaal in die routine kan afhandelen, en dus zonder FollowHyperlink.
 
OctaFish,

Je hebt uiteraard gelijk, maar ik ben een tool aan het maken waar een nieuwkomer o.a. alle nodige interne en externe websites kan terugvinden. Als die persoon dan zelf shortcuts creëert of de pagina's als favoriet gaat instellen daar is hij/zij natuurlijk vrij in...


Hoe kan ik deze IE check coderen?

Is er op het forum reeds een voorbeeld terug te vinden?

Thanks

Greetz

Pascal
 
Je kunt dit eens proberen:
Code:
Dim IE As Object
    Set IE = CreateObject("InternetExplorer.Application")
    IE.navigate "https://symphony.idcn.mil.intra"
    IE.Visible = True
    While IE.Busy
        WaitUntil = Now + TimeValue("00:00:02")
        Do
            DoEvents
        Loop Until Now >= WaitUntil
        DoEvents
    Wend

Dan wordt er altijd een IE sessie gestart, ongeacht of er al een open is.
 
En als je wilt checken of IE al open staat of niet, kan je dat zo doen:

Code:
Private Sub Command1_Click()
     GetIE "https://symphony.idcn.mil.intra"
End Sub

Code:
Function GetIE(URL As String)
Dim IE As Object
  
  With CreateObject("Shell.Application").Windows
    If .Count > 0 Then
      ' Get IE
      Set IE = .Item(0) ' or .Item(.Count - 1)
    Else
      ' Create IE
      Set IE = CreateObject("InternetExplorer.Application")
      IE.Visible = True
    End If
    IE.navigate URL
    Set IE = Nothing
  End With
  
End Function
 
OctaFish,

Ik heb jouw oplossingen in #7 en #8 uitgeprobeerd en ze werken. :thumb:

In de code van #7 heb ik wel het volgende moeten toevoegen :

Code:
Dim WaitUntil As String

Ik kreeg een Compile error: Variable not defined (Is dit de juiste definitie?)


Ik heb ondertussen nog een andere oplossing gevonden op een access-forum in UK

https://access-programmers.co.uk/forums/showthread.php?t=104421

Code:
Private Sub Command1_Click()

Dim strUrl As String

strUrl = "https://symphony.idcn.mil.intra"
Call Shell("explorer.exe " & strUrl, vbMaximizedFocus)

End Sub

Bedankt voor de oplossingen. Ik heb weer bijgeleerd vandaag.

Tot de volgende.

Greetz

Pascal
 
Code:
Dim WaitUntil As String
WaitUntil kan nooit een string zijn; als je getalsvergelijkingen gaat doen, moet je met getallen werken, niet met een string. Tenzij je een alfanumerieke vergelijking doet, maar daar heb je hier niks aan.
 
Octafish,

Hoe moet het dan gedefinieerd worden?

Want zonder definitie geeft hij een error...

Greetz

Pascal
 
WaitUntil is een Datum/tijd veld dus deze varianten zouden allebei moeten werken:
Code:
Dim WaitUntil As Date
Dim WaitUntil As Variant
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan