Andando avanti nel mio "studio" del recordset ho avuto questo problema.
nella riga Set rs =... (contrassegnata dalle x) se metto tabella4, il codice gira ma non restituisce assolutamente nulla. Se tolgo tabella 4 invece il codice restituisce il risultato giusto.

Preciso che:

a) la tabella 4, ha due colonne, contrassegnate da nomi non utilizzati altrove e completamente VUOTI, e non utilizzati in nessuna parte del programma

b) unione è un campo della tabella3

---codice

Dim cn, rs, sql

Set cn = Server.CreateObject("ADODB.Connection")
cn.Provider="Microsoft.Jet.OLEDB.4.0"
cn.open "Data Source=D:\Inetpub\webs\laugherit\mdb-database\database3.mdb;"
Set rs = Server.CreateObject("ADODB.Recordset")

rs.Open "select * from tabella1, tabella2, tabella3, tabella4", cn

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Set rs = cn.execute("select * from tabella1, tabella3, tabella4")

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxx

dim carte3
carte3 = carte1&carte2

dim len_trovato, elem_trovato
len_trovato = 0
elem_trovato = 0

'acquisisco cercato
dim cercato, lungo
cercato = lcase(carte3) ' metti la tua
lungo = Len(cercato)


Do Until rs.eof
dim unione, contatore
unione = Trim(LCase(rs("unione"))) ' personalizza

contatore = 0
If Len(unione) = lungo Then ' gli altri li scarto
dim i, c, l
For i = 1 To lungo
c = Mid(cercato, i, 1)
l = InStr(unione, c)
if l>0 then
contatore = contatore + 1
'response.write(unione)
unione = Left(unione, l - 1)&Mid(unione, l + 1)
end if
next

If contatore > len_trovato Then
len_trovato = contatore
elem_trovato = rs("unione") ' personalizza
response.write(elem_trovato)
End If

End If
rs.movenext
Loop

rs.close
set rs = nothing


cn.close
set cn = nothing

---fine codice---

Perchè l'inserimento della tabella4 nel recordset fa saltare il programma? (nel senso che non restituisce alcun risultato)