Solved

Copy & Paste HTML Content

Posted on 2003-12-11
10
949 Views
Last Modified: 2012-06-21
What I want to do is...
Copy HTML content from a web page (via iexplorer) and retrieve the content.
For example if I paste it in a text box I will have the text and not the html, if I paste it in word I will have html content...
Many thx
0
Comment
Question by:meciab
  • 4
  • 3
  • 2
  • +1
10 Comments
 
LVL 3

Assisted Solution

by:bossjohnc
bossjohnc earned 200 total points
Comment Utility
This will get the contents of an HTML page and put it in to a string...


Option Compare Database

Option Explicit
'Begin declarations for URL opening
'----------------------------------
Private Const INTERNET_OPEN_TYPE_PRECONFIG = 0
Private Const INTERNET_OPEN_TYPE_DIRECT = 1
Private Const INTERNET_OPEN_TYPE_PROXY = 3

Private Const scUserAgent = "VB Project"
Private Const INTERNET_FLAG_RELOAD = &H80000000

Private Declare Function InternetOpen Lib "wininet.dll" _
  Alias "InternetOpenA" (ByVal sAgent As String, _
  ByVal lAccessType As Long, ByVal sProxyName As String, _
  ByVal sProxyBypass As String, ByVal lFlags As Long) As Long

Private Declare Function InternetOpenUrl Lib "wininet.dll" _
  Alias "InternetOpenUrlA" (ByVal hOpen As Long, _
  ByVal sUrl As String, ByVal sHeaders As String, _
  ByVal lLength As Long, ByVal lFlags As Long, _
  ByVal lContext As Long) As Long

Private Declare Function InternetReadFile Lib "wininet.dll" _
  (ByVal hFile As Long, ByVal sBuffer As String, _
   ByVal lNumBytesToRead As Long, lNumberOfBytesRead As Long) _
  As Integer

Private Declare Function InternetCloseHandle _
   Lib "wininet.dll" (ByVal hInet As Long) As Integer
'--------------------------------
'End declarations for URL opening

Public Function OpenURL(ByVal sUrl As String) As String
'****************************************************
'PURPOSE:       Returns Contents (including all HTML) from
'               a web page
'PARAMETER:     sURL (e.g., http://www.freevbcode.com)
'RETURN VALUE:  Contents of requested page, or
'               empty string if sURL is not available
'COMMENTS:  This is an alternative to using the Internet Transfer
'           Control 's OpenURL method.  That control has a bug
'           Whereby not all the contents of the page will be
'           returned in certain circumstances
'*****************************************************

    Dim hOpen               As Long
    Dim hOpenUrl            As Long
    Dim bDoLoop             As Boolean
    Dim bRet                As Boolean
    Dim sReadBuffer         As String * 2048
    Dim lNumberOfBytesRead  As Long
    Dim sBuffer             As String

hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_PRECONFIG, _
    vbNullString, vbNullString, 0)

hOpenUrl = InternetOpenUrl(hOpen, sUrl, vbNullString, 0, _
   INTERNET_FLAG_RELOAD, 0)

    bDoLoop = True
    While bDoLoop
        sReadBuffer = vbNullString
        bRet = InternetReadFile(hOpenUrl, sReadBuffer, _
           Len(sReadBuffer), lNumberOfBytesRead)
        sBuffer = sBuffer & Left$(sReadBuffer, _
             lNumberOfBytesRead)
        If Not CBool(lNumberOfBytesRead) Then bDoLoop = False
    Wend
     
    If hOpenUrl <> 0 Then InternetCloseHandle (hOpenUrl)
    If hOpen <> 0 Then InternetCloseHandle (hOpen)
    OpenURL = sBuffer

End Function
0
 
LVL 3

Expert Comment

by:bossjohnc
Comment Utility
This will chop the front of the string off up until you find a keyword that you want...

You might have to do something similar for the end of the text if you really want it to be neat...

strKey = "my keyword"
strData = OpenURL("http://www.myurl.com/mypage.html")

Do While strData <> ""
KLStart:
    Do While strKey <> ""
        strKeyLet = Mid(strKey, 1, 1)
        If Mid(strData, 1, 1) = strKeyLet Then
            strKey = Mid(strKey, 2)
            strData = Mid(strData, 2)
            If strKey = "" Then
                Me.txtMyText = strData
                Exit Sub
            End If
        Else
            If strData = "" Then
                MsgBox "Key Not Found!"
                Exit Sub
            End If
            strData = Mid(strData, 2)
            GoTo KLStart
        End If
    Loop
Loop
0
 

Author Comment

by:meciab
Comment Utility
sorry, but that's not what I want to do, I don't want to retrieve a page from an url.
I want to copy a part of a page, (via iexplorer) and retrieve the html content.
0
 
LVL 26

Expert Comment

by:Alan Warren
Comment Utility
You mean like: right click the page and choose view source, then copy/paste.

or File > SaveAs > Webpage Complete

do you want to do this programatically?


Alan :)
0
 
LVL 8

Expert Comment

by:ampapa
Comment Utility
Why don't you use paste special in Word and paste it as unformatted text?

Do you also need to do this progmatically? Here is a link to MS that will help in getting info from the clipboard -  http://support.microsoft.com/?kbid=212730

Here is also some info on using the clipboard: (http://graphicsmagician.com)

Visual Basic: Using the Clipboard with Text
Methods used with the clipboard:


Clipboard.Clear            'clears the clipboard contents
Clipboard.SetText string      'puts 'string' text on the clipboard
Clipboard.GetText()            'returns clipboard's text as a string
Text1.SelText            'refers to selected text,
                  'or cursor's position in text control
Example
Assume txtBox is a Text Box control:


Sub mnuCut_Click ()
    ' empty the clipboard
    Clipboard.Clear
    ' copy the selected text to the clipboard
    Clipboard.SetText txtBox.SelText
    ' and remove the selected text
    txtBox.SelText = ""
End Sub

Sub mnuCopy_Click ()
    ' empty the clipboard
    Clipboard.Clear
    ' and copy the selected text to the clipboard
    Clipboard.SetText txtBox.SelText
End Sub

Sub mnuPaste_Click ()
    ' paste clipboad text into document
    txtBox.SelText = Clipboard.GetText()
End Sub


0
Free Trending Threat Insights Every Day

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

 

Author Comment

by:meciab
Comment Utility
just try something
select the bottom of thise page press ctrl+c then got o word and press ctrl+v
You will have the text formatted. How to retrieve this content
Is there an activeX or any object who can handle html in access.
Thanks
0
 

Author Comment

by:meciab
Comment Utility
Or is a word object can be integreted in access.
where I can paste (from part of html page), write, read data on it and store the content.
0
 
LVL 26

Accepted Solution

by:
Alan Warren earned 300 total points
Comment Utility
yeah a microsoft Web Browser control can handle html in Access

You can embed a Microsoft Web Browser into your form.

Create a new form, show the toolbox, click the more tools icon in the bottom right corner of the toolbox.
Choose Microsoft Web Browser.

This control is capable of running most any website within an Access Form and can be driven using Access VBA.

Me.WebBrowser1.Navigate "someURL"

Alan :)


0
 
LVL 3

Expert Comment

by:bossjohnc
Comment Utility
If you wanted to store pages, you could get them with the code I posted and then view them with the browser control Alan mentions.
0
 
LVL 3

Expert Comment

by:bossjohnc
Comment Utility
If you wanted to store pages, you could get them with the code I posted and then view them with the browser control Alan mentions.
0

Featured Post

Backup Your Microsoft Windows Server®

Backup all your Microsoft Windows Server – on-premises, in remote locations, in private and hybrid clouds. Your entire Windows Server will be backed up in one easy step with patented, block-level disk imaging. We achieve RTOs (recovery time objectives) as low as 15 seconds.

Join & Write a Comment

When you are entering numbers in a speadsheet, and don't remember what 6×7 is, you just type “=6*7" instead. It works in every cell! This is not so in Access. To enter the elusive 42 in a text box, you have to find a calculator, and then copy the re…
A simple tool to export all objects of two Access files as text and compare it with Meld, a free diff tool.
Learn how to number pages in an Access report over each group. Activate two pass printing by referencing the pages property: Add code to the Page Footers OnFormat event to capture the pages as there occur for each group. Use the pages property to …
What’s inside an Access Desktop Database. Will look at the basic interface, Navigation Pane (Database Container), Tables, Queries, Forms, Report, Macro’s, and VBA code.

771 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

14 Experts available now in Live!

Get 1:1 Help Now