Problema con Macro di dati "Dopo aggiornamento"

Anonimo
2012-07-26T09:38:11+00:00

Salve a tutti,

avrei la necessità di creare una macro di dati in una tabella che alla modifica di un campo, automaticamente ne modifichi un altro di conseguenza. Su internet ho trovato un video (sul sito di office) che mostrava come utilizzare le macro di dati, facendo (che fortuna!) un esempio identico al mio scopo:

http://office.microsoft.com/it-it/videos/video-creare-una-macro-di-dati-VA100305331.aspx

Peccato, però, che facendo gli stessi identici passaggi nel mio database la cosa non funzioni. Da sottolineare che ho lasciato vuoto il campo “alias” proprio come dice il video, e perché non so cosa inserire (anche qui ho trovato informazioni sull’alias applicate alla condizione Where, ma francamente non ho trovato applicazione in questo frangente)

http://blogs.office.com/b/microsoft-access/archive/2010/03/11/data-macro-aliases-and-the-where-condition-demystified.aspx

Cercando su questo forum ho trovato 2 casi simili al mio:

In entrambi i casi è stato detto di spostare la macro in "Prima della modifica" perchè il comando "ModificaRecord" non può essere eseguito "Dopo aggiornamento". Provando questa soluzione, in effetti la macro di dati funziona, però non risolve il mio problema: avrei bisogno che i dati si aggiornassero immediatamente dopo l'inserimento di un determinato campo, non quando passo a un nuovo record (in realtà come avviene nel video dimostrativo).

A questo punto mi sorgono spontanee 2 domande:

  • Intanto, perché (quasi per principio) l'Access sul video permette di fare una cosa che il mio Access non concepisce?
  • Come posso comunque risolvere il mio problema; potrei utilizzare una maschera per fare questo (in passato l'ho già fatto) però, sinceramente, in questo caso mi verrebbe proprio più comodo che la macro venisse eseguito a livello della tabella, in modo tale da essere sempre "disponibile" in tutti gli elementi successivi.

Altra curiosità, io ho anche un portatile, anch'esso con Access 2010, ho provato anche lì a creare la situazione e non funziona, però nel “registro applicazioni” compare un errore "Azione ModificaRecord non eseguita. L’alias predefinito rappresenta un record di sola lettura".

Cosa che sul computer fisso (dove è avvenuta la storia che vi ho appena descritto) non compare.

In entrambi i casi si tratta di Windows 7 (fisso a 64 bit) portatile (a 32 bit); versione di office 2010 (entrambi i casi a 32 bit). (ovviamente tutto legale, non copie)

Grazie per la disponibilità, scusate se sono stato prolisso ma volevo presentare i "sintomi" e "l'anmesi" più completa possibile

Ciao ciao

Francesco

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
Anonimo
2012-07-26T19:29:11+00:00

Ciao Francesco,

[CIT]

Intanto, perché (quasi per principio) l'Access sul video permette di fare una cosa che il mio Access non concepisce?

[Risposta]

io credo che il video sia sbagliato, qui "Video: Create a data macro" c'è l'originale che usa la macro "Prima della modifica" e come puoi vedere gli effetti della modifica si vedono solo dopo aver scritto il record ovvero quando cambia record.

[CIT]

Come posso comunque risolvere il mio problema; potrei utilizzare una maschera per fare questo (in passato l'ho già fatto) però, sinceramente, in questo caso mi verrebbe proprio più comodo che la macro venisse eseguito a livello della tabella, in modo tale da essere sempre "disponibile" in tutti gli elementi successivi.

[Risposta]

un buon database non dovrebbe avere tabelle con campi ridondanti, rifacendoci all'esempio del video  potresti otenere lo StatoProgetto con una colonna calcolata  di una query che poi sarà l'origine record di maschere/record ecc.

La formula della colonna calcolata sarà:


StatoProgetto: Iif(PercentualeCompletamento=1;"Completato";Iif(PercentualeCompletamento=0;"Non Iniziato";"In Corso"))


In questo modo modificando la PercentualeCompletamento avrai immediatamente nella colonna calcolata StatoProgetto il valore corrispondente.

Se proprio vuoi in Access2010 esistono anche le Colonne calcolate a livello di tabella, vedi Aggiungere un campo calcolato a una tabella

Ciao

Giorgio Rancati

La risposta è stata utile?

0 commenti Nessun commento

3 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2012-07-27T14:41:16+00:00

    Grazie 1000,

    molto chiaro...

    ciao ciao

    Francesco

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2012-07-27T10:25:39+00:00

    Ciao Francesco,

    l'alias è utile per riferirsi ad una tabella con un nome più comodo e breve.

    Qui sotto trovi un esempio di utilizzo dell'alias e una spiegazione sulla sua utilità.

    Data Macro Aliases and the Where Condition Demystified

    Ciao

    Giorgio

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2012-07-27T10:08:31+00:00

    Grazie 1000 Giorgio,

    solo un'altra curiosità (più per conoscenza personale che reale necessità in questo database) che non sono riuscito a dirimere; cosa s'intende per "alias" nell'azione "ModificaRecord"?

    Grazie ancora

    ciao ciao

    Francesco

    La risposta è stata utile?

    0 commenti Nessun commento