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

Importare tabelle html da pagina web in access.

798 views
Skip to first unread message

berto

unread,
Jan 23, 2010, 5:57:22 AM1/23/10
to
Buongiorno a tutti,
volevo sapere se � possibile importare le tabelle all'interno di una pagina
web, in una tabella access tramite codice. (Come il menu "ESPORTA IN EXCEL"
del tasto destro di una pagina web).
Nello specifico vorrei importare i risultati di calcio dal seguente
indirizzo:
http://www.sportpress.com/stats/en/1771_italy_serie_a_2009_2010/1_head_to_head/1361_palermo.html
e cosi per tutte le squadre di serie A e B

Gia ho trovato un codice che scarica tutta la pagina web, ma io vorrei
scaricare se possibile solo tabella dei risultati.

Grazie


Antonio

unread,
Jan 24, 2010, 2:14:10 AM1/24/10
to

"berto" <be...@libero.it> ha scritto nel messaggio
news:mCA6n.126315$9f6.1...@twister1.libero.it...
Dai un'occhiata a quanto ha scritto Sergio Mazza qui:
http://groups.google.it/group/it.comp.appl.access/msg/9011c87120b244d4?hl=it
devi solo ricordarti di aggiungere la seguente istruzione, dimenticata da
Sergio
Const READYSTATE_COMPLETE = 4

Ciao
Antonio


berto

unread,
Jan 24, 2010, 10:52:59 AM1/24/10
to
"Antonio" <antone...@tiscali.it> ha scritto nel messaggio
news:4b5bf343$0$709$5fc...@news.tiscali.it...

Grazie dalla risposta, man non mi � molto chiaro. mi puoi dare maggiori info
per esempio diciamo che la mia tabella dove importare i risultati di chiama
Palermo.. dove lo inserisco ??

Grazie.


Antonio

unread,
Jan 24, 2010, 12:27:48 PM1/24/10
to

"berto" <be...@libero.it> ha scritto nel messaggio
news:v1_6n.126845$9f6.1...@twister1.libero.it...
Creati su una maschera un pulsante e chiamalo "EsempioHTML"
poi abilita l'evento click e adatta la routine che si genera in questo modo:
Private Sub EsempioHTML_Click()

Stop

const READYSTATE_COMPLETE = 4
On Error GoTo LeggiTabellaHTML_err

Dim oBrws As New SHDocVw.InternetExplorer
Dim oDoc As MSHTML.IHTMLDocument
Dim oTbl As MSHTML.IHTMLTable
Dim oTblRw As MSHTML.IHTMLTableRow
Dim oTblCll As MSHTML.IHTMLTableCell

oBrws.Navigate2
"http://www.sportpress.com/stats/en/1771_italy_serie_a_2009_2010/1_head_to_head/1361_palermo.html"

Do
If oBrws.readyState = READYSTATE_COMPLETE Then
Exit Do
End If
DoEvents
Loop

Set oDoc = oBrws.Document '<-- documento HTML
' oDoc.Body.InnerText d� il contenuto della pagina visualizata

For Each oTbl In oDoc.getElementsByTagName("TABLE") '<-- per ogni tabella
contenuta nel documento
' oTbl.InnerText d� una parte della pagina

For Each oTblRw In oTbl.Rows
' oTblRw.InnerText d� una parte della pagina

For Each oTblCll In oTblRw.Cells
Debug.Print "valore contenuto: " & oTblCll.innerText
Next oTblCll
Next oTblRw
Next oTbl

Set oTbl = Nothing
Set oTblRw = Nothing
Set oTblCll = Nothing
Set oDoc = Nothing
Exit Sub

LeggiTabellaHTML_err:
DoCmd.SetWarnings True
Set oTbl = Nothing
Set oTblRw = Nothing
Set oTblCll = Nothing
Set oDoc = Nothing
MsgBox "Errore: " & Application.AccessError(Err.Number) & vbCrLf &
"Riga: " & Erl & vbCrLf & "Numero: " & Err.Number

end sub


Prima di provare ad eseguire questa routine, devi andare sul menu
"Strumenti" - "Riferimenti" e spunta i seguenti riferimenti:
Microsoft Internet Controls
Microsoft HTML Object Library

A questo punto fai click sul pulsante e la routine si ferma allo stop.
Visualizza la finestra immediata e prosegui passo passo pigiando F8. Vedrai
tutte le informazioni che potresti estrarre dal sito indicato da te. Di pi�
non posso fare.

Ciao
Antonio


berto

unread,
Jan 25, 2010, 4:32:41 AM1/25/10
to

"Antonio" <antone...@tiscali.it> ha scritto nel messaggio
news:4b5c8315$0$697$5fc...@news.tiscali.it...
Grazie Antonio, purtroppo non mi tira fuori niente, forse la pagina web non
� strutturata in maniera corretta,


Antonio

unread,
Jan 25, 2010, 8:26:35 AM1/25/10
to

"berto" <be...@libero.it> ha scritto nel messaggio
news:Zyd7n.16035$Ua....@twister2.libero.it...
Devi avere commesso un errore. Controlla bene. Proprio questa routine l'ho
inserita in una maschera ed ho visualizzato un'enormit� di dati. Guarda tu
quello che ti serve. Ecco un esempio dei dati visualizzati nella finestra
immediata:

valore contenuto: Italy - Serie A > Palermo > All
Results2009/20102008/20092007/20082006/20072005/20062004/20052003/20042002/20032001/20022000/20011999/20001998/19991997/19981996/19971995/19961994/19951993/19941992/1993
Choose Team Atalanta Bari Bologna Cagliari Catania Chievo Fiorentina Genoa
Inter Juventus Lazio Livorno Milan Napoli Palermo Parma Roma Sampdoria Siena
Udinese League Stats Compare Teams


Palermo

Performance GraphForm tableGeneral Stats
All Results


Won matches

Drawn matches

Lost matches

Palermo
24-JAN-10Palermo3-0FiorentinaItaly - Serie A
17-JAN-10Napoli0-0PalermoItaly - Serie A

14-JAN-10Lazio2-0PalermoItaly - Cup

10-JAN-10Palermo1-0AtalantaItaly - Serie A
06-JAN-10Sampdoria1-1PalermoItaly - Serie A
20-DEC-09Palermo1-0SienaItaly - Serie A
13-DEC-09Milan0-2PalermoItaly - Serie A
06-DEC-09Palermo2-1CagliariItaly - Serie A
29-NOV-09Chievo1-0PalermoItaly - Serie A

continuando a pigiare F8 si vedrebbero gli ulteriori dati.


berto

unread,
Jan 25, 2010, 2:15:46 PM1/25/10
to

"Antonio" <antone...@tiscali.it> ha scritto nel messaggio
news:4b5d9c0d$0$6834$5fc...@news.tiscali.it...
ok grazie sono riuscito ad estrarre i dati ed inserirli in una tabella.
adesso ho quest'alto problema, sempre se mi puoi aiutare:
le informazioni della tabella html vengono inseriti nella tabella PAlermo
di access che ha i seguenti campi: partita, risultato, evento.
vorrei che ad un certo punto della tabella html, (individuato dalla stringa
"--" ) i dati vengano inseriti nei campi partita, risultatto evento, mentre
attualmente vengono inseriti solo nel campo partita.

io ho inserito :
--------------------------------------
lunghezza = Len(info)
controllo1 = Mid(info, 3, 1)
controllo2 = Mid(info, 7, 1)
controllo = controllo1 & controllo2
'MsgBox lunghezza

If controllo = "--" Then

rs.AddNew
rs.Fields("DATA") = info
rs.Fields("Squadra") = ???? (qui dovrebbe venire scritto il
prossimo valore del contenuto della tab html)
rs.Fields("Risultato") = ??? (qui dovrebbe venire scritto il
prossimo ulteriore valore del contenuto della tab html)

'per 4 volte'

rs.Update

Else

End If
--------------------------------

e poi riprendere dall'inizio

mi puoi aiutare anche qui ??


0 new messages