Newsgroup: it.comp.appl.access
Titolo: risultato SELECT COUNT(*) in una text-box

salve a tutti ho provato a cercare negli altri thread se qualcuno
avesse già esposto un problema simile al mio, ma visto che non ho
trovato nulla che mi soddisfacesse, ecco il mio scranio personale:
devo far comparire il risultato di una query in una casella di testo;
la query è
SELECT COUNT(*) FROM nome_tabella
una ca***ta direte voi! boh io non ci riesco, a runtime la casella 
di testo contiene "#Nome?" senza virgolette ovvio.
l'origine controllo della cdt è "=[nome_query]".
io penso che sia perché la query restituisce un valore numerico e 
non del testo. ma non so dove andare a parare!! qualcuno può aiutarmi
a risolvere sto probleeema?
andrea

 wrote in message
news:2ebd3396.03041...@posting.google.com...

    I casi sono due: o rinunci ad usare una query e usi invece la funzione
DCount, oppure ti crei una funzione, per mezzo di Visual Basic, che si
comporti piu' o meno come DCount. Perche' il fatto e' questo: nell'origine
controllo devi scrivere una *espressione*, preceduta dal segno di uguale; ed
in una *espressione* puoi usare delle costanti (numeriche, stringa, ...),
degli operatori (matematici, logici, ...) e delle *funzioni*. Non puoi usare
stringhe sql. Quindi:
    Caso 1. DCount:
        =DCount("*";"nome_tabella")
    Caso 2. Funzione utente:
        =MiaFunzione()
        -oppure-
        =MiaFunzione(arg1;...;argN)
    La funzione in questione potrebbe somigliare a questa:
' ============================================================
  Option Base 0
  Option Compare Text
  Option Explicit
' ------------------------------------------------------------
  Const mc_sMyName$ = "Modulo1"
' ============================================================
' ============================================================
  Public Function DCountAll( _
    ByVal Domain As String _
  ) As Long
' ------------------------------------------------------------
  On Error GoTo ErrorHandler
' ------------------------------------------------------------
  Const c_strField As String = "NumOfRecs"
' ------------------------------------------------------------
  Dim sql    As String
  Dim daoRst As DAO.Recordset
' ------------------------------------------------------------
  sql = "SELECT Count(*) AS " & c_strField & " FROM " & Domain
  With DAO.DBEngine.Workspaces.Item(0).Databases.Item(0)
    Set daoRst _
      = .OpenRecordset( _
            sql _
          , DAO.dbOpenSnapshot _
          , DAO.dbFailOnError)
  End With
  DCountAll = daoRst.Fields.Item(c_strField).Value
ExitProcedure:
  On Error Resume Next
  daoRst.Close
  Set daoRst = Nothing
  Exit Function
ErrorHandler:
  DCountAll = 0
  Resume ExitProcedure
  End Function
' ============================================================
    Perche' ho usato la forma:
        DAO.DBEngine.Workspaces.Item(0).Databases.Item(0)
invece dell'equivalente:
        Access.CurrentDb?
    Perche' una funzione del genere potrebbe avere senso usarla in un
ambiente diverso da Access, come per esempio Visual Basic, Word, Excel, ...
-- 
    (Facci sapere se ed eventualmente come hai risolto. Grazie.)
Ciao :o)
Maurizio
--------
?SPQR(C)
 X
--------

...

grazie della dritta, la seconda soluzione è molto elegante ma
la mia natura di svaccato m'ha fatto scegliere la DCount.
posso contattarti anche x altri problemi? sto facendo un db
in access (perché non conosco bene asp altrimenti l'avrei fatto
con questo e con mysql) e sto incappando in rogne (leggi:
pali tra le ruote) che solo la microcoff poteva ingegnarsi...
grazie di nuovo
Andrea