Popolamento tabelle attraverso caselle combinate

di il
3 risposte

Popolamento tabelle attraverso caselle combinate

Buongiorno a tutti quanti,
ho un problema, penso banale, che non riesco a risolvere. Ho creato una maschera a schede per il popolamento di più tabelle.
Le tabelle (uno a molti) in questione e i relativi campi sono:
tb_settore (ID_settore (PK), nomesettore)
tb_processo (ID_processo (PK), id_settore, nomeprocesso)
tb_attivita (ID_attivita (PK), id_processo, nomeattivita)
La maschera a schede (mas_pop) nella prima scheda (Popolamento settore) ha una casella combinata (cc_settore) che mostra i campi già esistenti in tb_settore, se tra i settori esistenti non c'è quello che mi interessa clicco sull'icona "Maschera di modifica voci di elenco" e apro la maschera "mas_nuovo_settore" dove c'è una casella di testo che va a scrivere dentro tb_settore.nomesettore. Naturalmente fino qua nessun problema.
Passando alla seconda scheda (Popolamento processo) ho una casella combinata (cc_processo) che mostra i dati filtrati in funzione del settore scelto nella precedente casella combinata, anche qua, se il processo non esiste clicco su "Maschera di modifica voci di elenco" e apro la maschera "mas_nuovo_processo" dove c'è una casella di testo che dovrebbe a scrivere dentro tb_processo.nomeprocesso.
Qua il db mi restituisce un errore.
Per scrivere dentro la tabella processo ho utilizzato la riga di codice VBA che segue:
Private Sub cc_processo_AfterUpdate()
docmd.RunSQL "INSERT INTO tb_processo(ID_processo,  id_settore,  nomeprocesso) VALUES (' " & me.cc_settore.Column(0) & " ',  ' " & me.cc_processo.Column(3) & " ')

End Sub
Qualcuno può aiutarmi, credo che le mie poche conoscenze in access abbiamo generato errori a diversi livelli, partendo da quello più alto relativo a come risolvere il problema di popolamento.
Grazie in anticipo.

3 Risposte

  • Re: Popolamento tabelle attraverso caselle combinate

    Tu hai una situazione di 3 tabelle disposte su 3 livelli gerarchici. Generalmente si preferisce costruire una maschera/sottomaschera/sotto-sottomaschera e la procedura guidata di creazione maschera/sottomaschere consente di farlo fino a 3 livelli come nel tuo caso. Si dà il caso che la procedura guidata provvede lei a fare tutto affinché i 3 livelli si sincronizzino a dovere. Volendo entrare nei dettagli Processi sfrutta le proprietà "Collega campi secondari" e "Collega campi master" per sincronizzarsi con Settori. Mentre Attività per sincronizzarsi con Processi...Access gli costruisce automaticamente un codice VBA apposta per lui.
    Ora, il look finale che ne viene fuori, sarà diverso da quello da te prescelto (hai detto di preferire la struttura a schede). Prova a fare la procedura guidata e a spostare le 2 sottomaschere dentro 2 schede e vedi se tutto funziona come previsto.
  • Re: Popolamento tabelle attraverso caselle combinate

    Grazie per la risposta, se non troverò altra soluzione percorrerò la strada che mi hai proposto.
    Ma il codice che vi ho strato è totalmente sbagliato ho posso continuare a sperimentarlo?
  • Re: Popolamento tabelle attraverso caselle combinate

    plutone23 ha scritto:


    Ma il codice che vi ho mostrato è totalmente sbagliato o posso continuare a sperimentarlo?
    Direi che non c'entra nulla con il tuo caso. Io nemmeno saprei dove potrebbe essere utile.
Devi accedere o registrarti per scrivere nel forum
3 risposte