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

Come si fa ad "interagire" con il web da vba access ? Nel senso :

1,923 views
Skip to first unread message

radica...@gmail.com

unread,
Oct 30, 2014, 10:38:26 AM10/30/14
to
Io devo scrivere una applicazione vba access che deve :

- chiamare una pagina web

- scriverci la password e scrivere altre info in altri
campi

- inviare la pagina cosi' compilata

- attendere la pagina di risposta

- importare la tabella che questa pagina espone
(tabella lunghissima, XML credo) in una tabella
access.

Il tutto senza far apparire nulla all' utente.

So che si puo' fare. E fino ad aprire una pagina web
c' arrivo (o meglio, c' arrivavo, devo rinfrescare la
memoria).

Dopodiche' mi perdo.

Se per favore qualcuno paziente (non sono molto perspicace)
volesse guidarmi gliene sarei molto grato.

BFS

unread,
Oct 30, 2014, 12:47:37 PM10/30/14
to
direi che dipende dalla pagina
la pagina web è tua?
asp? php? html?

BFS






Bruno Campanini

unread,
Oct 30, 2014, 2:41:46 PM10/30/14
to
radica...@gmail.com laid this down on his screen :
Comincia col precisare l'URL...

Bruno

radica...@gmail.com

unread,
Oct 30, 2014, 3:18:04 PM10/30/14
to
Si certo ecco qualche esempio :

http://www.consob.it/main/documenti/promotori/albo/abruzzo.xml?xsl=albopromotori.xsl

Oppure :

http://www.consob.it/main/documenti/promotori/albo/lazio.xml?xsl=albopromotori.xsl

Come vedi questi sono i link diretti alle tabelle. Per cui a
questo punto dovrei importarle. Come si deve fare ?

-----------------------------------------------------
P.S. seguono dubbi e ragionamenti vari :-)

1)
Che succede se la Consob cambia la struttura delle sue pagine ?
Semplice : il programma salta :-)

E non credo che senza un intervento manuale (andare a vedere il
nuovo indirizzo, praticamente) la cosa si possa aggiustare.
Sbaglio ?
Ma pazienza, sarebbe il minimo dei problemi.

2)
Poi (spero anche BFS mi legga) leggo che BFS mi chiede che *tipo*
di pagina sia. Mentre io pensavo (erroneamente, ovvio) che il
"trattamento" (diciamo) fatto col vba fosse uguale per ogni tipo.

Mi direte : ma a che ti serve inserire campi in una pagina se accedi
direttamente all' URL della pagina con la tabella ?

Il problema e' che a me serve interagire con qualsiasi pagina web.
E certe pagine web "rispondono" con le pagine giuste solo dietro
alcuni inputs da parte dell' utente.

Questa della Consob no, ok. Ma in generale occorre inserire una
password e qualche altro dato per ottenere risposta.

In questo momento preciso non ho a disposizione una pagina di
quel tipo da esibire, ma ... magari potreste spiegarmi come
riconoscere che tipo di pagina sia e quindi come scrivere diverse
proc in funzione del tipo.

Almeno credo che la via da seguire sia questa. Boh !

Attendo ansioso

Alessandro Cara

unread,
Oct 30, 2014, 4:50:03 PM10/30/14
to
Che differenza fa?
Tu leggi l'output che a quanto mi consta e' html con un po di
javascript, anzi tu leggi il DOM (document object model)
php asp jsp e tutte le "sciocchezze" a corredo non sono lato server? E
se lo sono non le vedrai mai. Quello che vedi e' quello che vedi se si
fa "mostra sorgente" da qualsiasi browser


--
ac (x=y-1)
Aborro il Killfile
(La violenza e' l'ultimo rifugio degli incapaci -Salvor Hardin-)

---
Questa e-mail è priva di virus e malware perché è attiva la protezione avast! Antivirus.
http://www.avast.com

Alessandro Cara

unread,
Oct 30, 2014, 4:53:59 PM10/30/14
to
Il 30/10/2014 21:50, Alessandro Cara ha scritto:

P.S.
Hai il vantaggio che le cose nel DOM sono organizzate e puoi "puntare" a
quello che vuoi (se conosci come e' fatto il DOM ma per questo c'e' il
"reference" )

Almeno questo fino al 2003 se poi le cose sono cambiate allora ritiro tutto.

Alessandro Cara

unread,
Oct 30, 2014, 5:01:49 PM10/30/14
to
yes, puo' succedere

>
> E non credo che senza un intervento manuale (andare a vedere il
> nuovo indirizzo, praticamente) la cosa si possa aggiustare.
> Sbaglio ?
> Ma pazienza, sarebbe il minimo dei problemi.

Il cambio di indirizzo e' la cosa minore, in genere e' stabile e' piu'
frequente che cambi la "struttura" della pagina target

>
> 2)
> Poi (spero anche BFS mi legga) leggo che BFS mi chiede che *tipo*
> di pagina sia. Mentre io pensavo (erroneamente, ovvio) che il
> "trattamento" (diciamo) fatto col vba fosse uguale per ogni tipo.

vero. Secondo me BFS ha ecceduto
Oserei dire "fatto con qualsiasi linguaggio"

>
> Mi direte : ma a che ti serve inserire campi in una pagina se accedi
> direttamente all' URL della pagina con la tabella ?
>
> Il problema e' che a me serve interagire con qualsiasi pagina web.
> E certe pagine web "rispondono" con le pagine giuste solo dietro
> alcuni inputs da parte dell' utente.

yes, succede

>
> Questa della Consob no, ok. Ma in generale occorre inserire una
> password e qualche altro dato per ottenere risposta.

se po fa

>
> In questo momento preciso non ho a disposizione una pagina di
> quel tipo da esibire, ma ... magari potreste spiegarmi come
> riconoscere che tipo di pagina sia e quindi come scrivere diverse
> proc in funzione del tipo.

basta leggere i dati guida presenti in qualsiasi pagina o verificare
l'URL se e' quello aspettatato o meno

> Attendo ansioso

fatti uno xanax

Bruno Campanini

unread,
Oct 30, 2014, 5:19:45 PM10/30/14
to
Alessandro Cara used his keyboard to write :

> Che differenza fa?
> Tu leggi l'output che a quanto mi consta e' html con un po di javascript,
> anzi tu leggi il DOM (document object model)
> php asp jsp e tutte le "sciocchezze" a corredo non sono lato server? E se lo
> sono non le vedrai mai. Quello che vedi e' quello che vedi se si fa "mostra
> sorgente" da qualsiasi browser
Io con Access 2013 leggo, importo e interagisco con gli
URL con estensione XML, HTM, HTML.
Non leggo i .XSL e quelli senza estensione, ancorché
risulti dal source della pagina trattarsi di HTML.

Qual è il segreto per accedervi senza limitazioni?

Bruno

Alessandro Cara

unread,
Oct 30, 2014, 6:15:05 PM10/30/14
to
Ciao Bruno.
E' passato un po' di tempo da quando ho "giocato" l'ultima volta con
questa roba.
Se non ricordo male c'erano due modi di "gestire" il web uno era una
richiesta di lettura "diretta" di un file (se non ricordo male) dal
server, la seconda prevedeva che all'interno di Access fosse definito
l'oggetto explorer (connettere il relativo riferimento).
Se tu hai l'oggetto explorer di fatto hai explorer a tua disposizione
che puoi "pilotare" medianti comandi da vba e quindi quello che dici mi
risulta oscuro. Dal browser explorer puoi chiamare pagina senza
estensione (fallace, il server se non trova estensione, in genere, va a
cercare l'estensione di default)?Certo che lo puoi fare ed il browser
risponde, la risposta la hai all'interno del tuo oggetto explorer e li
la leggi.

Curiosita'. File xsl? a che ti servono? se non ricordo male non sono
altro che la "dichiarativa" della struttura dell'xml (o forse anche
excel ha questa estensione? Ma in questo caso non c'e' un plugin che si
occupa di interpretare l'oggetto (come per flash o puttanate simili?))

radica...@gmail.com

unread,
Oct 31, 2014, 2:56:39 AM10/31/14
to
Il giorno giovedì 30 ottobre 2014 22:19:45 UTC+1, Bruno Campanini ha scritto:

> Io con Access 2013 leggo, importo e interagisco con gli
> URL con estensione XML, HTM, HTML.

Ah ecco, il busillis e' l' estensione ... Ok

> Non leggo i .XSL e quelli senza estensione, ancorché
> risulti dal source della pagina trattarsi di HTML.
> Qual è il segreto per accedervi senza limitazioni?
>

Gia'. Qual' e' ?
Io so che da EXCEL riesce a leggere tutto. Puo' aiutare ?

P.S.

Che sfiga, leggi tutto tranne quello che serve a me :D

radica...@gmail.com

unread,
Oct 31, 2014, 6:45:22 AM10/31/14
to
Il giorno giovedì 30 ottobre 2014 19:41:46 UTC+1, Bruno Campanini ha scritto:

> Comincia col precisare l'URL...

Scusami, forse puoi aiutarmi per raggiungere questo obiettivo piu'
ridotto ma molto importante per la mia attivita'.

Osserva per favore questa pagina web :
https://www.albopf.it/web/area_pubblica/servizi/albostatico

Come vedi c'e' (circa in basso a destra) una serie di files zip.
Per esempio quello della toscana, il primo in alto, ha nome :

https://www.albopf.it/XXDomain/AlboStatico/html/TOSCANA.zip

Se "ci clicco" sopra questo file viene scaricato.

Potresti per cortesia spiegarmi, se possibile, come posso
"acchiappare" col vba quel file e scaricarmelo su una certa
directory del mio C: ?

Ti ringrazio



radica...@gmail.com

unread,
Oct 31, 2014, 6:47:29 AM10/31/14
to
Ah scusa ... scaricarlo "UNzippato", cioe' "espanso" ovviamente.
Altrimenti non potrei leggerlo.

Oppure "unzipparlo" dopo in qualche modo.

radica...@gmail.com

unread,
Oct 31, 2014, 11:13:29 AM10/31/14
to
Il giorno venerdì 31 ottobre 2014 11:45:22 UTC+1, radica...@gmail.com ha scritto:
> Il giorno giovedì 30 ottobre 2014 19:41:46 UTC+1, Bruno Campanini ha scritto:
>
> > Comincia col precisare l'URL...
>
> Scusami, forse puoi aiutarmi per raggiungere questo obiettivo piu'
> ridotto ma molto importante per la mia attivita'.
>
> Osserva per favore questa pagina web :
> https://www.albopf.it/web/area_pubblica/servizi/albostatico
>
> Come vedi c'e' (circa in basso a destra) una serie di files zip.
> Per esempio quello della toscana, il primo in alto, ha nome :
>
> https://www.albopf.it/XXDomain/AlboStatico/html/TOSCANA.zip

Ho risolto tutto, ma grazie lo stesso nel caso c' avessi
pensato perdendoci qualche tempo.


Bruno Campanini

unread,
Oct 31, 2014, 11:25:51 AM10/31/14
to
radica...@gmail.com explained :

> Ho risolto tutto, ma grazie lo stesso nel caso c' avessi
> pensato perdendoci qualche tempo.

Avevo solo pensato di convertire in tabella Access direttamente
https://www.albopf.it/XXDomain/AlboStatico/html/TOSCANA.html,
anziché scaricare lo ZIP... etc.

Tu come hai risolto?
È buona norma (educazione) darne atto.

Bruno

radica...@gmail.com

unread,
Oct 31, 2014, 11:36:48 AM10/31/14
to
Il giorno venerdì 31 ottobre 2014 16:25:51 UTC+1, Bruno Campanini ha scritto:
> radica...@gmail.com explained :
>
> > Ho risolto tutto, ma grazie lo stesso nel caso c' avessi
> > pensato perdendoci qualche tempo.
>
> Avevo solo pensato di convertire in tabella Access direttamente
> https://www.albopf.it/XXDomain/AlboStatico/html/TOSCANA.html,
> anziché scaricare lo ZIP... etc.

sarebbe l' ideale

> Tu come hai risolto?
> È buona norma (educazione) darne atto.

Si certo, ci mancherebbe altro. Anzi, mi fa piacere.
E' che non sapevo fossi interessato.

Si utilizza una funzione API che prende qualsivoglia
file del web e te lo copia cosi' com' e' in locale.

Poi si unzippa. Funziona perfettamente. Qui sotto ti metto
il metto il codice :

' questa e' la funzione API :
Public 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

' questa e' la procedura che la utilizza

Public Sub DownloadFileFromWeb()
On Error GoTo err_1
Const strUrl As String = _
"https://www.albopf.it/XXDomain/AlboStatico/html/TOSCANA.zip"
Dim strSavePath As String
Dim returnValue As Long
strSavePath = "C:\prova.zip"
returnValue = URLDownloadToFile(0, strUrl, strSavePath, 0, 0)

Err_Exit:
Exit Sub

err_1:
MsgBox Err.Description
Resume Err_Exit
End Sub

' e questa la procedura che unzippa (l' ho messa per provarla
' sotto l' evento click di un tasto in una form access :

Private Sub Comando0_Click()
Dim oApp As Object 'Shell32.Folder

Set oApp = CreateObject("Shell.Application")
oApp.Namespace("c:\unzippato\").CopyHere oApp.Namespace("c:\prova.zip").items

End Sub

Fammi sapere


Bruno Campanini

unread,
Oct 31, 2014, 7:06:17 PM10/31/14
to
It happens that radica...@gmail.com formulated :
> Il giorno venerdì 31 ottobre 2014 16:25:51 UTC+1, Bruno Campanini ha scritto:
>> radica...@gmail.com explained :
>>
>>> Ho risolto tutto, ma grazie lo stesso nel caso c' avessi
>>> pensato perdendoci qualche tempo.
>>
>> Avevo solo pensato di convertire in tabella Access direttamente
>> https://www.albopf.it/XXDomain/AlboStatico/html/TOSCANA.html,
>> anziché scaricare lo ZIP... etc.
>
> sarebbe l' ideale

(Access 2013/64)
La tabella "Toscana" ha i seguenti campi:
Cognome, Luogo di nascita, Data di nascita, Indirizzo,
Delibera d'iscrizione, Stato, Intermediario, Regione.
Tutti Short Text (255).
===============================================
Private Sub Command65_Click()
Dim dHTML As HTMLDocument, nHTML As New HTMLDocument
Dim tbl As HTMLTable, row As HTMLTableRow, cell As HTMLTableCell
Dim col As HTMLTableCol, k As Long, n As Long, m As Long
Dim RS As Recordset, NumRow As Long, NumCol As Long, tblArray()

CurrentDb.Execute "DELETE Toscana.* FROM Toscana;"
Set RS = CurrentDb.OpenRecordset("Toscana", dbOpenDynaset)

Set dHTML =
nHTML.createDocumentFromUrl("https://www.albopf.it/XXDomain/AlboStatico/html/TOSCANA.html",
vbNullString)
Do While dHTML.ReadyState <> "complete"
DoEvents
Loop

m = 1
For Each tbl In dHTML.getElementsByTagName("table")
NumRow = tbl.Rows.Length
NumCol = tbl.Rows(0).Cells.Length
ReDim tblArray(1 To Int(NumRow / 9), 0 To 8)
For Each row In tbl.Rows
For Each cell In row.Cells
k = k + 1
If k > 11 And k Mod 2 Then
'Debug.Print k, n, m, cell.innerText
tblArray(m, n) = cell.innerText
n = n + 1
End If
If n = 9 Then
n = 0: m = m + 1
End If
Next: Next: Next

For NumRow = 1 To UBound(tblArray)
RS.AddNew
For NumCol = 0 To 7
RS.Fields(NumCol) = tblArray(NumRow, NumCol)
Next
RS.Update
Next

End Sub
====================================

Bruno

radica...@gmail.com

unread,
Nov 3, 2014, 1:09:27 AM11/3/14
to
Il giorno sabato 1 novembre 2014 00:06:17 UTC+1, Bruno Campanini ha scritto:
(omissis)

Ok, ho capito come hai fatto e acquisito. Grazie mille !

Bruno Campanini

unread,
Nov 3, 2014, 4:19:07 AM11/3/14
to
radica...@gmail.com presented the following explanation :
> Il giorno sabato 1 novembre 2014 00:06:17 UTC+1, Bruno Campanini ha scritto:
> (omissis)
>
> Ok, ho capito come hai fatto e acquisito. Grazie mille !

Ho anche eseguito in un sol colpo il download di tutte
le 20 regioni, in unica tabella.
Se t'interessa...

Bruno

Simone Calligaris

unread,
Nov 3, 2014, 7:16:58 AM11/3/14
to

"Bruno Campanini" <

> (Access 2013/64)
> La tabella "Toscana" ha i seguenti campi:
> Cognome, Luogo di nascita, Data di nascita, Indirizzo,
> Delibera d'iscrizione, Stato, Intermediario, Regione.
> Tutti Short Text (255).
> ===============================================


(cut)


Sei in gran forma Bruno: complimenti ;-)


radica...@gmail.com

unread,
Nov 3, 2014, 8:00:19 AM11/3/14
to
Certo, vorrei capire. Attendo.

Bruno Campanini

unread,
Nov 3, 2014, 9:11:30 AM11/3/14
to
radica...@gmail.com expressed precisely :
La tabella ora è LT_Regioni: stessi campi di Toscana.
=====================================================
Private Sub Command65_Click()
Dim MyHTML As HTMLDocument, tHTML As New HTMLDocument
Dim tbl As htmlTable, row As HTMLTableRow, cell As HTMLTableCell
Dim col As HTMLTableCol, k As Long, n As Long, m As Long
Dim RS As Recordset, j As Long, NumRow As Long, NumCol As Long
Dim Regioni(1 To 20) As String, T As Double, TOT As Long, i

DoCmd.Hourglass True
T = Timer

Regioni(1) = "TOSCANA": Regioni(2) = "UMBRIA"
Regioni(3) = "LAZIO": Regioni(4) = "SARDEGNA"
Regioni(5) = "CAMPANIA": Regioni(6) = "MOLISE"
Regioni(7) = "MARCHE": Regioni(8) = "ABRUZZO"
Regioni(9) = "PUGLIA": Regioni(10) = "BASILICATA"
Regioni(11) = "CALABRIA": Regioni(12) = "SICILIA"
Regioni(13) = "LOMBARDIA": Regioni(14) = "PIEMONTE"
Regioni(15) = "LIGURIA": Regioni(16) = "VALLE_D'AOSTA"
Regioni(17) = "VENETO": Regioni(18) = "FRIULI_VENEZIA_GIULIA"
Regioni(19) = "EMILIA_ROMAGNA": Regioni(20) = "TRENTINO_ALTO_ADIGE"

CurrentDb.Execute "DELETE LT_Regioni.* FROM LT_Regioni;"
Set RS = CurrentDb.OpenRecordset("LT_Regioni", dbOpenDynaset)

For Each i In Regioni
Dim tblArray()
Set MyHTML =
tHTML.createDocumentFromUrl("https://www.albopf.it/XXDomain/AlboStatico/html/"
& i & ".html", vbNullString)
Do While MyHTML.ReadyState <> "complete"
DoEvents
Loop

k = 0: m = 1: n = 0
For Each tbl In MyHTML.getElementsByTagName("table")
NumRow = tbl.Rows.Length
NumCol = tbl.Rows(0).Cells.Length
ReDim tblArray(1 To Int(NumRow / 9), 0 To 8)
For Each row In tbl.Rows
For Each cell In row.Cells
k = k + 1
If k > 11 And k Mod 2 Then
'Debug.Print k, n, m, cell.innerText
tblArray(m, n) = cell.innerText
n = n + 1
End If
If n = 9 Then
n = 0
m = m + 1
End If
Next: Next: Next
Set MyHTML = Nothing

TOT = TOT + UBound(tblArray)
For k = 1 To UBound(tblArray)
RS.AddNew
For j = 0 To 7
RS.Fields(j) = tblArray(k, j)
Next
RS.Update
Next
Next
DoCmd.Hourglass False
MsgBox Timer - T & " sec." & vbCrLf & _
Format(TOT, "# ###") & " Records downloaded"

End Sub
==============================================

Bruno

Bruno Campanini

unread,
Nov 3, 2014, 9:13:48 AM11/3/14
to
Simone Calligaris explained :
Sarà il canto del cigno.
(scritto con la sinistra sui coglions...)

Bruno

radica...@gmail.com

unread,
Nov 3, 2014, 9:27:30 AM11/3/14
to
Il giorno lunedì 3 novembre 2014 15:11:30 UTC+1, Bruno Campanini ha scritto:

(omissis)

Letto tutto e salvato. Notevole, davvero. Non sapevo si potesse "fare"
cosi'.

Grazie, e alla prossima.

Bruno Campanini

unread,
Nov 3, 2014, 12:00:44 PM11/3/14
to
radica...@gmail.com has brought this to us :
> Il giorno lunedì 3 novembre 2014 15:11:30 UTC+1, Bruno Campanini ha scritto:
>
> (omissis)
>
> Letto tutto e salvato. Notevole, davvero. Non sapevo si potesse "fare"
> cosi'.

Non lo sapevo nemmeno io.

Bruno

radica...@gmail.com

unread,
Nov 4, 2014, 2:37:21 AM11/4/14
to
:-)

Dove hai trovato ? Ricerca su google ? Io la ho trovato quell' ipotesi
che t' ho mostrato. E che penso non sia da buttare : ha il vantaggio di
essere molto veloce e "brutale" (beve tutto) e quindi minimizza il
tempo minimo necessario di connessione al web. La miglior cosa (forse)
e' conoscere i vari metodi per sceglierne di volta in volta il piu'
adatto.


radica...@gmail.com

unread,
Nov 6, 2014, 3:27:21 AM11/6/14
to
Il giorno sabato 1 novembre 2014 00:06:17 UTC+1, Bruno Campanini ha scritto:

Pero' scusa c'e' una cosa che proprio mi sfugge. Hai scritto :

> m = 1
> For Each tbl In dHTML.getElementsByTagName("table")

Ecc ecc

Ora, in quella pagina non c'e' UNA sola tabella, quella cioe'
coi dati anagrafici. Ma ce ne sono almeno altre due piccoline
in fondo (<table> ... bla bla ... </table>) le vedi ?

Allora come fai a non caricare anche quelle visto che (almeno
cosi' mi pare di capire) il tuo codice dice *per ogni* tabella
della pagina fai questo e quest' altro ?

Mi puoi spiegare per favore ?

Bruno Campanini

unread,
Nov 6, 2014, 7:52:06 PM11/6/14
to
radica...@gmail.com formulated the question :
La precedente sezione di codice:
For Each i In Regioni
Dim tblArray()
Set MyHTML =
tHTML.createDocumentFromUrl("https://www.albopf.it/XXDomain/AlboStatico/html/"
& i & ".html", vbNullString)
Do While MyHTML.ReadyState <> "complete"
DoEvents
Loop
........
seleziona di volta in volta le 20 regioni, per cui MyHTML contiene
un solo file di regione, diciamo TOSCANA.html

La successiva sezione di codice:
For Each tbl In MyHTML.getElementsByTagName("table")
quella che ti crea perplessità, va a prelevare da dentro
TOSCANA.html, una alla volta, tutte le tabelle ivi esistenti.
Ma dentro TOSCANA.html c'è UNA SOLA TABELLA: quella che ci serve.

Sarebbe più logico riferirsi a detta unica tabella in modo diretto
anziché usare un For Each... Next.
Ma per quanto ci abbia studiato sopra non ho trovato altra via
per farlo.
Ci sarà? io credo di no. Comunque studiati anche tu quella
guida che ti ho segnalato e correggimi se sbaglio.

Bruno

PS
Quell'unica tabella non ha nome, non ha id, ha un'intestazione
centrale composta di diverse righe anche blank e fa corpo unico,
come oggetto tabella, con la tabella vera e propria contenente
i dati che preleviamo.
A completare l'oscenità del tutto ha una sola colonna e quelle
che dovrebbero essere le intestazioni dei campi in una tabella
convenzionale, si ripetono con riferimento a ciascun dato.
Per cui i 53873 record logici si sono trasformati in più del
doppio di record fisici.
Verrei essere chiaro con un esempio, un record formato da:

Nome Indirizzo Città
Piero Via del Desiderio Livorno

si trasforma in:
Nome
Piero
Indirizzo
Via del Desiderio
Città
Livorno

e così per 53873 volte,

Bruno Campanini

unread,
Nov 6, 2014, 8:07:18 PM11/6/14
to
Bruno Campanini pretended :
cosicché si ha una tabella monocampo di 3-400000 record da cui
estrarre,
con una serie infinita di moccoli, i 53873 record utili, in un formato
che può chiamarsi database.

Buenas noches, sono las dos de la mañana.

Bruno

radica...@gmail.com

unread,
Nov 7, 2014, 4:29:41 AM11/7/14
to
E fin qui ok

> La successiva sezione di codice:
> For Each tbl In MyHTML.getElementsByTagName("table")
> quella che ti crea perplessità, va a prelevare da dentro
> TOSCANA.html, una alla volta, tutte le tabelle ivi esistenti.
> Ma dentro TOSCANA.html c'è UNA SOLA TABELLA: quella che ci serve.

Scusa se insisto ma a me pare che non ce ne sia una sola. Per es.
per l' Abruzzo (l' ho scelto perche' piu' piccolo) in fondo si
legge :
----------------------------------------------------
<table width="151" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="bgbott" style="height:24px;" colspan="3"></td>
</tr>
<tr>
<td><img src="/resources/s.gif" width="24" height="8" alt="" /></td>
<td><img src="/resources/s.gif" width="122" height="1" alt="" /></td>
<td><img src="/resources/s.gif" width="5" height="1" alt="" /></td>
</tr>
<!-- tag menu dx - inizio -->
<!-- Inizio codice generato da composer:rightmenu -->
<!-- Fine codice generato da composer:rightmenu -->
<!-- tag menu dx - fine -->
<tr>
<td colspan="3" style="height:10px;" ></td>
</tr>
</table>
----------------------------------------------------
come vedi c'e' un <table> e un </table> che dovrebbero indicare
un' altra tabella. No ?


> Sarebbe più logico riferirsi a detta unica tabella in modo diretto
> anziché usare un For Each... Next.
> Ma per quanto ci abbia studiato sopra non ho trovato altra via
> per farlo.
> Ci sarà? io credo di no. Comunque studiati anche tu quella
> guida che ti ho segnalato e correggimi se sbaglio.

La sto studiando da parecchio e anche a me pare che nn ci sia modo,
perche' le tabelle (almeno in quel file) non hanno ID (unico)
>
> PS
> Quell'unica tabella non ha nome, non ha id,

Appunto

> ha un'intestazione centrale composta di diverse righe anche blank
> e fa corpo unico, come oggetto tabella, con la tabella vera e propria
> contenente i dati che preleviamo.
> A completare l'oscenità del tutto ha una sola colonna e quelle
> che dovrebbero essere le intestazioni dei campi in una tabella
> convenzionale, si ripetono con riferimento a ciascun dato.
> Per cui i 53873 record logici si sono trasformati in più del
> doppio di record fisici.
> Verrei essere chiaro con un esempio, un record formato da:
>
> Nome Indirizzo Città
> Piero Via del Desiderio Livorno
>
> si trasforma in:
> Nome
> Piero
> Indirizzo
> Via del Desiderio
> Città
> Livorno
>
> e così per 53873 volte,

Si si ho visto. Evidentemente alla Consob non hanno chiaro il
concetto di db "relazionale" :D
(scherzo)

Bruno Campanini

unread,
Nov 7, 2014, 5:24:16 AM11/7/14
to
It happens that radica...@gmail.com formulated :
Non conosco il codice ma credo che inizio e fine di una
tabella siano definiti da <table> e </table>, mentre la
prima riga del codice che qui esponi:
> <table width="151" border="0" cellspacing="0" cellpadding="0">
rappresenta forse le proprietà di quell'unica tabella.

Mi sto arrampicando sugli specchi nel cercar di comprendere
il "nuovo" che mi si para innanzi.

[...]
>> e così per 53873 volte,
>
> Si si ho visto. Evidentemente alla Consob non hanno chiaro il
> concetto di db "relazionale" :D
> (scherzo)
Programmatori frettolosi, direi che proprio non hanno
chiaro il concetto di database.
(non scherzo)
E chissà quanto li paga la Consob...

Bruno

radica...@gmail.com

unread,
Nov 7, 2014, 6:15:46 AM11/7/14
to
Il giorno venerdì 7 novembre 2014 11:24:16 UTC+1, Bruno Campanini ha scritto:
(omissis)

... mi sa che c' hai ragione

> Mi sto arrampicando sugli specchi nel cercar di comprendere
> il "nuovo" che mi si para innanzi.

Se ti va :
entra nel frame della tabella abruzzo e dagli una botta di tasto
destro di mouse e vedi l' html che descrive la frame. In fondo.


> [...]
> >> e così per 53873 volte,
> >
> > Si si ho visto. Evidentemente alla Consob non hanno chiaro il
> > concetto di db "relazionale" :D
> > (scherzo)
> Programmatori frettolosi, direi che proprio non hanno
> chiaro il concetto di database.
> (non scherzo)

> E chissà quanto li paga la Consob...

La Consob ? Niente. Li paghiamo **noi** dal momento che la Consob
e' un ente dello Stato. E vai col butta butta di denaro pubblico,
tanto a loro che gliene frega ?

... non mi ci far pensare che mi vengono istinti omicidi. E
adesso nemmeno io scherzo.

0 new messages