Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Funzione in ACCESS

  1. #1

    Funzione in ACCESS

    Salve a tutti, vi spiego il mio problema:
    Devo pescare dei dati da un database access, dove i dati sono memorizzati con apostrofi e parole accentate, ma la variabile con la quale faccio la query è senza questi caratteri.

    In poche parole io vorrei ottenere come risultato di una query il record che ha il valore Titolo "qualità" anche se cerco "qualita", o "l'azienda" se cerco "azienda", purtroppo non posso fare query con LIKE, dato che andrei a pescare più dati, allora ho pensato di risolvere il problema lato Access anziché via ASP...


    1. Ho creato nel file access un modulo dove ho creato un a funzione:
    codice:
    Function np(fld As String) As String
      If fld <> "" Then
        np = LCase(fld)
        np = Replace(np, " ", "_")
        np = Replace(np, "l' ", "")
        np = Replace(np, "l'", "")
        np = Replace(np, "'", "")
        np = Replace(np, "à", "a")
        np = Replace(np, "è", "e")
        np = Replace(np, "é", "e")
        np = Replace(np, "ì", "i")
        np = Replace(np, "ò", "o")
        np = Replace(np, "ù", "u")
        np = Replace(np, "*", "")
      End If
      
    End Function
    2. Ho creato una query Access che usa tale funzione "np":
    codice:
    SELECT contenuti.id, contenuti.id_rif, np(contenuti.Titolo) AS Titolo, np(contenuti.Titolo_en) AS Titolo_en
    FROM contenuti;
    Se da access apro questa funzione, vedo i dati correttamente, con i vari à>a, è>e, ecc...



    3. Nella mia pagina Web ASP:
    codice:
    Set conn = Server.CreateObject("ADODB.Connection")
    conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db/deca.mdb") & ";"
    Set Rs = Server.CreateObject("ADODB.Recordset")
    	Rs.Open "Select * from qryNp where Titolo = 'qualita' ", conn, 1, 2
    	response.write Rs("id")
    	Rs.close
    	set rs = nothing
    Ora, quando faccio partire la mia pagina asp, ottengo questo errore:

    Tipo di errore:
    Microsoft JET Database Engine (0x80040E14)
    Funzione 'np' non definita nell'espressione.
    /deca/nptest.asp, line 5


    Qualcuno sa illuminarmi? thanx.
    Noize•Power

  2. #2
    Non mi pare che tu puoi richiamare una funzione interna ad access nel codice della pagina...credo...
    Tanto...lo fanno tutti... posso farlo anche io vero?

  3. #3
    Ma infatti io non richiamo la funzione dalla pagina asp, la richiamo direttamente dal database, con la query (SELECT contenuti.id, contenuti.id_rif, np(contenuti.Titolo) AS Titolo,),...) e tutto funziona egregiamente. Quando poi da ASP mi collego alla query che mostra i records "ripuliti" dalla mia funzione, allora ottengo l'errore...
    Noize•Power

  4. #4
    confermo la risposta di -AA-. da fuori non puoi richiamare una funzione interna di access. quando richiami una query access da una pagina ASP sei FUORI da access. non ci sono rimedi. è così.

  5. #5
    Ok, grazie, risolverò in altro modo allora.
    Noize•Power

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.