Ho provato con questo codice ma ho bisogno di aiuto perchè penso che la logica sia giusta ma di aver commesso qualche errore
<%
Set Conn = Server.CreateObject("ADODB.Connection")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("fpdb/cap_cdb.mdb")
SQL = "select * from mia_tabella order by provincia ASC, cap ASC "
set rs = Server.CreateObject("ADODB.Recordset")
rs.Open SQL, conn, 3, 3
provincia = ""
stradale = ""
do while not rs.EOF
' faccio un controllo che al primo ciclo sarà sicuramente vero
if (provincia <> rs("provincia")) or (stradale <> rs("stradale")) then
' questo secondo controllo ha lo scopo di creare un record nei cicli successivi
' al primo affinché vengano memorizzati anche i cap degli stradali con meno
' di 20 record o numeri non multipli di 20 come 3 se hai 23 record, 4 per 24,
' ecc una volta che si cambia provincia o stradale
if (provincia <> "") then
rs.MovePrev
cap2 = rs("cap2")
rs.MoveNext
objSQL = "select * from tabella2 order by provincia ASC "
set objrs = Server.CreateObject("ADODB.Recordset")
objrs.Open objSQL, conn, 3, 3
objrs.AddNew
objrs("provincia") = provincia
objrs("stradale") = stradale
objrs("cap1") = cap1
objrs("cap2") = cap2
objrs.Update
end if
count = 0
provincia = rs("provincia")
stradale = rs("stradale")
cap1 = rs("cap")
end if
' inizia il loop vero e proprio
count = count + 1
' controllo se sono arrivato a 20 record (o 40, 60, ecc.) per crearne
' uno nuovo nell'altra tabella
resto = count mod 20
if (resto = 0) then
cap2 = rs("cap2")
objSQL = "select * from tabella2 order by provincia ASC "
set objrs = Server.CreateObject("ADODB.Recordset")
objrs.Open objSQL, conn, 3, 3
objrs.AddNew
objrs("provincia") = provincia
objrs("stradale") = stradale
objrs("cap1") = cap1
objrs("cap2") = cap2
objrs.Update
end if
rs.MoveNext
cap1 = rs("cap1")
Loop
Rs.Close
Set Rs = Nothing
objrs.close
Set objrs = Nothing
Conn.Close
Set Conn = Nothing
%>
Vi prego datemi una mano
Grazie
Enrico