Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Contare record database access

    riscrivo qui il mio problema onde evitare di fare confusione con altri thread:

    ho un database access con tanta tabelle e avrei bisogno di un modo rapido di fare la conta dei record totali presenti in tutto il database.

    ho provato con il seguente codice ma non funziona:

    <%
    Dim tot, Cnt
    Set conn = Server.CreateObject("ADODB.Connection")
    Set rs = Server.CreateObject("ADODB.Recordset")
    openCN
    conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath("/public/database.mdb")
    sql = "SELECT SUM (Cnt) FROM
    (
    SELECT Count(SbaNumber) As Cnt FROM tab1
    UNION
    SELECT Count(SBANumber) as Cnt FROM tab2
    )"

    Set rs = conn.Execute(sql)
    tot = rs("Cnt")
    rs.Close
    conn.Close
    Set rs = Nothing
    Set conn = Nothing
    %>
    <%=tot%>

    qualcuno puo' aiutarmi?

  2. #2
    cos'è quella stringa sql spezzata su più righe? dai, si tratta di scrivere una variabile...

  3. #3
    ho riscritto tutto sulla stessa riga come mi hai detto tu:

    <%
    Dim tot, Cnt, rs
    Set conn = Server.CreateObject("ADODB.Connection")
    Set rs = Server.CreateObject("ADODB.Recordset")
    conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath("/public/database.mdb")
    sql = "SELECT SUM (Cnt) FROM ( SELECT Count(SbaNumber) As Cnt FROM tab1 UNION SELECT Count(SBANumber) as Cnt FROM tab2 )"
    tot = rs("Cnt")
    rs.Close
    conn.Close
    Set rs = Nothing
    Set conn = Nothing
    %>
    <%=tot%>

    e mi da' il seguente errore:


    ADODB.Recordset error '800a0cc1'

    Item cannot be found in the collection corresponding to the requested name or ordinal.

    line 134

    la linea 134 corrisponde a:

    tot = rs("Cnt")

    cosa puo' essere?

  4. #4

  5. #5
    ho provato a scrivere come dici tu

    tot = rs(0)

    ma mi da sempre lo stesso errore

    inoltre cancellando tot = rs(0) l'errore cambia e mi dice:


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

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

    al livello della riga:

    Set rs = conn.Execute(sql)

  6. #6
    allora, ho compattato un po' meglio il codice e ho ricavato il seguente:

    <%
    Dim conn, rs
    Set conn = Server.CreateObject("ADODB.Connection")
    conn.Open "<...dati di connessione al db...>"

    sql = "SELECT SUM (Cnt) FROM ( SELECT Count(SbaNumber) As Cnt FROM tab1 UNION SELECT Count(SBANumber) as Cnt FROM tab2 )"

    Set rs = conn.Execute(sql)

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

    solo che come risultato continua a darmi:

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

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

    e la linea incriminato di questo errore e' sempre la riga Set rs = conn.Execute(sql)

    qualcuno sa dirmi come mai questo errore???

  7. #7
    codice:
    <%
    Dim conn, rs
    Set conn = Server.CreateObject("ADODB.Connection")
    conn.Open "<...dati di connessione al db...>"
    
    sql = "SELECT SUM(Cnt) FROM ( SELECT Count(SbaNumber) As Cnt FROM tab1 UNION SELECT Count(SBANumber) as Cnt FROM tab2 ) AS CntTab"
    
    Set rs = conn.Execute(sql)
    
    conn.Close 
    Set rs = Nothing 
    Set conn = Nothing 
    
    Response.Write "Quanti ne siamo...: " & rs(0)
    %>

  8. #8
    ciao e grazie ancora per la tua pazienza

    ho modificato il codice esattamente come lo hai scritto tu:

    codice:
                  <%
                  	Dim conn, rs
                  	Set conn = Server.CreateObject("ADODB.Connection")
                  	conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath("database.mdb")
                  	sql = "SELECT SUM (Cnt) FROM ( SELECT Count(SbaNumber) As Cnt FROM tab1 UNION SELECT Count(SbaNumber) as Cnt FROM tab2 ) As CntTab"
                  	Set rs = conn.Execute(sql)
                  	conn.Close
                  	Set rs = Nothing
                  	Set conn = Nothing
                  %>
    ma continua a darmi errore sulla riga Set rs = conn.Execute(sql) dicendomi

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

    sembra come se mancassero dei parametri nella stringa sql = "..."

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.