Difficoltà sintassi codice

di il
9 risposte

Difficoltà sintassi codice

Salve,
Sono nuovo del forum ed anche acerbo di access, il mio problema è che non riesco ad aggiornare un elenco di una combo dopo che ho inserito un dato.
mi spiego meglio, ho una maschera fatture con una sottomaschera righifatture.
la Sottomaschera ha il campo articolo (codarticolo) che à una combo la quale prende i dati da una tabella prodotti, campo descrizone.

la proprietà della combo e solo in elenco SI, e con una sub su non in elenco faccio aprire la maschera prodotti, nel campo descrizione appare il nome del nuovo articolo digitato. poi compilo altri campi che sono obbligatori (unità di misura, gruppo, ingrediente) e salvo.

il problema inizia qui: sull'evento su chiusura dovrei aggiornare la lista della combo, ma non riesco ad arrivarci.

ho inserito due diverse righe di codice ma mi dice che non trova la maschera

Forms!inserimento_fatture!righifatture_sottomaschera!codarticolo.Value = me!id
Forms!inserimento_fatture!righifatture_sottomaschera!codarticolo.requery

dove è il mio errore?

grazie

9 Risposte

  • Re: Difficoltà sintassi codice

    simbone ha scritto:


    la Sottomaschera ha il campo articolo (codarticolo) che ha una combo la quale prende i dati da una tabella prodotti, campo descrizone

    simbone ha scritto:


    Forms!inserimento_fatture!righifatture_sottomaschera!codarticolo.Value = me!id
    A me sembra che queste due cose siano incoerenti. La combo su quale campo poggia?
    - codarticolo?
    - descrizione?
    - id (presupponendo idarticolo)?

    simbone ha scritto:


    ho inserito due diverse righe di codice ma mi dice che non trova la maschera
    Quando esegui quel comando di assegnazione è indispensabile che entrambe le maschere siano aperte.
  • Re: Difficoltà sintassi codice

    Grazie per la risposta,
    Provo a spiegare,
    la combo poggia su due campi della tabella prodotti, il campo id ed il campo descrizione, ha due colonne associate; codarticolo è il nome dell'oggetto combo nella sottomaschera righifatture sottomaschera,

    nome elemento codarticolo
    origine controllo codarticolo
    etichetta articolo


    provato con le maschere aperte, ma mi dice che non trova la maschera inserimento fatture

    maschera inserimento fatture,
    origine record Fatture
    etichetta inserimento fatture
  • Re: Difficoltà sintassi codice

    Dovresti aprire la maschera di Inserimento in modalità [acDialog] ovvero Sincrona, inserire i dati, e quando la chiudi il codice riprende nella Form che l'ha chiamata, solo a quel punto puoi eseguire il REQUERY della combo che ricaricherà tutti i dati, incluse le aggiunte.

    Se poi vuoi che la combo si posizioni su quello che hai appena aggiunto la cosa richiede uno sforzo aggiuntivo... ma andiamo per gradi...
  • Re: Difficoltà sintassi codice

    simbone ha scritto:


    la combo poggia su due campi della tabella prodotti, il campo id ed il campo descrizione, ha due colonne associate; codarticolo è il nome dell'oggetto combo nella sottomaschera righifatture sottomaschera
    OK, ora è chiaro. Più correttamente si dovrebbe dire che la combo poggia sul campo codarticolo (equivalente a id). La colonna associata è id. La combo è composta di 2 colonne. Comunque ci siamo capiti.

    simbone ha scritto:


    il problema inizia qui: sull'evento su chiusura dovrei aggiornare la lista della combo, ma non riesco ad arrivarci
    Mi sembra ovvio che "su chiusura" di maschera Prodotti...poi come fa a impostare? Io prevederei un pulsante in maschera Prodotti al cui "Su clic" succede questo
    Forms!inserimento_fatture!righifatture_sottomaschera!codarticolo.Value = me!id
    DoCmd.Close acForm, "MascheraProdotti"
    Forms!inserimento_fatture!righifatture_sottomaschera!codarticolo.requery
    ho fatto un test similare e funziona.
  • Re: Difficoltà sintassi codice

    Grazie della risposta,
    funzionerebbe tutto ok, solo che non riesce a trovarmi la maschera inserimento fatture che ovviamente è aperta.

    la maschera inserimento fatture l'ho creata facendo una copia della maschera fatture, rinominandola e facendo qualche modifica a layout etc(come quella in oggetto) può essere questo il problema?

    da macro la trova, ho pulsanti ed azioni che funzionano, ma da codice no.

    sai mica darmi una spiegazione plausibile?

    grz ancora del tempo che mi dedicate
  • Re: Difficoltà sintassi codice

    simbone ha scritto:


    la maschera inserimento fatture l'ho creata facendo una copia della maschera fatture, rinominandola e facendo qualche modifica a layout etc(come quella in oggetto) può essere questo il problema?
    No. Accertati che tutti i nomi degli oggetti maschera e sottomaschera siano corretti...talvolta sfugge un carattere, oppure se hai spaziato i nomi devi racchiudere dentro parentesi quadre.
    Ma hai cambiato l'evento? "Su chiusura" non va bene, te l'avevo già spiegato...oppure va bene "Su clic", ma hai dimenticato di cancellare la routine evento a "Su chiusura".
    Se hai fatto una copia di maschera [fatture] in [maschera_inserimento] ti sarai portato appresso tutte le routine associate alla maschera [fatture] che nella seconda non ti servono.
  • Re: Difficoltà sintassi codice

    Controllero,
    comunque la maschera viene aperta da codice, ho creato un pulsante apposta per simulare l'evento e funziona

    Private Sub Comando49_Click()
    DoCmd.OpenForm! "inserimento fatture", acNormal


    End Sub
  • Re: Difficoltà sintassi codice

    La maschera si chiama "inserimento fatture" o "inserimento_fatture"? Le due denominazioni sono possibili, ma diverse.
  • Re: Difficoltà sintassi codice

    Ciao Osvaldo,

    Ho risolto, grazie al tuo aiuto, i miei errori erano due:

    cambiato codice da Forms!inserimento_fatture! etc.
    a Forms![inserimento fatture]! etc

    a questo punto mi dava err. 438 ovvero proprietà o metodo non supportate dall'oggetto
    che, per me, era la combo

    il codice che funziona è:

    Forms![inserimento fatture]![righifatture Sottomaschera]!codarticolo.Value = Me!ID
    DoCmd.Close acForm, "Prodotti"
    Forms![inserimento fatture]![righifatture Sottomaschera]!codarticolo.Requery


    Adesso mi aggiorna la combo, chiude la maschera prodotti ed il nome del nuovo articolo appare già all' interno nella combo.

    Grazie infinite
Devi accedere o registrarti per scrivere nel forum
9 risposte