Svar: [AccessD] A2003:Test Voracity of URLS

MartyConnelly martyconnelly at shaw.ca
Wed Nov 17 20:50:52 CST 2004


Reference for scripting filesystem object
Wshom.ocx Windows Script Host Model
generically known as WSH

You should be getting Http Url printed out with asterix in debug window
if it is working, before it is placed in the memo field, maybe a typo 
name error in table or code

The code to test validity of url could be something like this
with request status being returned as 404 or 500 for invalid just like 
http error codes;  200 for normal or good

The response Debug.Print HttpReq.StatusText will give you a better 
explanation.

You should have some version of XML installed if using IE 6.0

'?testurlxml("http://www.microsoft.com")
Function testurlxml(strURL As String) As String
  Dim HttpReq As Object
  Set HttpReq = CreateObject("MSXML2.XMLHTTP")
  HttpReq.Open "GET", strURL, False
  HttpReq.send
  'Debug.Print HttpReq.responseText 'this is returned html string
  Debug.Print HttpReq.Status
  Debug.Print HttpReq.StatusText
  testurlxml = HttpReq.Status '200 normal
End Function

You can also verify legality of url string
Private Declare Function PathIsURL Lib "shlwapi.dll" _
   Alias "PathIsURLA" _
  (ByVal pszPath As String) As Long



Private Function IsPathAURL(ByVal sPath As String) As Boolean

  'Tests a given string to determine if it
  'conforms to a valid URL format. Returns
  'True if sPath has a valid URL format,
  'or False otherwise.

  'This function does not verify that the
  'path points to an existing site, only
  'that it has a valid URL format.

   IsPathAURL = PathIsURL(sPath) = 1

End Function

Darren DICK wrote:

>Hi Marty 
>Thanks for the reply
>Couple of Q's though :-))
>
>I can't compile past the...
>
>Dim FSO  as New Scripting.FileSystemObject
>
>What do I need to ref to get this to work?
>
>I tried alternative of....
>
>Set fso = CreateObject("Scripting.FileSystemObject")
>
>and managed to get it to compile and the code 'seemed' to work. In that it
>filled the temp table with what looked to be correct values - but Dunno if
>this is the same
>
>The Public Function GetHTTPfromURL didn't seem to populate the HTTP Column
>the temp table
>
>Once I do have all the relevant information in the table - how do I actually
>tell if
>The link is live (or have I missed it in the code)
>
>Many thanks
>
>Darren
>
>
>-----Original Message-----
>From: accessd-bounces at databaseadvisors.com
>[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of MartyConnelly
>Sent: Thursday, 18 November 2004 7:11 AM
>To: Access Developers discussion and problem solving
>Subject: Re: Svar: [AccessD] A2003:Test Voracity of URLS
>
>I have some really rough code written for Win 95, let me see if I can
>upgraded it but just grab all the ".url"  files in the sub directories below
>that contain your favourites in win xp or win 2000 C:\Documents and
>Settings\usename\Favorites then pass your .url filename to this routine to
>drag out the http address Then pass http url string to xmlhttp or winhttp
>this will return a 404 if not valid or 500 if server gone etc.
>
>Public Function GetHTTPfromURL(FileNaam As String) As String Dim FSO As New
>Scripting.FileSystemObject Dim oFile As file Dim oText As TextStream Dim
>strLine As String
>
>'grab the folder already so just get FileName 'Set oFolder =
>FSO.GetFolder(Path) Set oFile = FSO.GetFile(FileNaam)
>      Set oText = oFile.OpenAsTextStream
>      Do
>         strLine = oText.ReadLine 'contains [InternetShortcut]
>      Loop Until strLine = "[InternetShortcut]"
>      strLine = oText.ReadLine 'should contains URL=
>      oText.Close
>     
>   ' Open "C:\Windows\Favorites\" & Text1.Text & ".url" For Binary Access
>Write As #1 ' Save the file.
>   'Open FileNaam For Binary Access Read As #1 ' Read the file.
>   ' Put #1, , "[InternetShortcut]" & vbNewLine & "URL=" & Text1.Text
>   'Get #1, , VarBuf
>   Debug.Print "**" & strLine & "**"
>   ' Close #1
>   ' MsgBox "URL sucessfully added to Favorites!", vbInformation
>   GetHTTPfromURL = strLine
>End Function
>
>Erwin Craps - IT Helps wrote:
>
>  
>
>>Seeing this, I wunder if there is someone who has some code (and wants 
>>to share it) to check all hyperlinks in the favorites of IE to see if 
>>the page/website still exists?
>>
>>Beeing on the internet for probably about 10 years now got me a lot of 
>>favorites that are aged and no longer exists...
>>
>>I like to clean up (sometimes).
>>
>>Erwin
>>
>>
>>
>>
>>-----Original Message-----
>>From: accessd-bounces at databaseadvisors.com
>>[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Gustav Brock
>>Sent: Wednesday, November 17, 2004 10:36 AM
>>To: accessd at databaseadvisors.com
>>Subject: Svar: [AccessD] A2003:Test Voracity of URLS
>>
>>Hi Darren
>>
>>We use these functions:
>>
>><code module>
>>
>>Private Declare Function URLDownloadToFile Lib "urlmon" Alias 
>>"URLDownloadToFileA" ( _
>> ByVal pCaller As Long, _
>> ByVal szURL As String, _
>> ByVal szFileName As String, _
>> ByVal dwReserved As Long, _
>> ByVal lpfnCB As Long) _
>> As Long
>>
>>Public Function IsURL(ByVal strURL As String) As Boolean
>>
>>' Usage: Check if URL strURL is alive and reachable.
>>'   booURL = IsURL("http://www.ibm.com")
>>'   booURL = IsURL("ftp://ftp.novell.com")
>>'
>>' Note: Protocol header like "http://" must be provided.
>>'
>>' 2001-12-09. Cactus Data ApS. CPH.
>>
>> ' File found at most URLs.
>> Const cstrFileIndex As String = "index.htm"
>>
>> IsURL = (URLDownloadToFile(0, strURL, cstrFileIndex, 0, 0) = 0)
>> 
>>End Function
>>
>></code module>
>>
>>If your URLs contains html document name you will have to modify the 
>>code to use that and not append index.html.
>>
>>/gustav
>>
>> 
>>
>>    
>>
>>>>>d.dick at uws.edu.au 17-11-2004 05:03:08 >>>
>>>>>       
>>>>>
>>>>>          
>>>>>
>>I have an educational client who has a CD full of Education URL's 
>>(Zillion's of 'em) Occasionally someone has to test to see if the links 
>>are broken or not (Manually <yuk>)
>>
>>I thought this would be a perfect application for Access Set up a table 
>>of URLs and loop through 'em and return TRUE or FALSE
>>
>>So...Is there a way I can type in
>>say...http://somewebsite.someserver.com.au
>>and return "true" if the site exists or "false" if the site does not 
>>exist.
>>
>>--
>>_______________________________________________
>>AccessD mailing list
>>AccessD at databaseadvisors.com
>>http://databaseadvisors.com/mailman/listinfo/accessd
>>Website: http://www.databaseadvisors.com
>> 
>>
>>    
>>
>
>--
>Marty Connelly
>Victoria, B.C.
>Canada
>
>
>
>  
>

-- 
Marty Connelly
Victoria, B.C.
Canada






More information about the AccessD mailing list