Salve a tutti, avrei bisogno delle vostre indicazioni perchè sono alle prese con la realizzazione di quanto segue:

- seleziono dalla tabella uno con una query una serie di record con certe condizioni prelevate da un form;
- confronto il campo X della tabella numero uno con il campo X della tabella due di riferimento;
- se tutti i valori X della tabella uno sono inferiori a quelli di riferimento scrivo con una query su una terza tabella;
- se almeno uno dei valori X della tabella uno è superiore a quelli di riferimento avvio un secondo confronto i cui risultati scrivo con una query su una terza tabella.

Ho buttato giù qualcosa, ma non ne sono convinto al 100%:
codice:
 <%

Function ConvertiData(data)
    giorno = Mid(data, InStr(1, data, "/") + 1, InStrRev(data, "/") - InStr(1, data, "/") - 1)
    mese = Left(data, InStr(1, data, "/") - 1)
    anno = Right(data, Len(data) - InStrRev(data, "/"))
    ConvertiData = giorno & "/" & mese & "/" & anno
End Function

blc = Request.form("rsi")

funzionesplit = split(blc, "-")
blc0 = funzionesplit(0)
blc1 = funzionesplit(1)

Set cn = Server.CreateObject("ADODB.Connection")
Open = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.Mappath("generale.mdb")
cn.open Open

Set recordset = Server.CreateObject("ADODB.Recordset")

'seleziono dalla tabella uno con una query una serie di record con certe condizioni prelevate da un form;

strSQL = "SELECT * FROM tabellauno WHERE id_rs = "&blc0&" and durata IS NULL"
recordset.Open strSQL, Open, 3, 3 

'confronto il campo X della tabella numero uno con il campo X della tabella due di riferimento;

If recordset.Eof then
response.write "NON CI SONO RECORD DA ANALIZZARE"

Else

Do while (Not recordset.Eof)

variabile = 0

SQLDown = "SELECT CO_PPM, CO2_PPM, H2_PPM, CH4_PPM, C2H6_PPM, C2H4_PPM, C2H2_PPM, CONTENUTO_ACQUA_PPM FROM percentili"
Set recdown = cn.Execute(SQLDown)

strSQL = "SELECT CO_PPM, CO2_PPM, H2_PPM, CH4_PPM, C2H6_PPM, C2H4_PPM, C2H2_PPM, CONTENUTO_ACQUA_PPM FROM tabellauno WHERE id_rs="&blc0
Set rec = cn.Execute(strSQL)

IF REC("CO_PPM") < RECDown("CO_PPM") then
response.write "co
"
ELSE
variabile = variabile+1
END IF

IF REC("CO2_PPM") < RECDown("CO2_PPM") then
response.write "co2
"
ELSE
variabile = variabile+1
END IF 

recordset.Movenext
Loop

'se almeno uno dei valori X della tabella uno è superiore a quelli di riferimento avvio un secondo confronto i cui risultati scrivo con una query su una terza tabella.

if variabile > 0 then

SQL = "SELECT C2H2_C2H4_PPM, CH4_H2_PPM, C2H4_C2H6_PPM FROM DGA" 
Set RECDown=cn.Execute(SQL)

SQLDown = "SELECT C2H2_C2H4_PPM, CH4_H2_PPM, C2H4_C2H6_PPM FROM tabellauno WHERE id_rs="&blc0
Set REC=cn.Execute(SQLDown)

strSQL = "SELECT * FROM tabellauno WHERE id_rs="&blc0
Set strREC=cn.Execute(strSQL)

strSQL1 = "SELECT * FROM Percentili" 
Set strREC1=cn.Execute(strSQL1)

If recordset.Eof then
response.write "NON CI SONO RECORD DA ANALIZZARE"

Else

Do while (Not recordset.Eof)

IF REC("CH4_H2_PPM") < 0.1 AND REC("C2H4_C2H6_PPM") < 0.2 then
...
end if

IF REC("C2H2_C2H4_PPM") > 0.6 AND REC("C2H2_C2H4_PPM") < 2.5 AND REC("CH4_H2_PPM") > 0.1 AND REC("CH4_H2_PPM") < 1 AND REC("C2H4_C2H6_PPM") > 2 then
...
set RECDown = cn.execute(sql)

else

IF REC("C2H2_C2H4_PPM") > 1 AND REC("CH4_H2_PPM") > 0.1 AND REC("CH4_H2_PPM") < 0.5 AND REC("C2H4_C2H6_PPM") > 1 
...
end if
end if

IF REC("CH4_H2_PPM") > 1 AND REC("C2H4_C2H6_PPM") < 1 then
....
end if

IF REC("C2H2_C2H4_PPM") < 0.1 AND REC("CH4_H2_PPM") > 1 AND REC("C2H4_C2H6_PPM") > 1 AND REC("C2H4_C2H6_PPM") < 4 then
...
end if

IF REC("C2H2_C2H4_PPM") < 0.2 AND REC("CH4_H2_PPM") > 1 AND REC("C2H4_C2H6_PPM") > 4 then
...
end if

if variabile = 0 then
...
end if

recordset.Movenext
Loop
end if
else

strSQL = "SELECT * FROM tabellauno WHERE id_rs="&blc0
Set strREC=cn.Execute(strSQL)
data = ConvertiData(CStr(strREC("data_prelievo")))

SQL = "INSERT INTO
....

sSQL = "UPDATE tabellauno set durata = 'ok' WHERE id_rs = "&blc0
Set oRs = cn.Execute(sSQL)

end if

recordset.Close
Set recordset = Nothing
cn.Close
Set cn = Nothing  
end if
%>
vi sembra corretto?