Controllare se tabella contiene dati

di
Anonimizzato11418
il
3 risposte

Controllare se tabella contiene dati

Salve,
un grazie a tutti per aiutare tutti noi inesperti utenti access.
Ho ripreso in mano la struttura di un mio vecchio database per la gestione dei clienti dovendolo aggiornare per sopravvenute necessità.
E' quasi tutto a posto (per fortuna) ma l'operazione di restyling mi pone di fronte ad un problema che non riesco a risolvere.
Ho una maschera contatti che memorizza dati contatti. (nome cognome ecc.) nella tabella Contatti.
Nella maschera ho un pulsante che dovrebbe aprire un'altra maschera contenente dati collegati. Per esempio DocumentiContatto. Inizialmente non so se questa maschera contiene dati o meno. Perciò quando si verifica l'evento click, prima di aprire la maschera dovrebbe effettuarsi un controllo preliminare che verifichi se ci sono dati o no. In caso positivo si apre la maschera in forma sola lettura, in caso negativo la maschera si apre in forma immissione dati.
Leggendo un po' in giro mi sono risolto ad usare due maschere distinte ma uguali: una per inserire dati, da aprirsi in forma immissione dati e una per visualizzare dati da aprirsi in forma readonly.
La maschera DocumentiContatti contiene dati relativi a Patente, Carta Identità, Permesso di soggiorno. E' possibile che siano immessi dati per un documento e non per un altro. In questo caso dopo la verifica che esistono dati mi si apre la maschera in sola lettura, che io potrò sbloccare per opportuna modifica se lo ritengo opportuno (nella maschera readonly ho inserito un comando che sblocca la maschera rendendola editabile)
Resta però il problema di capire come effettuare il controllo preliminare. E qui sono completamente fermo.
Spero di aver chiarito bene la problematica e confido nel vostro sempre valido aiuto.
Grazie mille.

3 Risposte

  • Re: Controllare se tabella contiene dati

    Ci sono diversi modi per gestire questa cosa... non sapendo la tua preparazione ti suggerisco solo il più semplice.

    Il VBA di Access mette a disposizione delle funzioni di Aggregazione sui Domini, in questo caso facciamo ricorso alla Funzione DCOUNT(....) che restituisce il numero di Records presenti in un'origine dati(Tabella o Queries), con la possibilità di parametrizzare la ricerca, sfruttando la sintassi equivalente alla WHERE condition delle Queries.

    Quindi
    
    IF DCOUNT("*","NomeTabella","CRITERIO se serve")>0 Then
       Docmd.OpenForm "NomeForm"
    Else
       MsgBox "Non ci sono Record"
    End If
    La funzione DCOUNT è ampiamente documentata nella guida.
  • Re: Controllare se tabella contiene dati

    Grazie Alex,
    mi hai risolto il problema.
    Certo la funzione DCount è ampiamente discussa, ma girando nella rete mi ero fissato con il DLookup che mi portava fuori strada. O forse no?
    Comunque grazie per l'aiuto
  • Re: Controllare se tabella contiene dati

    Puoi usare anche DLOOKUP ma rende meno intuitivo il CONFRONTO del risultato...

    A dire il vero io non userei nessuna delle 2, se leggi in rete non sono molto OTTIMIZZATE, tuttavia in esecuzione SINGOLA come fai tu, non hanno alcuna controindicazione.
Devi accedere o registrarti per scrivere nel forum
3 risposte