+ Rispondi alla Discussione
Risultati da 1 a 8 di 8

Access: controllo su modifica dati con pulsante

Ultimo Messaggio di Nioanto80 il:
  1. #1
    User Newbie
    Data Registrazione
    Apr 2006
    Messaggi
    7

    Access: controllo su modifica dati con pulsante

    Ciao a tutti.
    Non so nulla di programmazione, quindi chiedo a chi risponderà di tenerne conto.

    Sto cercando di costruire una maschera in access contenente un interruttore che funzioni così:

    attivo: posso modificare i dati
    disattivo: non posso modificare i dati.

    in modo da evitare modifiche accidentali.

    Ho provato a costuirne uno settandone le proprietà
    su attivato =[AllowEdits]=Vero
    su disattivato =[AllowEdits]=Falso

    Ma non funziona. Il settaggio delle proprietà della maschera (Dati/Consenti modifiche/Sì-No) non viene modificato dall'interruttore che creo.
    Ho provato un sacco di combinazioni ma non ne vengo fuori.
    Mi aiutate? Grazie Marco

  2. #2
    Esperto L'avatar di autodafe
    Data Registrazione
    Dec 2006
    Località
    Monza
    Messaggi
    1,839
    Segui autodafe su Twitter Aggiungi autodafe su Google+ Aggiungi autodafe su Facebook Visita il canale Youtube di autodafe
    ciao MarcoU e benvenuto sul Forum GT!

    dunque, direi che devi creare un bottone sulla maschera, poi gestire l'evento di Click sul bottone.

    sull'evento di Click, devi abilitare/disabilitare i vari controlli della maschera (usando la proprietà Enabled dei controlli)

    es. se hai una casella di testo che si chiama txtNome fai qualcosa del tipo:

    txtNome.Enabled= Not txtNome.Enabled

    questo in pratica, imposta la proprietà Enabled (che è una Booleana, cioè, o è True o è False) al suo contrario

  3. #3
    User Newbie
    Data Registrazione
    Apr 2006
    Messaggi
    7
    Grazie per l'aiuto.
    Sono riuscito a sperimentare la proprietà enabled per alcuni campi (ma non per tutti, senza che io riesca a capirne il motivo, alcuni hanno definizioni perfettamente uguali fra loro...) con il seguente codice, applicato al campo Year

    Private Sub Interruttore13_Click()
    Year.Enabled = Not Year.Enabled

    End Sub


    tuttavia la funzione enabled non corrisponde a ciò che cerco. il campo interessato, quando disabilitato è meno leggibile e non permette di selezionare dati. Io voglio agire sul controllo "Consenti modifiche Sì/No" della maschera, che agisce su tutti i campi mantenendone inalterato l'aspetto e l'accessibilità.

    Data una maschera che si chiama Pinco Pallino (nota: due nomi separati da spazio) come posso fare?
    Forse la funzione da usare è AllowEdits e/o AllowEditing, ma non ne conosco la sintassi.
    O produco errori o non sono in grado di modificare il settaggio impostato dal menù delle proprietà.

    Grazie ancora, Marco

  4. #4
    Esperto L'avatar di autodafe
    Data Registrazione
    Dec 2006
    Località
    Monza
    Messaggi
    1,839
    Segui autodafe su Twitter Aggiungi autodafe su Google+ Aggiungi autodafe su Facebook Visita il canale Youtube di autodafe
    OK,
    la proprietà Enabled disabilita il controllo, quindi non te lo lascia selezionare...
    comunque tutti i controlli dovrebbero avere la proprietà Enabled...

    la proprietà AllowEdits onestamente non la conosco (mai usata), ma credo che sia una proprietà dei Form, non dei controlli...quindi usala sull'oggetto form

    se il controllo si chiama "Pinco Pallino" credo tu debba usare le parebtesi quadre, quindi [Pinco Pallino]
    (in generale comunque sarebbe bene NON usare gli spazi nei nomi degli oggetti)

  5. #5
    Esperto L'avatar di autodafe
    Data Registrazione
    Dec 2006
    Località
    Monza
    Messaggi
    1,839
    Segui autodafe su Twitter Aggiungi autodafe su Google+ Aggiungi autodafe su Facebook Visita il canale Youtube di autodafe
    PS. prova a dare un occhio qui: msdn2.microsoft.com/en-us/library/aa223291(office.11).aspx

  6. #6
    User Newbie
    Data Registrazione
    Apr 2006
    Messaggi
    7
    Ci avviciniamo. Fino a ieri sera non sapevo neanche cosìè un form...

    Ho scritto il seguente codice

    Private Sub Form_Current()
    AllowEdits = False [a ogni cambio di record voglio bloccare la possibilità di modifica]
    Interruttore132 = LostFocus [a ogni cambio di record l'interruttore torna "spento"]

    End Sub

    Private Sub Interruttore132_GotFocus()
    Form.AllowEdits = True

    End Sub


    Mi restano due cose irrisolte.
    1) Non riesco a fare in modo che quando spengo l'interruttore, senza spostarmi di record, siano impedite le modifiche. In pratica il seguente codice non funziona

    Private Sub Interruttore132_LostFocus()
    Form.AllowEdits = False

    End Sub

    2) vorrei che l'interruttore tornasse su ogni volta che esco da un campo (accendo, entro in un campo, digito. Se mi sposto su un altro campo l'interruttore si spegne e le modifiche sono bloccate).

    Puoi aiutarmi? Grazie Mille

  7. #7
    Esperto L'avatar di autodafe
    Data Registrazione
    Dec 2006
    Località
    Monza
    Messaggi
    1,839
    Segui autodafe su Twitter Aggiungi autodafe su Google+ Aggiungi autodafe su Facebook Visita il canale Youtube di autodafe
    attenzione che gli eenti GotFocus e LostFocus scattano quando il controllo prende o perde il "fuoco" (cioè, ci entri dentro con il cursore, tramite il tasto TAB o ci clicchi sopra)

    direi che devi usare l'evento di click sull'interruttore

    Private Sub Interruttore132_Click()
    Form.AllowEdits = Not
    Form.AllowEdits

    End Sub

    così, quando clicchi sull'interruttore imposto la proprietà AllowEdits al suo contrario


    per la seconda cosa che chiedi dovresti invece gestire l'evento di LostFocus, ma sui singoli controlli che hai sul form, non sull'interruttore

  8. #8
    User Newbie
    Data Registrazione
    Feb 2008
    Messaggi
    1
    Salve a Tutti oltre a non essere un programmatore sto utilizzando access da poco meno di una settimana perchè sono stato incaricato dal mio capo di creare un programmino per database clienti. Ho crerato una tabella e una maschera. Nella maschera ho bloccato tutti i dati in modo tale tale da non modificarne il contenuto accidentalmente. Ho circa 30 caselle di testo. Ora mi occorrerebbe proprio questo comando cioè un interruttore che mi abiliti la possibilità di modificare i dati di clienti già inseriti o di inserire nuovi dati nella scheda cliente nuova. Ho provato a creare quelle righe di cpmando ma sono annegato negli errori potreste per cortesia dirmi tutti i passaggi che devo fare per poter creare questo interruttore? Ringraziandovi anticipatamente porgo cordiali saluti.

+ Rispondi alla Discussione

Tag per Questa Discussione

^ Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
  • Il codice BB è Attivato
  • Le faccine sono Attivato
  • Il codice [IMG] è Attivato
  • Il codice [VIDEO] è Attivato
  • Il codice HTML è Disattivato
  • Trackbacks Attivato
  • Pingback Attivato
  • Refback Attivato

SEO by vBSEO 3.6.0 PL2 ©2011, Crawlability, Inc.