Aggiornare un campo di una maschera

di
Anonimizzato14047
il
14 risposte

Aggiornare un campo di una maschera

Salve a tutti

vi scrivo ormai sull'orlo della disperazione in quanto è tutto il giorno che vengo preso in giro da Access
Scrivendo una parola in un campo di una maschera, vorrei che una Routine cerchi il campo corrispondente al contenuto (LuogoS) in una tabella (Luoghi_EquiProvenienza) e mi sostituisca quello che ho scritto con il contenuto della colonna a fianco (Luogo) dello stesso record
ebbene si nemmeno io riesco a capire quello che ho scritto... comunque la routine dovrebbe essere pressappoco così:
Set db = CurrentDb()
Set db = db.OpenRecordset("Luoghi_EquiProvenienza")
Set rs = CurrentDb.OpenRecordset("Luoghi_EquiProvenienza")
rs.FindFirst "[LuogoS] = '" & Me.InsContinente & "'"
InsContinente = rs![Luogo]


Il problema che lo stesso codice applicato in 2 maschere diverse una funziona e l'altra no...
Volevo allegare il file di Access di esempio ma zip,rar,accdb non vengono accettate...
mi potete aiutare?
Grazie a tutti

14 Risposte

  • Re: Aggiornare un campo di una maschera

    Ho caricato i 2 file accdb al seguente indirizzo: www.longoturri.it/Esempi.ra
    Grazie ancora a tutti
  • Re: Aggiornare un campo di una maschera

    Vedo che non ti risponde proprio nessuno. Purtroppo io non so usare VBA, ma, cercando di interpretare quello che vuoi fare...fiuto una strada alternativa con le macro e le mie esigue conoscenze. Domande:
    1) Come si chiama la maschera dove digiti il valore da cercare e sostituire poi?
    2) Per Luoghi_EquiProvenienza hai per forza necessità di lavorare con sola tabella? Avresti una maschera equivalente su cui sarebbe più facile lavorarci sopra?
  • Re: Aggiornare un campo di una maschera

    Se apri la guida trovi che la libreria Dao al fine di acconsentire la modifica dei dati richiede la chiamata della modalità di Edit quindi la conferma con la il metodo Update.
    Cerca nella guida trovi esempi di codice esplicito.
  • Re: Aggiornare un campo di una maschera

    Non so se è quello che vuoi ottenere... ma questo codice preso dal tuo db
    
      Set db = CurrentDb()
      Set db = db.OpenRecordset("Luoghi_EquiProvenienza")
      Set rs = CurrentDb.OpenRecordset("Luoghi_EquiProvenienza")
      rs.FindFirst "[LuogoS] = '" & Me.InsContinente & "'"
      InsContinente = rs![Luogo]
    
    svolge la stessa funzione di questo:
    
    InsContinente = DLookup("Luogo", "Luoghi_EquiProvenienza", "LuogoS='" & CStr(Me.InsContinente) & "'")
    
    solo che a me quest'ultimo ha funzionato...
  • Re: Aggiornare un campo di una maschera

    Ciao,
    non so se ho capito bene il tuo intento...
    in ogni caso prendendo la form "tentativo 6 non VA", prova con un semplice :
    
    Me.InsContinente = Me.CercaContinente.Column(1)
    
    dopo aggiornamento della comboBox CercaContinente

    credo, in ogni caso, che il tuo db necessiti di una messa punto per quanto alla normalizzazione...

    poi qui :
    
       Set db = CurrentDb()
      Set db = db.OpenRecordset("Luoghi_EquiProvenienza")
      Set rs = CurrentDb.OpenRecordset("Luoghi_EquiProvenienza")
      rs.FindFirst "[LuogoS] = '" & Me.InsContinente & "'"
      InsContinente = rs![Luogo]
    
    
    instanzi db a current db e successivamente la stessa variabile oggetto ad un recordset...mmm...no mi sa che così non va troppo bene...

    in ogni caso sfrutta la proprietà column della comboBox e dicci se ottieni quanto richiesto.

    un saluto.
  • Re: Aggiornare un campo di una maschera

    OsvaldoLaviosa ha scritto:


    Vedo che non ti risponde proprio nessuno. Purtroppo io non so usare VBA, ma, cercando di interpretare quello che vuoi fare...fiuto una strada alternativa con le macro e le mie esigue conoscenze. Domande:
    1) Come si chiama la maschera dove digiti il valore da cercare e sostituire poi?
    2) Per Luoghi_EquiProvenienza hai per forza necessità di lavorare con sola tabella? Avresti una maschera equivalente su cui sarebbe più facile lavorarci sopra?
    Ti ringrazio Osvaldo, si , passando attraverso una Query o un'altra maschera sono capace ma sto cercando di evitare inutili passaggi ad ogni piccola ricerca che faccio. inoltre non capivo il motivo per cui un esempio funzionava e l'altro no. Già ho i DB con un centinaio di query e altrettante maschere...
    Grazie Ancora
  • Re: Aggiornare un campo di una maschera

    @Alex ha scritto:


    Se apri la guida trovi che la libreria Dao al fine di acconsentire la modifica dei dati richiede la chiamata della modalità di Edit quindi la conferma con la il metodo Update.
    Cerca nella guida trovi esempi di codice esplicito.
    Ringrazio anche te, ma ad essere sincero non ho capito molto dal tuo suggerimento. Dalla guida di access non sono mai riuscito a trovane molto di buono. Cercando libreria dao poi trovo ancora meno. (mi viene quasi il dubbio che forse non sia installata). Grazie ancora
  • Re: Aggiornare un campo di una maschera

    Angelo_Tbp ha scritto:


    non so se è quello che vuoi ottenere... ma questo codice preso dal tuo db
    
      Set db = CurrentDb()
      Set db = db.OpenRecordset("Luoghi_EquiProvenienza")
      Set rs = CurrentDb.OpenRecordset("Luoghi_EquiProvenienza")
      rs.FindFirst "[LuogoS] = '" & Me.InsContinente & "'"
      InsContinente = rs![Luogo]
    
    svolge la stessa funzione di questo:
    
    InsContinente = DLookup("Luogo", "Luoghi_EquiProvenienza", "LuogoS='" & CStr(Me.InsContinente) & "'")
    
    solo che a me quest'ultimo ha funzionato...
    Grazie mille
    Funziona perfettamente
    ora provo a sostituire la tua semplice frase dove avevo messo la mia "pappardella"
    Grazie ancora
  • Re: Aggiornare un campo di una maschera

    Goku ha scritto:


    ciao,
    non so se ho capito bene il tuo intento...
    in ogni caso prendendo la form "tentativo 6 non VA", prova con un semplice :
    
    Me.InsContinente = Me.CercaContinente.Column(1)
    
    dopo aggiornamento della comboBox CercaContinente

    credo, in ogni caso, che il tuo db necessiti di una messa punto per quanto alla normalizzazione...

    poi qui :
    
       Set db = CurrentDb()
      Set db = db.OpenRecordset("Luoghi_EquiProvenienza")
      Set rs = CurrentDb.OpenRecordset("Luoghi_EquiProvenienza")
      rs.FindFirst "[LuogoS] = '" & Me.InsContinente & "'"
      InsContinente = rs![Luogo]
    
    
    instanzi db a current db e successivamente la stessa variabile oggetto ad un recordset...mmm...no mi sa che così non va troppo bene...

    in ogni caso sfrutta la proprietà column della comboBox e dicci se ottieni quanto richiesto.


    un saluto.
    Hai certamente ragione. io di codice non ne capisco un piffero...
    Vado avanti x tentativi poi quando per "magia" qualcosa funziona copio ed incollo ovunque
    senza sapere a cosa serve...
    comunque a forza di... un colpo alla botte, un colpo al cerchio il mio database è arrivato a 250Mb... x questo adesso sto cercando di semplificarlo...
    Grazie ancora
  • Re: Aggiornare un campo di una maschera

    Mi permetto di chiedervi un'altra cosa senza aprire una nuova discussione poi per un po non vi disturbo più..
    sto usando: Mese: DatePart("m";[Data]) in una query...
    Sapete dirmi come si può ottenere il mese con lo 0 davanti: cioè gennaio = 01
    Grazie ancora
  • Re: Aggiornare un campo di una maschera

    Ciao,
    prova con :
    
    MeseM: Format([tuaData];"mm")
    
    ti consiglio di aprire un altro thread la prossima volta questa domanda non centra nulla con quanto discusso in precedenza.
    Come è andata con column?
    ciao,
  • Re: Aggiornare un campo di una maschera

    Goku ha scritto:


    ciao,
    prova con :
    
    MeseM: Format([tuaData];"mm")
    
    ti consiglio di aprire un altro thread la prossima volta questa domanda non centra nulla con quanto discusso in precedenza.
    Come è andata con column?
    ciao,
    Grazie mille, ci sono riuscito
    ieri provando non mi ero accorto che nella query in modalità struttura si scrive
    Format([Date()];"mm") mentre in visualizz.sql bisogna scrivere Format([Date()],"mm")
    buona giornata a tutti
  • Re: Aggiornare un campo di una maschera

    Entomologos ha scritto:


    Goku ha scritto:


    ciao,
    prova con :
    
    MeseM: Format([tuaData];"mm")
    
    ti consiglio di aprire un altro thread la prossima volta questa domanda non centra nulla con quanto discusso in precedenza.
    Come è andata con column?
    ciao,
    Grazie mille, ci sono riuscito
    ieri provando non mi ero accorto che nella query in modalità struttura si scrive
    Format([Date()];"mm") mentre in visualizz.sql bisogna scrivere Format([Date()],"mm")
    buona giornata a tutti
    non sono riuscito ad applicarla perché non sono riuscito a capire cos'era il Me.CercaContinente
    (non ho nella maschera un campo che contiene il campo corretto)
    ma non ci ho perso dietro tanto tempo a dire la verità, perché il
    InsContinente = DLookup("Luogo", "Luoghi_EquiProvenienza", "LuogoS='" & CStr(Me.InsContinente) & "'")... funziona niente male e sono riuscito ad applicarla in un paio di posti cancellando una buona paginetta di findfirst inutili
    OK x il thread la prox ne creo uno nuovo...
    Grazie ancora x i suggerimenti
  • Re: Aggiornare un campo di una maschera

    Ciao,
    nelle maschere ci sono i controlli i campi sono propri di tabelle e queries.
    il controllo CercaContinente è la combobox posizionata a dx rispetto a tutte le altre della form "tentativo 6 non VA" del tuo DB nominato "prova non va".
    devi solo copiare dopo aggiornamento il codice suggerito e salvare la form.
    vedi se funziona.

    scegliento "Africa Nord" nella combo "CercaContinente" la combo in alto a sx e nominata "InsContinente" si popola automaticamente con questo valore :"Africa |Continente|".

    ciao.
Devi accedere o registrarti per scrivere nel forum
14 risposte