Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    controllo 5 cami uguali

    Buongiorno a tutti
    il mio problema è controllare che non ci sia la possibilità che 5 campi alll'interno di un database access siano uguali, un controllo che devo dare dopo l'inserimento dei dati e cioè:

    quando s'inserisce un rimborso in una tabella chiamata rimborsi_tot devo controllare che l'ultimo inserito( record) non abbia altri record con 5 campi con valori uguali, i campi sono:
    data_fattura,importo_fattura,tipo_prestazione,n_fa ttura,id_assicurato ma solo con un ALERT, non devo bloccare l'inserimento ma solo avvertire l'operatore.

    avevo pensato cosi:

    "SELECT * FROM rimborsi_tot ORDER BY Id_denuncia DESC"

    <% Session("VarA") = last("n_fatt") %>
    <% Session("VarB") = last("importo_fatt")%>
    <% Session("VarC") = last("data_fatt") %>
    <% Session("VarD") = last("tipo_prest") %>
    <% Session("VarE") = last("id_assicurato") %>

    SELECT *
    FROM rimborsi_tot
    WHERE n_fatt = 'A' AND importo_fatt = B AND data_fatt = cdate('C') AND tipo_prest = 'D' AND id_assicurato = E

    e poi:

    <% if ultima select da un valore then
    Response.Write "RISULTANO DEI RIMBORSI CON DATI UGUALI CONTROLLARE DALLA LISTA FATTURE"
    End IF
    %>

    accetto suggerimenti meno articolati.

    Ciao

  2. #2
    La query, al momento del WHERE devi strutturarla con l'OR e non con l'AND.
    Cosi, anche se è presente 1 campo, ti viene comunicato.

  3. #3
    no, mi sono espresso male, devo essere proprio 5 i campi che hanno una corrispondenza uguale in un altro record e non 1 dei 5, grazie

  4. #4
    codice:
    dim campo1,campo2,campo3,campo4,campo5
    
    campo1="..."
    campo2="..."
    ..
    campo5="..."
    
    
    '*** controllo che non sia già stato inserito
    
    dim check
    check=0
    
    set conn=...
    conn.open...
    set rs=conn.open("select id from tabella where campo1=" & campo1 & " and ... and campo5=" & campo5)
    
    if not rs.eof then check=1
    
    setrs=nothing
    
    '******insert dei dati
    conn.execute "insert into.... () values()"
    
    conn.close set conn=nothing
    
    
    if check=1 then
    %>
    <script language="javasacript">
    alert("Esiste un\'altra fattura uguale a quella inserita");
    </script>
    <%
    end if

  5. #5
    grazie, l'ho un po' addattato alle mie esigenze ma funziona, mi resta solo un piccolo problema!

    set conn=...
    conn.open...
    set rs=conn.open("select id from tabella where campo1=" & campo1 & " and ... and campo5=" &

    quando la variabile è numerica funziona , quando invece è di testo mi dice sempre " Tipo di dati non corrispondenti nell'espressione criterio"

    devo variare qualcosa nella select o quando dichiaro la variabile?, ciao e grazie

  6. #6
    quando non è numerica devi delimitarla nella stringa sql con gli apici... se è una data e il db è access con i canelletti #

  7. #7
    scusami, poniamo che il campo n_fatt sia testo:

    SELECT id_denuncia from rimborsi_tot where ID_ANA =" & campo5 & " and importo_fatt = "& campo2 & " and n_fatt = "& campo1 &""

    cambia così?

    SELECT id_denuncia from rimborsi_tot where ID_ANA =" & campo5 & " and importo_fatt = "& campo2 & " and n_fatt = "& "'campo1'" &""

    non credo, vero?

  8. #8
    codice:
    n_fatt='" & campoX & "'"

  9. #9
    grazie, tutto bene come al solito,tranne per il delimitatore della data di access che non mi dà errore ma nemmeno mi confronta la data.io ho scritto cosi:

    SELECT id_denuncia from rimborsi_tot where ID_ANA =" & campo5 & " and importo_fatt = "& campo2 & " and n_fatt = '"& campo1 &"'and tipo_prest = '"& campo4 &"'and data_fatt =#"& campo3 &"#"

    cmq, ti ringrazio, intanto ho inserito un altro campo testo al posto della data

    maurizio

  10. #10
    data_fatt era un campo data/ora? attento che campo3 deve essere una data in formato inglese non italiano


    edit: se cerchi sul forum per le date trovi un sacco di discussioni al riguardo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.