Newsgroup: it.comp.appl.access
Titolo: Conta record

Ciao a tutti quelli che, nonostante la festivitą, aiutano i dummies ::)))
Ho una tabella chiamata Anagrafica composta dai campi:
Cognome e nome.
Avrei la necessitą di scrivere una macro che mi variabilizzi il numero dei
record che hanno il campo Nome = is null
Chi mi puņ aiutare ?

 Chi mi può aiutare ?
Fai una query di raggruppamento con conteggio del campo Nome e condizione is
null or "".
Ciao, Antonio.

> Fai una query di raggruppamento
Di raggrupamento ?
Io ho solo:
Selezione
aggiornamento
accodamento
campi incrociati
creazione tabella
di eliminazione.
Io l'ho creata di selezione ma mi mostra solo il risultato, non me lo
variabilizza.
Dove sbaglio ?


Devi fare clic sul pulsante "Totali" (il simbolo è la E di sommatoria) ti
apparirà una riga in più nella query.
Antonio.

> apparirà una riga in più nella query.
Premetto che fino ad ora la query mi mostrava correttamente i record che
cercavo. A me serve contarli
Fatto e ho selezionato:
sotto il campo Nome
Formula = Conteggio
Criterio Is Null
Ora se avvio la query non mi mostra nulla
????


non ti mostra nulla o ti mostra 1 riga con 0
nel secondo caso la query dovrebbe fare il suo dovere
nel senso che "non" hai nomi a null
cmq torna sulla query usa l'icona con "SQL"
dovrebbe farti vedere una cosa del tipo
select count(*) from anagrafica where nome is null
se non e' questa copia e incolla e riesegui
(usa l'icona con il punto esclamativo)
--
a.cara

 dovrebbe farti vedere una cosa del tipo
SELECT Count(Nome) AS ConteggioDiNome FROM Anagrafica HAVING (((Count(Nome))
Is Null))
quindi sei io faccio
Set rst = dbs.OpenRecordset("SELECT Count(Nome) AS ConteggioDiNome FROM
Anagrafica HAVING (((Count(Nome)) Is Null))")
MSGBOX ConteggioDiNome
dovrebbe darmi 2
dovrebbe ...
Invece mi da ... niente (Appare il msgbox senza testo)

 Anagrafica HAVING (((Count(Nome)) Is Null))")
non so proprio come hai fatto a fargli generare questa cosa fai:
Select count(*) as ContaNomi from anagrafica where nome is null
La clausola Having viene applicata sul conteggio il conteggio non e'
null
e quindi non viene fuori nulla
--
a.cara


Ho provato ad eseguire il tuo codice ma mi da' errore.
Sono alle prime esperienze con Access & VBA , mi passeresti la parte di
codice per eseguire la query?
Mi manca le dichiarazioni delle Variabili e soprattutto del recordset.
Grazie mille.

Scusa ma sono de coccio
Se io scrivo
 Select count(*) as ContaNomi from anagrafica where nome is null
VBA si arrabbia perchč cerca il CASE (SELECT CASE)
quindi, nel codice macro la devo inserire in un recordset
dim str as recordset
Set rst = dbs.OpenRecordset("SELECT  Count(Nome) AS ContaNomi FROM
Anagrafica  WHERE Nome Is Null")
msgbox contanomi
ma nulla cambia perchč mi appare sempre il box senza niente

 msgbox contanomi
che pur non dando errori non mi fa apparire sto' 2
L'errore dov'è (così esco e non ti disturbo + !!!)
Grazie


ok ok passo indietro
Eravamo partiti da una query e siamo arrivati ad un recordset
1) Fai la query salvala e provala come ti ho detto a suo tempo
   (quella che ti ho scritto io)
2) Ora vuoi usarla in un recordset? Bene
3) Definisci str e poi usi rst? e dbs quando lo definisci?
   Rammenta che le leggi della fisica
   sono rispettate anche in informatica sopratutto quella che dice
   "nulla si crea o distrugge ma tutto si trasforma".
   indi
   Dim rst as recordset    (e speriamo di non avere i soliti guai
DAO/ADO)
   set rst = Currentdb.openrecordset("nomedellaquery")   (questo e' DAO)
 
4) cosi' hai il recordset. Ora cosa ci vuoi fare? Il recordset e' un
   contenitore. Per prelevare i dati che contiene si puo':
   x = rst!campo
   x = rst("campo")
   x = rst.fields(0)
   a quel punto x conterra' un valore
   se x e' un controllo di maschera "magicamente" apparira' il valore
--
a.cara

    set rst = Currentdb.openrecordset("nomedellaquery")   (questo e' DAO)
quindi non sbagliavo quando scrivevo
Set rst = dbs.OpenRecordset("SELECT  Count(Nome) AS ContaNomi FROM
Anagrafica  WHERE Nome Is Null")
Ma perchč non funzia ?

 Ma perchè non funzia ?
cos'e' che non funziona? Prende errore? che errore?
Non da' risultato? 
x = rst("ContaNomi")  cosa mette in x?
--
a.cara


cfr mio delle 13.10 in questo 3d
--
a.cara

<cut>
Dim rst = Recordset
 Set rst = Currentdb.OpenRecordset("SELECT  Count(Nome) AS ContaNomi FROM
Anagrafica  WHERE Nome Is Null")
Msgbox "Il numero č: " & Contanomi
Ma perchč non funzia ?
Non funzia perchč appare il box con scritto Il numero č: e basta

 Non funzia perchè appare il box con scritto Il numero è: e basta
Paolaaaaaaaaaaaaaaaaaaaaaaaaa!
msgbox "Il numero è:" & rst("contanomi")
Paolaaaaaaaaaaaaaaaaaaaaaa!
chi ti ha detto di fare count(nome)?
Uffa se fai count(*) conta i null altrimenti no!
e' count(*)
Lo fai per motivi didattici? Pensa un po se i tuoi discenti
facessero come te! ;<)))
--
a.cara

 > msgbox contanomi
provato con MSGBOX rst ?

 Uffa se fai count(*) conta i null altrimenti no!
E' vero.
Un altro problema (cosě impari a essere sgarbato)
Se io faccio:
Set rst = CurrentDb.OpenRecordset("SELECT  Count(*) AS TotaleApparecchi FROM
Apparecchiature  WHERE DataScarico Is Null")
tutto funziona
Se io faccio:
Dim rst As Recordset
Set rst = CurrentDb.OpenRecordset("SELECT  Count(*) AS TotaleApparecchi FROM
Apparecchiature  WHERE DataScarico Is Null")
Mi da errore di tipo non corrispondente. Perchč ?

 SQL="Select count(*) as ContaNomi from anagrafica where nome is null"
Non dà errori.
P.S. Mi spieghi cosa vuole dire stò * dentro a count ?
    Probabilemnte vuole dire .. tutti
    Quindi potre anche dire ... i primi 10 count(10) ??? (L'help è molto
scarno
Quando vado a gestire Contanomi
Se faccio:
- msgbox ContaNomi mi da il msgbox senza niente dentro
  msgbox rst o rst("Contanomi") mi da errore

 Mi da errore di tipo non corrispondente. Perchč ?
Poiche' sono profondamente offeso non ti rispondo
(cfr questo 3d, mio post ore 13.10, punto 3)
prova 
Dim rst as DAO.Recordset
E FAMMI SAPERE!!!!!!
Paolaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa!
Sgarbato? PFUI
--
a.cara

 E FAMMI SAPERE!!!!!!
Mi da errore di: « tipo definito dall'utente non definito»
Boh


strana questa cosa 
1) sembra che tu abbia la non obbligatorieta' di definizione delle
variabili.
   la differenza, da quello che hai scritto, e' che in un caso "non"
definisci
   rst mentre nell'altro caso lo definisci
2) L'uso che fai di currentdb mi dice che la libreria DAO dovrebbe
essere
   fra  i riferimenti
3) Il messaggio finale mi dice che non riconosce l'oggetto DAO.Recordset
   e quindi sottintende il non uso della libreria DAO.
4) Da qualche parte c'e' qualcosa di strano
5) Puoi postare "tutto" il codice che usi? Compreso la definizione
   della funzione o sub?
6) Puoi controllare sui riferimenti quali librerie usi?
7) A propos ma quale access usi? A97? o A2K?
--
a.cara

 scarno
usa quello di access 97
Ciao, Fabrizio yQy