Pulsante macro record modifica deciso

di il
10 risposte

Pulsante macro record modifica deciso

Ciao, ho la seguente tabella
ordine_testata

con questi campi :
id_ordine_testata
id_operatore
data_ora_ordine
punto_vendita
cliente
data_ritiro
altre_richieste

ho creato una maschera di nome
menu_generale

In questa maschera ho fatto un pulsante chiamato
modifica_testata

questo pulsante dovrebbe chiedere quale id_ordine_testata aprire in modifica e quindi aprire la maschera di modifica della testata, chiamaa ordine, sul id_ordine cercato. Ho usato questa macro per fare il pulsante ma non funziona.. qualcuso sa dirmi dove sbaglio?
Private Sub Comando55_Click()
DoCmd.OpenForm "ordine", acNormal, "", "[inserisci numero testata da modificare]=[Forms]![ordine]![Id_testata_ordine]", acEdit, acNormal
End Sub

HELP !!

10 Risposte

  • Re: Pulsante macro record modifica deciso

    Trovo la descrizione caotica e/o insufficiente. Spero tu chiarisca secondo le indicazioni che ti ho fornito nell'altro thread.
  • Re: Pulsante macro record modifica deciso

    Qui puoi vedere tabelle, campi e relazioni :
    http://goo.gl/n5SIV

    la maschera menu_generale non è associata a nessuna tabella in quanto è solo per guidare l'utente all'uso delle varfie funzioni del programma

    il pulsante modifica prenotazione dovrà andare ad aprire la maschera ordine, associata alla tabella ordine_testata, in modifica sul numero prenotazione che la persona vuole modificare. Il campo in cui va cercato il numero scritto dalla persona è id_ordine_testata
  • Re: Pulsante macro record modifica deciso

    asnaldo ha scritto:


    Ciao, ho la seguente tabella
    ordine_testata

    con questi campi :
    id_ordine_testata
    id_operatore
    data_ora_ordine
    punto_vendita
    cliente
    data_ritiro
    altre_richieste

    ho creato una maschera di nome
    menu_generale

    In questa maschera ho fatto un pulsante chiamato
    modifica_testata

    questo pulsante dovrebbe chiedere quale id_ordine_testata aprire in modifica e quindi aprire la maschera di modifica della testata, chiamaa ordine, sul id_ordine cercato. Ho usato questa macro per fare il pulsante ma non funziona.. qualcuso sa dirmi dove sbaglio?
    Private Sub Comando55_Click()
    DoCmd.OpenForm "ordine", acNormal, "", "[inserisci numero testata da modificare]=[Forms]![ordine]![Id_testata_ordine]", acEdit, acNormal
    End Sub

    HELP !!
    Help
  • Re: Pulsante macro record modifica deciso

    asnaldo ha scritto:


    asnaldo ha scritto:


    Private Sub Comando55_Click()
    DoCmd.OpenForm "ordine", acNormal, "", "[inserisci numero testata da modificare]=[Forms]![ordine]![Id_testata_ordine]", acEdit, acNormal
    End Sub
    HELP !!
    Help
    Ciao asnaldo, ti consiglierei di invertire la condizione WHERE dell'azione DoCmd, credo che così non sia scritta bene. Se non funzionasse, prova a togliere del tutto la condizione WHERE, collegare la maschera "ordine" ad una query che prenda i dati dalla tabella "ordine_testata" ed inserire il parametro "[inserisci numero testata da modificare]" come criterio sotto il campo "id_ordine_testata" nella query.
  • Re: Pulsante macro record modifica deciso

    Ciao asnaldo, ti consiglierei di invertire la condizione WHERE dell'azione DoCmd, credo che così non sia scritta bene
    Cosa intendi? Potresti scrivermi il codice corretto?
    Se non funzionasse, prova a togliere del tutto la condizione WHERE, collegare la maschera "ordine" ad una query che prenda i dati dalla tabella "ordine_testata" ed inserire il parametro "[inserisci numero testata da modificare]" come criterio sotto il campo "id_ordine_testata" nella query.
    Ho creato una query e funziona correttamente, il problema è che non voglio creare una maschera apposta dalla query quando alla fine la maschera di modifica è uguale a quella di inserimento. Se faccio una copia della maschera e associo la query poi fare il pulsante è semplice in quanto l'associo alla nuova maschera creata dalla query. Ma io vorrei evitare duplicazioni di maschere e associare il tasto modifica ordine alla maschera già esistente. O sfruttando la query oppure da codice vba
    Tks
  • Re: Pulsante macro record modifica deciso

    asnaldo ha scritto:


    Ciao asnaldo, ti consiglierei di invertire la condizione WHERE dell'azione DoCmd, credo che così non sia scritta bene
    Cosa intendi? Potresti scrivermi il codice corretto?
    Credo che la condizione WHERE dovrebbe essere scritta così:
    DoCmd.OpenForm "ordine", acNormal, , "[Forms]![ordine]![Id_testata_ordine]=[inserisci numero testata da modificare]", acEdit, acNormal
    Prova e vedi che succede.

    asnaldo ha scritto:


    Ho creato una query e funziona correttamente, il problema è che non voglio creare una maschera apposta dalla query quando alla fine la maschera di modifica è uguale a quella di inserimento. Se faccio una copia della maschera e associo la query poi fare il pulsante è semplice in quanto l'associo alla nuova maschera creata dalla query. Ma io vorrei evitare duplicazioni di maschere e associare il tasto modifica ordine alla maschera già esistente. O sfruttando la query oppure da codice vba
    Tks
    Questo discorso, sinceramente, non l'ho capito molto.
  • Re: Pulsante macro record modifica deciso

    Ho fatto qualche prova per vedere come andava ma non mi ha funzionato. Comunque, dovrei aver trovato la soluzione. Prova a scrivere quella riga di codice così:
    
    DoCmd.OpenForm "ordine", acNormal, , "[Id_testata_ordine] = [inserisci numero testata da modificare]", acEdit, acNormal
    
    Scritta in questo modo a me andava. Non serve scrivere "[Forms]![ordine]!".
  • Re: Pulsante macro record modifica deciso

    Ho provato ma niente.. ma credo sia un problema di sintassi.. quando lo lancio mi compaiono due messaggi quando in realtà dovrebbe chidermelo solo una volta quale codice testata aprire, mi chiede prima di inserire Id_testata_ordine e poi mi chiede inserisci numero testata da modificare e mi apre la maschera in modifica ma sul primo report .

    forse perchè non basta scrivere il nome campo ma bisgona scrivere anche il nome tabella (ordine_testata è la tabella e id_testata_ordine il campo) ed inoltre credo che i doppi apici non vanno messi.. bo.. non ne capisco molto..
    ho provato così ma niente:
    
    Private Sub ModificaOrdine_Click()
    DoCmd.OpenForm "ordine", acNormal, , "[ordine_testata]![Id_testata_ordine] = [inserisci numero testata da modificare]", acEdit, acNormal
    End Sub
    HELP
  • Re: Pulsante macro record modifica deciso

    ALE OO ALE OOO
    FUNZIONA !!! ho capito dove sbagliato ihih

    codice funzionante :
    Private Sub ModificaOrdine_Click()
    DoCmd.OpenForm "ordine", acNormal, "", "[id_ordine_testata_etichetta10] = [inserisci numero testata da modificare]", acEdit, acNormal
    End Sub
    praticamente ho fatto un grave errore... o meglio non lo sapevo e ora lo so.. il campo in cui va fatta la ricerca deve essere il nome etichetta che c'è nella maschera... praticamente nella maschera il campo id_testata_ordine era come id_ordine_testata_etichetta10

    mettendo il giusto campo funge !!!!! sta cose che il nome campo cambia in una maschera non lo sapevo !! ora si !!!
    grazie grazie per l'aiuto !
  • Re: Pulsante macro record modifica deciso

    Avendo tu scritto "[Forms]![ordine]![Id_testata_ordine]", avevo preso per buono che il controllo nella maschera si chiamasse così. Ti consiglio di prestare attenzione ai nomi dei controlli, magari andando a rinominarli con nomi stabiliti da te, anche meno complicati.
Devi accedere o registrarti per scrivere nel forum
10 risposte