Problemi coi pulsanti

di il
26 risposte

Problemi coi pulsanti

Ciao a tutti, sono in stage e mi hanno chiesto di creare un database di iscrizione con una maschera per effettuare questa procedura. Sulla creazione del db nessun problema, semplicissimo, una tabella con nome, cog, provincia e email. La parte per me complicata riguarda la creazione del "form" perché in questa maschera devo utilizzare un elemento come la checkbox per accettare l'informativa sulla privacy e applicare la condizione al pulsante per proseguire. Quello che ho provato a fare è stato: Creare una macro per il pulsante dove provavo ad aggiungere il record (dico provavo perché nella creazione di una macro non c'è "aggiungi record") e attraveso Visual Basic (ho anche una conoscenza direi non troppo approfondita di Visual) impostare la condizione sulla checkbox, ma come avrete capito senza avere fortuna dato che i comandi di Visual su access sono diversi da quelli che ho usato finora. Spero di essere stato chiaro nella mia spiegazione un po' frettolosa e che qualcuno sia in grado di aiutarmi.
Ah quasi dimenticavo che devo farlo con office 2007 quindi qualcosa potrebbe essere diversa dall'attuale

26 Risposte

  • Re: Problemi coi pulsanti

    Potresti semplicemente creare una condizione che AfterUpdate del flag della privacy, abilita o disabilita il pulsante
  • Re: Problemi coi pulsanti

    alexxx71 ha scritto:


    Potresti semplicemente creare una condizione che AfterUpdate del flag della privacy, abilita o disabilita il pulsante
    Potresti gentilmente spiegarmi come fare?
  • Re: Problemi coi pulsanti

    Metti il pulsante in Disabled di default e poi sulla casella di controllo associata alla privacy usi su AfterUpdate un codice del tipo:
    Private Sub CasellaControllo1_AfterUpdate()
    ' SBLOCCA PULSANTE
    If (Eval("[Forms]![MiaForm]![casellacontrollo1] = -1")) Then
    Forms!MiaForm!MioPulsante.Enabled = True
    Exit Sub
    End If
    ' BLOCCA PULSANTE
    If (Eval("[Forms]![MiaForm]![casellacontrollo1] = 0")) Then
    Forms!MiaForm!MioPulsante.Enabled = False
    Exit Sub
    End If
    
    End Sub
    
  • Re: Problemi coi pulsanti

    Ma non puoi scrivere una sola semplice If...Else togliendo tutte quelle inutili Exit Sub ?

    If .... = 0
    ... = False
    Else
    ... = True
    End If
  • Re: Problemi coi pulsanti

    Si certo. Era per esporlo in modo piu "didascalico", per meglio spiegare la logica del comando...
    Nel caso dell'uso di Else, però, metterei come prima condizione
    if... = -1
    ... = True
    e poi
    Else
    ... = False
    , perchè il valore oltre che essere 0 può anche essere Null
  • Re: Problemi coi pulsanti

    Appunto, proprio perché più semplice con una else era didatticamente migliore. In quel modo non lo era, anzi proprio il contrario (è una mia opinione).

    Sulla questione del Null, la checkbox a 3 stati può avere quel valore ma non una normale checkbox (di cui si parla) e quindi non esiste il problema. Preferisco prima lo 0 perché è sicuramente False, tutto il resto è True
  • Re: Problemi coi pulsanti

    Grazie mille per l'aiuto, sono riuscito a farlo in entrambi i modi solo che adesso dopo l'esecuzione del pulsante (che esegue una macro che aggiunge il record e apre un'altra maschera dai cui poi si torna su quella principale) quando passo a quello successivo la checkbox è vuota ma il pulsante e cliccabile, per disabilitarlo devo spuntare e poi togliere la spunta dalla checkbox.
    Il codice della tasto è

    Private sub pulsante_click()
    Docmd.runmacro "macro1"
    [forms]![iscritti]![checkbox]=0
    End sub

    Come potrei fare?
  • Re: Problemi coi pulsanti

    Poi volevo sapere anche se posso rendere il db eseguibile come form senza passare da access?
  • Re: Problemi coi pulsanti

    bePIRRO ha scritto:


    Poi volevo sapere anche se posso rendere il db eseguibile come form senza passare da access?
    Molto approssimativamente la risposta è sì, creando un file accde. Nei computer dove si userà questo file servirà il runtime (per Access 2007, ovviamente). Hai mai letto qualcosa in merito? E' difficile imparare tutte le peculiarità di questa operazione da un forum.
  • Re: Problemi coi pulsanti

    alexxx71 ha scritto:


    Metti il pulsante in Disabled di default e poi sulla casella di controllo associata alla privacy usi su AfterUpdate un codice del tipo:
    Private Sub CasellaControllo1_AfterUpdate()
    ' SBLOCCA PULSANTE
    If (Eval("[Forms]![MiaForm]![casellacontrollo1] = -1")) Then....
    
    Oltre al commento di Antonio, vorrei si ragionasse sull'uso di EVAL... inutile nel modo più assoluto, quindi nemmeno da dire "funziona"... in questo caso è sbagliato chiamare l'interprete di espressioni.
  • Re: Problemi coi pulsanti

    Esatto ... per non confondere ulteriormente non l'avevo indicato nella If ...

    Addirittura anche senza if ... si potrebbe assegnare direttamente il valore True/False del checkbox alla Enabled del button con una sola riga.
  • Re: Problemi coi pulsanti

    Io solitamente associo quel tipo di CasellaControllo ad un campo numerico in tabella. Per questo uso EVAL. E per lo stesso motivo il valore può anche essere Null, a meno che non imposto il valore predefinito del campo in tabella a zero
  • Re: Problemi coi pulsanti

    Philcattivocarattere ha scritto:


    Molto approssimativamente la risposta è sì, creando un file accde. Nei computer dove si userà questo file servirà il runtime (per Access 2007, ovviamente). Hai mai letto qualcosa in merito? E' difficile imparare tutte le peculiarità di questa operazione da un forum.
    Sì avevo visto qualcosa a riguardo del runtime, invece io sono curioso di sapere se posso interagire attraverso le maschere ma aprendo un exe e quindi evitare di usare access
  • Re: Problemi coi pulsanti

    bePIRRO ha scritto:


    Sì avevo visto qualcosa a riguardo del runtime, invece io sono curioso di sapere se posso interagire attraverso le maschere ma aprendo un exe e quindi evitare di usare access
    Hai le idee un po' confuse forse e io sono il meno indicato per darti indicazioni su come affrontare la cosa. Il "qualcosa" che hai letto sul runtime è un po' poco, secondo me, visto che subito dopo, come alternativa parli di un exe per il quale, invece, devi crearti un "programma tuo" che a questo punto usa il file mdb (o accdb) solo come contenitore dei dati (tabelle e query, in sostanza): maschere e report li devi "creare tu" in base al linguaggio che usi per creare quel programma e non hanno niente a che fare con Access.
    Quanto sai programmare? Perché qui bisogna saperci fare parecchio.
    Nota di servizio: stiamo andando OT, ricorda che si parlava dei pulsanti. Chi, ad esempio, avesse qualcosa di utile da dirti in merito a questo aspetto del "runtime o file exe" non potrebbe mai immaginarlo dall'oggetto.
Devi accedere o registrarti per scrivere nel forum
26 risposte