Condividi tramite

Routine per verificare la compilazione di alcuni campi in molte tabelle relazionate tra loro.

Anonimo
2023-01-16T14:24:41+00:00

Buon pomeriggio a tutti.

Ho un database molto complesso e con molti oggetti creati.

Ho molte tabelle in relazione tra loro con molti campi da compilare.

Chiedo a voi esperti di poter creare una routine da abbinare ad un pulsante di comando per poter verificare la compilazione di 2 campi per ogni maschera creata sulle molteplici tabelle del database.

Cioè, ad esempio, al lancio della funzione e/o routine VBA creare un elenco dei campi non compilati relativi alle tabelle processate.

Questo mi è necessario poichè le maschere in relazione con la prima (Anagrafica) sono una trentina e non sempre riesco a compilare i dati di mio interesse ( ad esempio se dovessi dimenticare di aprire una determinata maschera per inserire altri dati dello stesso dipendente).

Spero di essere stato chiaro.

Ciao, Nicola.

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

domenico laurenza 9,900 Punti di reputazione Moderatore volontario
2023-01-19T13:27:21+00:00

Ciao prova col seguente (in grassetto le modifiche)

Tabella = "tbl\_Sottoconti" 

**DoCmd.SetWarnings False** 

For Each myRel In CurrentDb.Relations 

    If myRel.Table = Tabella Then 

       Set myRs = CurrentDb.OpenRecordset("Select \* From [" & myRel.ForeignTable & "]") 

       Do While Not myRs.EOF 

          If DLookup("In\_Forza", "TblAnagrafica", "Id\_Anagrafica = " & myRs(0)) = -1 Then 

             For j = 0 To myRs.Fields.Count - 1 

                 If Len(myRs(j) & "") = 0 Then 

                    **DoCmd.RunSQL "INSERT INTO TblProva ( Testo\_Unico ) SELECT '" & myRel.ForeignTable & " - " & myRs(0).Name & ": " & myRs(0) & " - " & myRs(j).Name & "'"** 

                 End If 

             Next j 

          End If 

          myRs.MoveNext 

      Loop 

    End If 

Next 

Ciao Mimmo

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

14 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2023-01-19T14:11:34+00:00

    Grazie mille Mimmo, funziona perfettamente.

    Posto la funzione completa per coloro che avessero la mia stessa esigenza.

    Option Compare Database

    Option Explicit

    Function chk_TabelleRelazioni()

    Dim myRel As Relation 
    
    Dim myRs As Recordset 
    
    Dim j As Integer 
    
    Dim Tabella As String 
    
    Tabella = "TblAnagrafica" 
    
    DoCmd.SetWarnings False 
    

    For Each myRel In CurrentDb.Relations

        If myRel.Table = Tabella Then 
    
           Set myRs = CurrentDb.OpenRecordset("Select \* From [" & myRel.ForeignTable & "]") 
    
           Do While Not myRs.EOF 
    
              If DLookup("In\_Forza", "TblAnagrafica", "Id\_Anagrafica = " & myRs(0)) = -1 Then 
    
                 For j = 0 To myRs.Fields.Count - 1 
    
                     If Len(myRs(j) & "") = 0 Then 
    
                        DoCmd.RunSQL "INSERT INTO TblDatiMancanti ( Testo\_Unico ) SELECT '" & myRel.ForeignTable & " - " & myRs(0).Name & ": " & myRs(0) & " - " & myRs(j).Name & "'" 
    
                        'Debug.Print myRel.ForeignTable & " - " & myRs(0).Name & ": " & myRs(0) & " - " & myRs(j).Name 
    
                     End If 
    
                 Next j 
    
              End If 
    
              myRs.MoveNext 
    
          Loop 
    
        End If 
    
    Next 
    

    End Function

    Grazia ancora per l'aiuto che ricevo da tutti voi del forum.

    Ti rinnovo il mio più sincero ringraziamento.

    Ciao, Nicola.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2023-01-19T11:24:32+00:00

    Buon giorno.

    Ciao mimmo.

    Ho fatto in questo modo, ma ottengo questo messaggio di errore:

    Ho creato una Tabella chiamata TblProva con un unico campo ( Testo lungo) chiamato Testo_Unico dove inserire i dati della funzione.

    Spiegami come risolvere questo ultimo passo per favore.

    Ciao, Nicola.

    La risposta è stata utile?

    0 commenti Nessun commento