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

    contare record colonna specifica

    Ciao,
    devo estrarre delle statistiche da un database access, per cui ho bisogno di sapere quanti records ci sono in una specifica colonna, che hanno un determinato valore.

    Ad esempio: tabella_anagrafe ---> colonna_nomi nella quale voglio sapere quanti mario sono inseriti.
    Ho trovato questo codice, ma estrae solo i records totali:

    <%@LANGUAGE = VBScript%>
    <%
    Dim sc, cn, rs

    sc = ""
    sc = sc & "driver={Microsoft Access Driver (*.mdb)};"
    sc = sc & "dbq=" & Server.MapPath("database.mdb")

    Set cn = Server.CreateObject("ADODB.Connection")
    Set rs = Server.CreateObject("ADODB.Recordset")

    cn.Open sc

    rs.Open "SELECT * FROM tabella_anagrafe", cn, 1

    Response.Write "Ci sono " & rs.RecordCount & " record"

    rs.Close
    Set rs = Nothing
    cn.Close
    Set cn = Nothing
    %>


    al posto di questa parte di codice, come la posso scrivere?
    "SELECT * FROM tabella_anagrafe", cn, 1

    Grazie

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    SELECT * FROM tabella_anagrafe WHERE colonna = 'Mario'

    Roby

  3. #3
    per condurre una vita la più sana possibile farei addirittura

    codice:
    SELECT COUNT(*) FROM tabella_anagrafe WHERE colonna = 'Mario'

  4. #4
    In risposta a Roby, usando la tua select, mi restituisce questo errore:

    Microsoft OLE DB Provider for ODBC Drivers error '80040e21'

    ODBC driver does not support the requested properties.

    /prova.asp, line 14

    Se imposto la select nativa dello script, funziona correttamente

    Grazie

  5. #5
    per maggior chiarezza, posto il codice che ho utilizzato:

    <%@LANGUAGE = VBScript%>
    <%
    Dim sc, cn, rs

    sc = ""
    sc = sc & "driver={Microsoft Access Driver (*.mdb)};"
    sc = sc & "dbq=" & Server.MapPath("database.mdb")

    Set cn = Server.CreateObject("ADODB.Connection")
    Set rs = Server.CreateObject("ADODB.Recordset")

    cn.Open sc

    rs.Open "SELECT COUNT(*) FROM nome_tabella WHERE nome_colonna = 'valore';", cn, 1

    Response.Write "Ci sono " & rs.RecordCount & " record"

    rs.Close
    Set rs = Nothing
    cn.Close
    Set cn = Nothing
    %>

    Grazie

  6. #6
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    codice:
    sql = "SELECT COUNT(*) FROM nome_tabella WHERE nome_colonna = 'valore'"
    set rs = Cn.Execute(sql)
    Response.Write "Ci sono " & rs(0) & " record"
    set rs = nothing
    Roby

  7. #7
    in riferimento alla risposta di Roby

    Ciao,
    il codice che mi hai scritto tu va benissimo se imposto un valore testuale come ='testo' ' così:
    sql = "SELECT COUNT(*) FROM nome_tabella WHERE nome_colonna = 'testo'"

    ma se al posto del valore testuale scrivo un numero in questo modo:

    sql = "SELECT COUNT(*) FROM nome_tabella WHERE nome_colonna = '21'"

    mi restituisce questo errore:

    Microsoft OLE DB Provider for ODBC Drivers error '80040e10'

    [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.

    /prova.asp, line 16


    come si può risolvere questo problema?

    Grazie

  8. #8
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Mi pare parecchio strano...
    Il campo è di tipo testo giusto?

    Roby

  9. #9

  10. #10
    Roby, il codice originale è:

    <%@LANGUAGE = VBScript%>
    <%
    Dim sc, cn, rs

    sc = ""
    sc = sc & "driver={Microsoft Access Driver (*.mdb)};"
    sc = sc & "dbq=" & Server.MapPath("database.mdb")

    Set cn = Server.CreateObject("ADODB.Connection")
    Set rs = Server.CreateObject("ADODB.Recordset")

    cn.Open sc

    sql = "SELECT COUNT(*) FROM nome_tabella WHERE nome_colonna = 'valore'"
    set rs = Cn.Execute(sql)
    Response.Write "Ci sono " & rs(0) & " record"
    set rs = nothing

    %>

    quando uso questo:
    sql = "SELECT COUNT(*) FROM nome_tabella WHERE nome_colonna_numeri = '21'"

    va a leggere nei campi della colonna che sono impostati su numerico, mi restituisce quest'errore:

    Microsoft OLE DB Provider for ODBC Drivers error '80040e10'

    [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.

    /prova.asp, line 16


    se invece uso questo:
    sql = "SELECT COUNT(*) FROM nome_tabella WHERE nome_colonna_testo = 'testo'"

    va a leggere nei campi della colonna che sono impostati su testo e funziona correttamente

    Come posso fare?

    Grazie

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 © 2026 vBulletin Solutions, Inc. All rights reserved.