Newsgroup: it.comp.appl.access
Titolo: Comportamento strano in apertura di form

Sul suggerimento (prezioso) di Sandro che a sua volta citava Cinzia, ho
scritto due righe per cambiare lo stato Attivo-Inattivo di due pulsanti di
comando che spostano il corrente in avanti ed indietro.
Purtoppo messo così all'apertura della Form tutti e due i pulsanti sono
Inabilitati(!)
mi date un aiuto?
If Me.CurrentRecord = 1 Then 'testa se il record corrente è il primo
   Me.CmdAvanti.Enabled = False
   Beep
Else
   Me.CmdAvanti.Enabled = True
End If
If Me.CurrentRecord = Me.RecordsetClone.RecordCount Then 'testa se è
l'ultimo
   Me.CmdIndietro.Enabled = False
   Beep
Else
   Me.CmdIndietro.Enabled = True
End If
End Sub
bc

 End Sub.
Ciao Bc,
Immaginavo che avessi bisogno di controllare i commnd button avanti e
indietro prova così :
Sempre su corrente del tuo form :
If Me.CurrentRecord = 1 Then
          Me.recordprec.Enabled = False
          Me.recordsucc.Enabled = True
          ' se il record corrente è il primo inabilito il click su bottone
indietro di 1
       ' e abilito il bottone avanti di uno spostando il focus su una txt
nascosta
Else
    If Me.CurrentRecord = Me.RecordsetClone.RecordCount Then
        Me.recordsucc.Enabled = False
        Me.recordprec.Enabled = True
        ' se il record corrente è l'ultimo inabilito il click su bottone
avanti di 1
        ' e abilito il bottone indietro di uno spostando il focus su una txt
nascosta
    Else
        Me.recordprec.Enabled = True
        Me.recordsucc.Enabled = True
        ' nel caso in cui il record corrente sia in posizione intermedia tra
il primo e l'ultimo
        ' abilito sia avanti di 1 che indietro di 1
   End If
End If
record prec sta per pulsante che ti porta indietro di uno, record succ per
avanti di uno.
Fai copia e incolla ed eventualmente cambia i nomi dei pulsanti se i miei
non ti piacciono.
Ciao.

 Sempre su corrente del tuo form :
Prova a vedere se così semplifica un pò le cose:
         Me.recordprec.Enabled = (Me.CurrentRecord > 1 )
         Me.recordsucc.Enabled = (Me.CurrentRecord <
Me.RecordsetClone.RecordCount -1)
Ovviamente la TextBox nascosta è una buona idea usarla.
Ciao
-- 
@Alex (Alessandro Baraldi)
---------------------------------------------------------------------------
http://www.sitocomune.com/
http://www.mantuanet.it/alessandro.baraldi/
---------------------------------------------------------------------------

 Ovviamente la TextBox nascosta è una buona idea usarla.
Che pigro Alex !
Beh, più sintetico di così non si può.
Bene anche stasera ne ho imparato un'altra !
Ciao Alex.

 Ciao Alex.
L'hai detta giusta, proprio PIGRO...!
Meno scrivo e più mi piace il codice.
Spesso è anche più funzionale.


 Spesso è anche più funzionale.
Infatti soluzioni come queste fanno capire il gap esistente tra un
programmatore professionista e un semplice amatore.
Una domanda: a livello di prestazioni, ci possono essere differenze
applicando soluzioni come la tua rispetto a quella da me proposta ?
Nel senso: a livello di Vba istruzioni assemblate in modo farraginoso
possono pregiudicare le prestazioni del database o la differenza di
esecuzione è a tutti gli effetti irrilevante, cioè ci si rende conto solo
esaminando della bontà del codice scritto se è scritto bene o male in quanto
eseguendolo il tempo di esecuzione resta comunque veloce ?
Per esempio ho notato tempi di esecuzioni maggiori con query con campi
calcolati impostate da me inizialmente male e poi con il tempo acquisendo
competenza maggiori rese notevolmente più veloci.
Analogamente si può dire lo stesso del codice Vba aldilà, come dite voi
della pulizia del codice, per quanto riguarda la prestazioni ?
E poi le versioni di access sono sensibile rispetto alla pulizia del codice,
nel senso che a2000 e meno prestazionale rispetto a a2003 se il codice è
scritto male ?
[Ottissimo]   e poi se utilizzo a2003 per creare mdb in formato a2000 e come
se utilizzassi a tutti gli effetti a2000 oppure no ? (questo non centra
proprio un tubo però sono curioso !!)
Mi fermo qua per il momento, grazie per la reply.

>
Grazie dell'aiuto, perň mi rimane un dubbio filisofico: perchč succedeva
quello che ho descritto?
BC

 Mi fermo qua per il momento, grazie per la reply.
No, perchè A2003 usa riferimenti più aggiornati, e potrebbe essere
che anche eseguendo un MDE le cose non vadano.
Esempio stupido:
In A2003 le Form/Combo/List supportano l'assegnazione dei
Recordset(read/Write)
in A2000 no(o meglio ha un bug), ma se converti il tuo in A2K funziona,
se lo installi
da chi ha solo A2000 no.
Ciao
@Alex
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG