Newsgroup: it.comp.appl.access
Titolo: evento su condizione

Ciao a tutti
Ho impostato su dopo aggiornamento della combo Perc_Ritenuta il
seguente codice:
If Perc_Ritenuta > 0 Then
    Perc_Sconto = 0
    MsgBox "Selezionando la ritenuta d'Acconto si azzera lo sconto"
    Me.FatturaProvv.Visible = True
    Me.FatturaMerce.Visible = False
    Me.ReportProvv.Visible = True
    Me.ReportMerce.Visible = False
    Else
    Me.FatturaProvv.Visible = False
    Me.FatturaMerce.Visible = True
    Me.ReportProvv.Visible = False
    Me.ReportMerce.Visible = True
End If
Ora volevo che si verificasse questa condizione anche
se nella descrizione c'e' il termine provvigione.
Grazie per l'aiuto


Ipotizzo che "Provvigione" in realtà abbia l'equivalente ID
associato... non ti conviene usare quello....?
IN tutti i modi con la mia sfera di cristallo ipotizzo che Descrizione
possa essere la Colonna 2, quindi ad indice(1).
Pertanto inserisci nel tuo codice il Riferimento a
If Me!Perc_Ritenuta.Column(1)="provvigione" Then
Io scriverei così:
Dim blFlag As Boolean
blFlag= (Me!Perc_Ritenuta>0) OR (Me!
Perc_Ritenuta.Column(1)="provvigione")
If blFlag=true Then
  Perc_Sconto = 0
  MsgBox "Selezionando la ritenuta d'Acconto si azzera lo sconto"
End if
Me.FatturaProvv.Visible = blFlag
Me.FatturaMerce.Visible = blFlag
Me.ReportProvv.Visible = blFlag
Me.ReportMerce.Visible = blFlag
Ciao
@Alex


ciao Alex e Grazie
teoricamente il concetto è corretto, ma non funziona.
Questo è il codice che ho inserito:
Private Sub Perc_Ritenuta_AfterUpdate()
On Error GoTo Err_Perc_Ritenuta_AfterUpdate
Dim blFlag As Boolean
blFlag = (Me!Perc_Ritenuta > 0) Or (DETTAGLIO!DESCRIZIONE.Column(2) =
"provvigione")
If blFlag = True Then
  Perc_Sconto = 0
  MsgBox "Selezionando la ritenuta d'Acconto si azzera lo sconto"
End If
Me.FatturaProvv.Visible = blFlag
Me.FatturaMerce.Visible = blFlag
Me.ReportProvv.Visible = blFlag
Me.ReportMerce.Visible = blFlag
Exit_Perc_Ritenuta_AfterUpdate:
    Exit Sub
Err_Perc_Ritenuta_AfterUpdate:
    MsgBox Err.Description
    Resume Exit_Perc_Ritenuta_AfterUpdate
End Sub
Riassumendo:
nella maschera principale ho la combo: Perc_Ritenuta
con ha due possibilità
1=0 dove visualizza il pulsante e la casella di testo relativa alla
merce nascondendo quelli relativi alla provvigione
2=12.5 che visualizza invece quelli relativi alla provvigione
nascondendo quelli relativi alla merce.
Ora volevo che anche se nella combo "descrizione" (che si trova nella
sottomaschera con origine controllo IDDESCRIZIONE, colonna associata
1; da tbdescrizione) ci fosse una parola con "provvigione"
si verificasse il caso come al punto "2"
Grazie

...
Perchè usi Colun(2)... e non (1)....?
Normalmente la Prima colonna(indice ZERO) è ID, la 2°(Indice 1) è la
Descrizione... tu usi Indice 2... significa la Terza colonna..:!!!!
Inoltre hai il brutto vizio di OMETTERE i riferimenti espliciti
all'oggetto principale, in questo modo solo tu capisci cosa scrivi:
La ascitta normale è:
Me!NomeSubForm!NomeCombo.Column(n)
Da te si converte in :
Me!DETTAGLIO!DESCRIZIONE.Column(1)
Sostanzialmente quello che scrivi funziona ma in leggibilità... è
pessimo.
In tutti i modi devi spiegarci perchè non funziona... fai un DEBUG che
ti consenta di capire i valori restituiti dalle variabili che
condizionano
blFlag ... ti basta mettere un breakpoint affianco a blFlag e capire
quale delle 2 condizioni in OR non torna con quello che credi... da li
segui la ricerca guasti...
@Alex


ciao Alex
non l'ho mai usato; dove posso trovare le istruzioni?
Grazie


dopo aver apero la finestra immediata ho inserito
?Perc_Ritenuta_AfterUpdate()
ma ho questo errore:
errore di compilazione Sub o function non definita.
Ho provato anche con le altre, ma ho lo stesso errore.
Grazie per l'aiuto


Solo le Function(Public) sono richiamabili dalla finestra immediata,
ma se metti il Cursore all'inizio di una parte di codice e premi quel
Pulsantino con la Freccia(triangolo verde con la punta a DX) e metti
un Break il codice viene lanciato da li...
Tutte queste cose sono ben descritte nell'HELP.
@Alex

 > > > ...
CUT
Ciao Alex
ho provato ad eseguire il codice senza l'OR  e anche su current:
Private Sub Perc_Ritenuta_AfterUpdate()
On Error GoTo Err_Perc_Ritenuta_AfterUpdate
Dim blFlag As Boolean
blFlag = (Me!Perc_Ritenuta > 0)
If blFlag = True Then
  Perc_Sconto = 0
  MsgBox "Selezionando la ritenuta d'Acconto si azzera lo sconto"
End If
Me.FatturaProvv.Visible = blFlag
Me.FatturaMerce.Visible = blFlag
Me.ReportProvv.Visible = blFlag
Me.ReportMerce.Visible = blFlag
Exit_Perc_Ritenuta_AfterUpdate:
    Exit Sub
Err_Perc_Ritenuta_AfterUpdate:
    MsgBox Err.Description
    Resume Exit_Perc_Ritenuta_AfterUpdate
End Sub
se la combo della rit acconto è su zero
non sono visibili nè il totale che il pulsante
del report, mentre se è su 11.5, SI;
ma con le scritte delle 2 etichette che si sovrappongono.


ciao Alex
il problema è che se l'evento si verifica
sia FatturaProvv che ReportProvv devono
essere visibili entrambi assieme escludendo
FatturaMerce e  ReportMerce


sono ancora a chiedervi aiuto.
ho inserito il seguente codice sia nella combo Perc_Ritenuta che su
current,
ma mi funziona solo la prima Condizione, cioé: blFlag= (Me!
Perc_Ritenuta>0)
mentre la seconda no: (Me!DETTAGLIO!
DESCRIZIONE.Column(1)="provvigione")
anche se non ho errori.
Non vorrei che il concetto sia errato.
In pratica io vorrei che la stessa condizione che si verifica
selezionando la combo
Perc_Ritenuta si verifichi anche quando nella combo descrizione della
sottomaschera
MDettaglio seleziono Provvigioni oppure Provvigioni ecc. ecc.
Il codice completo è:
Private Sub Perc_Ritenuta_AfterUpdate()
On Error GoTo Err_Perc_Ritenuta_AfterUpdate
Dim blFlag As Boolean
'blFlag = Me!Perc_Ritenuta > 0
blFlag = (Me!Perc_Ritenuta > 0) Or (Me!DETTAGLIO!DESCRIZIONE.Column(1)
= "provvigione")
If blFlag = True Then
  Perc_Sconto = 0
  MsgBox "Selezionando la ritenuta d'Acconto si azzera lo sconto"
End If
Me.FatturaProvv.Visible = blFlag
Me.ReportProvv.Visible = blFlag
Exit_Perc_Ritenuta_AfterUpdate:
    Exit Sub
Err_Perc_Ritenuta_AfterUpdate:
    MsgBox Err.Description
    Resume Exit_Perc_Ritenuta_AfterUpdate
End Sub
che inizialmente era:
If Me!Perc_Ritenuta > 0 Then
    Perc_Sconto = 0
    Me.FatturaProvv.Visible = True
    Me.ReportProvv.Visible = True
    Me.FatturaMerce.Visible = False
    Me.ReportMerce.Visible = False
Else
    Me.FatturaProvv.Visible = False
    Me.ReportProvv.Visible = False
    Me.FatturaMerce.Visible = True



sono riuscito a fare un'altro passo avanti,
ma ho bisogno del vostro aiuto per altri tre errori:
1-se sostiuisco "blFlag = Me!Perc_Ritenuta > 0" con
"blFlag = (Me!Perc_Ritenuta > 0) Or (Me!DETTAGLIO!
DESCRIZIONE.Column(1) = "provvigioni")"
quando vado su nuova fattura ho l'errore: utilizzo non valido di null
2-non riesco a vedere subito la modifica per quanto riguarda la
seconda condizione cioè (Me!DETTAGLIO!DESCRIZIONE.Column(1) =
"provvigioni")
mi devo spostare su di un'atro record.
3-Come devo modificare (Me!DETTAGLIO!DESCRIZIONE.Column(1) =
"provvigioni") se provvigioni è legata ad altre parole?
Grazie