Accodare un record

di il
10 risposte

Accodare un record

Buongiorno a tutti, ecco il mio quesito odierno.
Ho un database in cui ho inserito un codice per assemblare un part number composto dalla data odierna più un numero progressivo che vado a definire uguale all' ID di una tabella chiamata Elenco.
Ho creato una maschera in cui facendo Click sul pulsante "Aggiungi record", access esegue il codice e mi visualizza in una casella di testo il part number composto (esempio: 20150401-1).
Quello che non riesco a far eseguire al mio database è andare ad inserire il numero composto nella casella corrispondente della tabella Elenco.

Ecco il codice che assembla il part number:
[Private Sub Comando4_Click()

    Dim Oggi As String
    Dim Progressivo As Integer

        Progressivo = ID_Elenco.Value

    Oggi = Format(Date, "yyyymmdd")
    Testo0 = Oggi & "-" & Progressivo

End Sub
Come faccio?

Grazie, ciao,
sweep

10 Risposte

  • Re: Accodare un record

    Sbaglio o tu vorresti appiccicare a destra del tuo Testo0 un PROGRESSIVO RELATIVO che dovrebbe ripartire da 1 ogni qualvolta la Data cambia?
    Sicuramente non te la puoi cavare così a buon mercato. Il problema di ottenere un PROGRESSIVO RELATIVO è stato discusso già in passato. Esistono procedure apposite per ricavarlo, ma con molti rischi collaterali. Prova a digitare come parole chiave "contatore relativo" oppure "progressivo relativo".
  • Re: Accodare un record

    No. Evidentemente mi sono spiegato male. Non voglio un progressivo.
    Quello che vorrei, ma non riesco a fare, è che il part number che mi compare nella casella di testo della mia maschera venga memorizzato nel record P/N della tabella Elenco, quando premo il pulsante "aggiungi record" presente nella mia maschera.

    Grazie, ciao,
    sweep
  • Re: Accodare un record

    Ti chiederei una descrizione chiara e dettagliata di tutto, cioè:
    - tutti i nomi propri di tabelle
    - tutti i nomi propri dei campi di ogni tabella, indicando la chiave primaria
    - le relazioni
    - tutti i nomi propri di maschere
    - poi descrivi passo passo cosa vuoi fare
  • Re: Accodare un record

    Grazie, ci provo.

    • Tabella il cui nome è Elenco, composta dai seguenti campi:
    • ID_Elenco (chiave primaria)
    • P-N (Part number)

    • Maschera il cui nome è MSK-Elenco in cui compaioo i seguenti campi/oggetti:
    • Campo ID_Elenco (prende il dato dalla tabella Elenco)
    • Campo Testo0 (che utilizzo per visualizzare il P/N assemblato col codice VBA che ho elencato nel mio primo post)
    • Pulsante "Aggiungi record" (al cui evento su click è associato il codice VBA di cui sopra)

    Poi, passo passo ecco cosa vorrei fare:
    1- Apro la maschera MSK-Elenco
    2- Clicco sul pulsante "aggiungi record"
    3- Nella casella di testo Testo0 compare il P/N
    4- La tabella "Elenco" si aggiorna con l'aggiunta del P/N visualizzato nella casella di Testo

    Questo è tutto.
    ciao,
    sweep
  • Re: Accodare un record

    Correggimi se/dove sbaglio.
    Testo0 è solo una casella di testo nella MSK-Elenco, ma non è associato a un campo di Elenco.
    Non ho capito cosa succede ai punti 3- e 4-.
    Prima di cliccare sul Pulsante nel campo P-N io vedo un valore, mentre in Testo0 vedo vuoto.
    Se in P-N c'è il valore 88 (non si capisce se è Numerico o Testo), cliccando sul Pulsante apparirà in Testo0 il valore DataOggiColFormatoRivoltato-88.
    Poi cosa deve succedere?

    Ignoro il motivo di tutto quello che vuoi fare.
    È un giocattolo o un database?
    Perchè vuoi fare tutte queste manovre?
  • Re: Accodare un record

    Si, Testo0 è una casella non associata.
    Al punto 3 accade che (dopo avere cliccato il pulsante, punto 2 e mandato in esecuzione il codice VBA) nella casella di testo, Testo0, mi compaiono una serie di numeri (composti da YYYYMMDD-ID_Elenco).
    Il punto 4 è quello che non riesco a far fare ad Access; vorrei che ciò che è visualizzato nella casella di testo Testo0 diventi un record e sia aggiunto alla tabella Elenco.
    Il campo Testo0 è di tipo testo.
    Ignoro il motivo di tutto quello che vuoi fare.
    È un giocattolo o un database?
    Il motivo per cui devo fare tutto questo è quello di tenere un database (non un giocattolo) di P/N.
    Perchè vuoi fare tutte queste manovre?
    Sono troppe manovre? Io non sono un programmatore, sono un perito meccanico e faccio il Capo commessa, sono curioso e devo/voglio imparare ad usare Access per motivi di lavoro, perchè ritengo sia lo strumento più efficace.

    Grazie, ciao,
    Massimo
  • Re: Accodare un record

    sweep ha scritto:


    Ho un database in cui ho inserito un codice per assemblare un part number composto dalla data odierna più un numero progressivo che vado a definire uguale all' ID di una tabella chiamata Elenco.
    Ho creato una maschera in cui facendo Click sul pulsante "Aggiungi record", access esegue il codice e mi visualizza in una casella di testo il part number composto (esempio: 20150401-1).
    Quello che non riesco a far eseguire al mio database è andare ad inserire il numero composto nella casella corrispondente della tabella Elenco.

    Ecco il codice che assembla il part number:
    Private Sub Comando4_Click()
    
        Dim Oggi As String
        Dim Progressivo As Integer
    
            Progressivo = ID_Elenco.Value
    
        Oggi = Format(Date, "yyyymmdd")
        Testo0 = Oggi & "-" & Progressivo
    
    End Sub
    Ci sono due modi per inserire dati in una tabella: una query di inserimento (che si può costruire ed eseguire anche da vba) o l'uso dell'oggetto recordset da vba, con il metodo AddNew. Non prendo in considerazione la prima ipotesi, probabilmente ti troveresti dopo mezz'ora a non riuscire a fare molto altro di quello che probabilmente hai in testa.
    Per l'uso dei recordset puoi iniziare da qui:
    E' solo un inizio.
  • Re: Accodare un record

    Visto che non si tratta di un giocattolo, io sono per la linea di contestualizzare l'INTERO assetto tabelle che tu hai a disposizione e capire meglio se quel meccanismo che tu vuoi implementare ha un senso oppure no. Almeno io ho bisogno di una descrizione così:
    - tutti i nomi propri di tutte le tue tabelle (mi sembra assurdo che tu abbia una sola e quella tabella)
    - i campi chiave con le relazioni
    - di cosa parla il tuo database
    - quali scopi ti proponi e perchè avresti progettato quel meccanismo di input
  • Re: Accodare un record

    Per l'uso dei recordset puoi iniziare da qui:
    E' solo un inizio.[/
    Grazie per il suggerimento, ora provo a iniziare dalla tua indicazione.

    Ciao,
    sweep
  • Re: Accodare un record

    OsvaldoLaviosa ha scritto:


    Visto che non si tratta di un giocattolo, io sono per la linea di contestualizzare l'INTERO assetto tabelle che tu hai a disposizione e capire meglio se quel meccanismo che tu vuoi implementare ha un senso oppure no. Almeno io ho bisogno di una descrizione così:
    - tutti i nomi propri di tutte le tue tabelle (mi sembra assurdo che tu abbia una sola e quella tabella)
    - i campi chiave con le relazioni
    - di cosa parla il tuo database
    - quali scopi ti proponi e perchè avresti progettato quel meccanismo di input

    Capisco, ma per ora ho solo quella tabella senza relazioni (per ora), Prossimamente aggiungerò sicuramente altre tabelle e query. Quello di cui ho bisogno, è creare un database per gestire gli interventi di intallazione/manutenzione.

    Grazie, ciao,
    sweep

    P.S. Buona Pasqua a tutti gli utenti del forum.
Devi accedere o registrarti per scrivere nel forum
10 risposte