Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    666

    Tipo di dati e ricerca minore di

    Di nuovo salve a tutti!

    Ho modificato un campo nel db (access) da test a numerico e dopo aver postato nel forum ho modificato anche la riga per la ricerca in asp:

    dbwhere = dbwhere & "[Prezzo] <= '" & pPrezzo & "' or "

    Purtroppo però continua a dirmi:

    Microsoft JET Database Engine errore "80040e07'

    Tipi di dati non corrispondenti nell'espressione criterio.

    Che cosa desidera ancora?
    AltF4

  2. #2
    posta tutta la query...che mi puzza il dbwhere
    Purtroppo bisogna imparare che il computer non sbaglia...fa solo quello che gli dici di fare

    www.netpolaris.it

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    666
    Ecco:
    codice:
    If pPrezzo <> "" Then
    	dbwhere = ""
    	pPrezzo = replace(pPrezzo,"'","''")
    	pPrezzo = replace(pPrezzo,"[","[[]")
    	dbwhere = dbwhere & "[Prezzo] <= '" & pPrezzo & "' or "
    	dbwhere = mid(dbwhere,1,len(dbwhere)-3)
    	Session("tablename") = tablename
    	Session("dbwhere") = dbwhere
    	'reset start record counter
    	startRec = 1
    	Session("startRec") = startRec
    Else
    	If tablename = Session("tablename") Then
    		dbwhere = Session("dbwhere")
    	Else
    		dbwhere = ""
    		Session("dbwhere") = dbwhere
    	End If
    End If
    Poi:



    codice:
    set conn = Server.CreateObject("ADODB.Connection")
    conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath("../../../mdb-database/occasioni.mdb") & ";"
    
    strsql = "select * from [occasioni]"
    
    If dbwhere <> "" Then
    	strsql = strsql & " WHERE " & dbwhere
    End If
    AltF4

  4. #4
    c'è qualcosa che non funziona...

    manca comunque un pezzo di query...
    Purtroppo bisogna imparare che il computer non sbaglia...fa solo quello che gli dici di fare

    www.netpolaris.it

  5. #5
    codice:
    ...
    dbwhere = dbwhere & "[Prezzo] <= '" & pPrezzo & "' or "
    ...
    se è un campo numerico non servono gli apici :master:

  6. #6
    Originariamente inviato da DeBe99
    codice:
    ...
    dbwhere = dbwhere & "[Prezzo] <= '" & pPrezzo & "' or "
    ...
    se è un campo numerico non servono gli apici :master:
    è il contrario...se è numerico non servono
    Purtroppo bisogna imparare che il computer non sbaglia...fa solo quello che gli dici di fare

    www.netpolaris.it

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    666
    Mancava questo pezzo?

    codice:
    <%
    set rs = Server.CreateObject("ADODB.Recordset")
    rs.Open strsql, conn, 1, 2 
    totalRecs = rs.RecordCount
    %>
    AltF4

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    666
    Beh un passo avanti.. ho modificato così la riga relativa al prezzo:

    codice:
    dbwhere = dbwhere & "[Prezzo] <= " & pPrezzo & " or "
    chi ha scritto gli apici non servono?? GIUSTO!!! Grazie.

    Quindi la ricerca per un prezzo minore o uguale funziona, ma se per errore inserisco un carattere non numerico va in errore:

    Microsoft JET Database Engine errore "80040e10'

    Nessun valore specificato per uno o più parametri obbligatori.

    come posso fare?

    (ora ho notato che anche se metto un numero con la virgola mi da errore:

    Microsoft JET Database Engine errore "80040e14'

    Errore di sintassi (virgola) nell'espressione della query '[Prezzo] <= 7800,90'.

    non li posso evitare in qualche modo?)
    AltF4

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    666
    esiste un modo per far avviare la ricerca solo se l'utente inserisce un numero? magari specificando numero intero?

    così si evita l'errore per le lettere e quello per la virgola.
    AltF4

  10. #10
    Originariamente inviato da Shagrat
    è il contrario...se è numerico non servono
    e io che ho detto





    @AltF4, per la virgola basta che la sostituisci con un punto (vedi funzione Replace), mentre per controllare se è un valore numerico esiste la funzione IsNumeric.

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.