Newsgroup: it.comp.appl.access
Titolo: proprietà text

Saluti a tutti,
devo effettuare un test sul contenuto di una casella combinata ed ho provato
ad utilizzare la proprietà text, ma non mi restituisce il reale valore (che
è null), bensì un valore precedente che però non è l'ultimo salvato. Anche
Value mi da' lo stesso risultato. Non so cosa pensare.
Attendo lumi.
Grazie
Ilaria

 ha scritto nel messaggio
news:9nhv45$8vv$1...@localhost.localdomain...

A mio avviso è bene che tu legga attentamente quanto scritto sull'help circa
La Proprietà Text e la Proprietà Value di una casella combinata.
Ad esempio è possibile impostare o restituire la proprietà Text di un
controllo solo se il controllo ha lo stato attivo.
La casella combinata quante colonne ha e che lunghezza hanno?
Cosa hai come origine riga della combo?
Il test lo fai tramite delle righe di codice VBA?
Se si, a fronte di quale evento?
Insomma cosa devi fare? Sei sicura che per il test ti serva utilizzare la
proprietà Text o Value della casella combinata?
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 proprietà Text o Value della casella combinata?
Devo vedere se l'utente che inserisce i dati nella maschera valorizza la
combo. Il campo di tabella ad essa collegata è impostato a "Valido se" Is
not null con relativo messaggio di errore, ma quello che io voglio evitare è
che l'utente andando in aggiornamento sulla combo ne cancelli il contenuto e
poi senza spostare il focus altrove chiuda la maschera. Attualmente, se
l'utente fa così riceve il mio messaggio di errore, poi però anche quello di
Access "Impossibile salvare questo oggetto adesso..." e questo fa schifo
quindi avevo pensato di testare il contenuto della combo con miaCombo.Text
per schivare il messaggio di sistema.
Forse c'è un metodo più semplice...
Spero di essere stata chiara.
Attendo suggerimenti e ringrazio fin da adesso.
Ilaria

 ha scritto nel messaggio
news:9nja5l$7le$1...@fe1.cs.interbusiness.it...

Sempre che abbia capito bene il tuo problema, a fronte dell'evento "Prima di
aggiornare" della maschera genera il seguente codice VBA:
Private Sub Form_BeforeUpdate(Cancel As Integer)
If IsNull(Me!NomeCasellaCombinata) Then
Cancel = True
Me!NomeCasellaCombinata.SetFocus
MsgBox "Hai dimenticato di selezionare un valore dalla casella combinata"
End If
End Sub
Così facendo l'evento di registrazione del record non verrà effettuato sino
a quando la casella combinata non avrà un valore diverso da Null.
Non è più necessario che effetuti il test a fronte dell'evento "Dopo
aggiornamento" della casella combinata, nè che scomodi le sue proprietà Text
o Value.


 a quando la casella combinata non avrà un valore diverso da Null.
Hai ragione questo è vero, però se invece di spostarti su altri record provi
a chiudere la maschera, vedrai che viene visualizzato prima il messaggio di
errore che hai impostato nella routine e poi il messaggio di sistema
"impossibile salvare questo oggetto adesso E' possibile che si sia
verificato un errore..." E' quest'ultimo che vorrei eliminare, mi sembra
poco professionale.
Grazie per l'attenzione.
Bye
Ilaria

 ha scritto nel messaggio
news:9nkasc$sl3$1...@localhost.localdomain...

Private Sub Chiudi_Click()
    Dim Cancel As Boolean
On Error GoTo Err_ChiudiAllievo_Click
    If IsNull(Me!NomeCasella) Then
        Cancel = True
        DoCmd.SetWarnings False
            DoCmd.RunCommand acCmdUndo
        DoCmd.SetWarnings True
        DoCmd.Close
    End If
Exit_Chiudi_Click:
    Exit Sub
Err_Chiudi_Click:
    MsgBox Err.Description
    Resume Exit_Chiudi_Click
End Sub