MASCHERA INSERIMENTO RECORD SINGOLO

di il
18 risposte

MASCHERA INSERIMENTO RECORD SINGOLO

Salve a tutti

premesso che sono nuovo nell'utilizzo di access, ho un problema che alla maggior parte di voi può sembrare banale.

Ho la necessità di creare una maschera per l'inserimento di un solo record alla volta nel mio database.
Ovviamente ad ogni richiamo della maschera (attraverso un pulsante) il record va aggiunto dopo l'ultimo record inserito.

Qualcuno può suggerirmi come fare?

Grazie mille

18 Risposte

  • Re: MASCHERA INSERIMENTO RECORD SINGOLO

    Crea una maschera con l'Autocomposizione, quindi crea un BUTTON con il Wizard e leggi le Opzioni che ti si presentano... poi guarda i parametri della Funzione OpenForm e la modalità di INSERIMENTI descritta nella guida.

    Sulla questione che il Record sia inserito DOPO l'ultimo è un concetto relativo non concreto, ovvero un FALSO PROBLEMA inq uanto è solo questione di VISUALIZZAZIONE, nel senso che per essere considerato ULTIMO devi attuare un concetto di ordinamento per un campo progressivo incrementale, come un Counter o una Data... a quel punto il Nuovo inserimento sarà sempre l'ultimo, ma se il criterio di Ordinamento è il Nome o Cognome capisci anche tu che non è come chiedi...!
  • Re: MASCHERA INSERIMENTO RECORD SINGOLO

    Ciao Alex

    grazie mille per la risposta.
    A dire il vero sono riuscito a creare il pulsante e a collegarlo alla maschera.
    Purtroppo non ho capito molto di quello che hai scritto nella seconda parte della tua risposta.

    Quello che ho fatto è collegare la maschera per inserire i nuovi record al database dove vanno inseriti.
    Quello che mi succede è che quando clicco sul pulsante mi si apre la maschera con il primo record visualizzato, mentre io vorrei i campi vuoti con la possibilità di scriverci dentro.
    La tabella in oggetto ha come chiave primaria un progressivo.

    Avrei anche potuto allegare il file, ma mi dice che l'estensione accdb non è permessa.
  • Re: MASCHERA INSERIMENTO RECORD SINGOLO

    Purtroppo a seconda di che Versione di Access usi ci sono considerazioni diverse.
    Con le vecchie versioni la generazione dei controlli Wizard creava un codice VBA su Evento, nelle nuove versioni è stata implementata la funzionalità delle Macro che io non conosco.

    Quindi se ti apri la guida e cerchi la fuzione OpenForm
    
    Sub OpenForm(FormName, [View As AcFormView = acNormal], _
          [FilterName], _
          [WhereCondition], _
          [DataMode As AcFormOpenDataMode = acFormPropertySettings], _
          [WindowMode As AcWindowMode = acWindowNormal], [OpenArgs])
        Membro di Access.DoCmd
    trovi un Parametro che si chiama [DataMode] che definisce la modalità di accesso ai dati.
    Se passi come valore del parametro questo:
    Const acFormAdd = 0
        Membro di Access.AcFormOpenDataMode
    Si apre in modalità Aggiunta...

    Purtroppo ora devi passare alla fase più attiva, quindi studiare un po sia la guida che qualche manuale per capire di cosa ti ho parlato...!
  • Re: MASCHERA INSERIMENTO RECORD SINGOLO

    La versione che io utilizzo è ACCESS 2010.
    Qualcuno nn saprebbe indicarmi un tutorial da seguire?

    Sono veramente alle prime armi.

    Grazie in anticipo.

    Ciao
  • Re: MASCHERA INSERIMENTO RECORD SINGOLO

    ssayan79 ha scritto:


    Ho la necessità di creare una maschera per l'inserimento di un solo record alla volta nel mio database.
    Ovviamente ad ogni richiamo della maschera (attraverso un pulsante) il record va aggiunto dopo l'ultimo record inserito.
    Faccio fede a queste uniche frasi. Io penserei a una MASCHERA SINGOLA e imporre con una macro (o codice VBA) che Su Apertura della maschera deve posizionarsi su Record Nuovo.
  • Re: MASCHERA INSERIMENTO RECORD SINGOLO

    Grazie mille per l'input Osvaldo.

    E come faccio?

    Ciao
  • Re: MASCHERA INSERIMENTO RECORD SINGOLO

    Secondo me la cosa più adeguata è questa, con il passaggio al NUOVO si rendono accessibili all'utente tutti gli altri Record e potrebbe non fare quello che ci si aspetta:
    
        DoCmd.OpenForm "NomeForm", , , , acFormAdd[, acDialog]
    Attenzione all'ultimo parametro, in quanto normalmente in conseguenza ad azioni di ADDNEW, serve aggiornare qualche cosa in quello che si sta visualizzando, risulta pertanto obbligo gestire in modo SINCRONO le maschere di INSERIMENTO... per poi forzare il REQUERY.

    Vi suggerisco sempre, di analizzare le problematiche in modo più completo possibile...

    P.S. Per [ssayan79]... cerca di aprire la GUIDA IN LINEA e leggere quello che suggerisce, non puoi pensare che ti venga dettato passo passo...!
  • Re: MASCHERA INSERIMENTO RECORD SINGOLO

    Ribadisco che non ho capito passo passo come deve funzionare il tutto e continuo da qui:

    OsvaldoLaviosa ha scritto:


    Io penserei a una MASCHERA SINGOLA e imporre con una macro (o codice VBA) che Su Apertura della maschera deve posizionarsi su Record Nuovo.
    1. Vai al gruppo delle macro e creane una nuova in visualizzazione struttura
    2. Al rigo1 Azione, scrivi e imposta:
    ApriMaschera
    Nome maschera: TuaMaschera
    Visualizzazione: Maschera
    Modalità immissione dati: Aggiungi (questo corrisponde al suggerimento proposto da Alex, ma io lo lascerei vuoto...spiego dopo perchè)
    3. Al rigo2 Azione, scrivi e imposta:
    VaiARecord
    Record: Nuovo
    4. Salva la macro con nome X
    5. Questa macro deve essere associata a un evento. Potrebbe essere la proprietà "Su apertura" di TuaMaschera, oppure "Su clic" di un pulsante che non ho capito dove si trova.

    Il suggerimento di Alex va bene, se non altro rende "esclusivo" l'input dati. Io preferisco andare su Record Nuovo (mantenendo i record precedenti) perchè spesso capita di voler riciclare alcuni valori del record precedente sfruttando la combinazione tasti CTRL+apostrofo che risulta molto comoda.
    Valuta tu la soluzione migliore. Se preferisci quella di Alex, non devi mettere l'azione VaiARecord (Nuovo).
  • Re: MASCHERA INSERIMENTO RECORD SINGOLO

    Grazie mille Osvaldo.

    Tra l'altro la tua procedura mi può aiutare anche per altre operazioni.

    L'ultima cosa che mi resta da fare è associare un pulsante alla macro.

    Come posso fare?

    Ringrazio ancora tutti per il grande aiuto e la disponibilità.
  • Re: MASCHERA INSERIMENTO RECORD SINGOLO

    1. Vai in visualizzazione struttura maschera, quella dove tu vuoi che venga aggiunto un pulsante
    2. Clicca su "Casella degli strumenti" e scegli "Pulsante di comando", quindi disegna (trascinando) un rettangolo che rappresenta il tuo pulsante
    3. Clicca sul pulsante appena creato con il mouse destro e scegli Proprietà, scheda Eventi, Su clic: nome macro (puoi selezionarla dalla freccetta del menu a tendina)
    4. Salva tutto
  • Re: MASCHERA INSERIMENTO RECORD SINGOLO

    Grazie di cuore.

    Ho a questo punto solo due problemi :

    1. Quando provo a lanciare la macro mi dice che l'oggetto non è aperto e devo prima aprirlo e poi posso inserire il tutto.
    2. la tabella dove vado ad inserire non mi si aggiorna in automatico, ma vedo l'inserimento solo dopo aver cliccato sul pulsante "Aggiorna" sulla barra. Ho provato a mettere un "aggiornamento" nella macro dopo l'inserimento ma non sembra funzionare.

    Qualche suggerimento?
    Grazie ancora
  • Re: MASCHERA INSERIMENTO RECORD SINGOLO

    Sono contento... ti suggerisco di rileggere quello che ti dissi prima, visto che ti avevo anche predetto l'esigenza di aggiornare...!!!!

    Rileggi questo:
    http://www.iprogrammatori.it/forum-programmazione/access/maschera-inserimento-record-singolo-t21747.html#p8521443
  • Re: MASCHERA INSERIMENTO RECORD SINGOLO

    Grazie Alex

    eseguendo un aggiornamento sincrono delle query adesso funziona.
    Mi resta il problema del punto 1. , proverò a leggere la guida in linea come suggerito.

    Grazie ancora.
  • Re: MASCHERA INSERIMENTO RECORD SINGOLO

    Di cosa stai parlando, perchè con quello che ti ho detto hai tutti gli elementi per risolvere TUTTO.
Devi accedere o registrarti per scrivere nel forum
18 risposte