Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Valore non in elenco in casella combinata???

681 views
Skip to first unread message

Fabio Bordigoni

unread,
Apr 20, 2001, 3:13:45 PM4/20/01
to
Ciao,
quali proprietà devo assegnare ad una casella combinata(associata ad un campo tabella), in modo che inserisca il nuovo valore nella tabella sottostante ?
Non riesco a far funzionare la proprietà "solo in elenco".
 
Devo cioè creare una casella combinata che mi permetta di selezionare o il valore dall'elenco o inserirne uno nuovo.
La casella come già detto è associata ad un campo di una tabella, nel quale la casella cerca il valore.
 
Grazie di tutto
Fabio

Sergio MAZZA

unread,
Apr 22, 2001, 2:13:58 PM4/22/01
to
DOMANDA:
""Fabio Bordigoni"" <f.bor...@proxys.com> ha scritto nel messaggio
news:CGEEICEIJIBKANPNPJNI...@proxys.com...

Grazie di tutto
Fabio

RISPOSTA:

Non inviare messaggi in html, grazie.

Nell'Help, alla voce "Non in elenco", c'è proprio un esempio che spiega come
fare...

Ciao.


Fabio Bordigoni

unread,
Apr 23, 2001, 4:48:08 PM4/23/01
to
Non rieco a trovare l'esempio nella guida, (ho provato tutto nella guida).
Se potete aiutarmi o dirmi dove trovo l'esempio citato...


Grazie della disponibilità

Fabio

--
Posted from [212.177.135.172]
via Mailgate.ORG Server - http://www.Mailgate.ORG

Enzo Radice Sola

unread,
Apr 24, 2001, 4:07:51 AM4/24/01
to

""Fabio Bordigoni"" <f.bor...@proxys.com> ha scritto nel messaggio
news:CGEEICEIJIBKANPNPJNI...@proxys.com...

*****************************************************+

L'esempio dovrebbe essere questo che ti riporto integralmente:

(da Maschera - Struttura - Casella Combinata - Help su NonInElenco -
EventoNonInElenco
Routine Evento - EventoNonInElenco - Routine Evento - Esempio )
-------------------------------------------------------------------------
Evento NonInElenco - Esempio di routine evento

Nell'esempio riportato di seguito si utilizza l'evento NonInElenco per
aggiungere una voce a una casella combinata.

Per provare l'esempio, creare in una maschera una casella combinata chiamata
Colori. Impostare a Sì la proprietà Solo in elenco della casella combinata.
Per riempire la casella combinata, impostarne la relativa proprietà Tipo
origine riga a Elenco valori e fornire un elenco di valori separati da punti
e virgola come impostazione della proprietà Origine riga. È possibile ad
esempio fornire i valori seguenti come impostazione di questa proprietà:
Rosso; Verde; Blu.

Aggiungere quindi la routine evento riportata di seguito alla maschera.
Passare alla visualizzazione Maschera e immettere un nuovo valore nella
parte testo della casella combinata.

Private Sub Colori_NotInList(NewData As String, _
Response As Integer)
Dim ctl As Control

' Restituisce l'oggetto Control che fa riferimento alla casella
combinata.
Set ctl = Me!Colori
' Richiede di verificare se si desidera aggiungere un nuovo valore.
If MsgBox("Valore non presente nell'elenco. Aggiungere?", _
vbOKCancel) = vbOK Then
' Imposta l'argomento Response per indicare che i dati
' vengono aggiunti.
Response = acDataErrAdded
' Aggiunge la stringa nell'argomento NewData a origine riga.
ctl.RowSource = ctl.RowSource & ";" & NewData
Else
' Se si sceglie Cancel, si elimina il messaggio di errore
' e si annullano le modifiche.
Response = acDataErrContinue
ctl.Undo
End If
End Sub
Nota L'esempio riportato sopra aggiunge una voce a una casella combinata
non associata. Quando si aggiunge una voce a una casella combinata
associata, si aggiunge un valore a un campo dell'origine dati sottostante.
Nella maggior parte dei casi, non è possibile aggiungere semplicemente un
campo in un nuovo record. Secondo la struttura dei dati contenuti nella
tabella, è probabilmente necessario aggiungere uno o più campi per
soddisfare le richieste dei dati. È necessario ad esempio che il nuovo
record includa i valori per qualsiasi campo che comprende la chiave
primaria. Se è necessario aggiungere voci in modo dinamico a una casella
combinata associata, è necessario richiedere all'utente di immettere i dati
per tutti i campi richiesti, salvare il nuovo record e quindi rieseguire la
query sulla casella combinata per visualizzare il nuovo valore.
----------------------------------------------------------------------------
---------------------
Mi pare pero' che la cosa aggiorni un elenco di valori da fornire ma non un
campo in una tabella.
Io in un caso del genere avevo trovato un esempio su di un testo ed era il
seguente:
__________________________________________________________________

Option Compare Database
Option Explicit

Const conNomeApp = "Riviste"
----------------------------------------------------------------------------
---------------------
Public Function VisualizzaMessaggio(strMessaggio As String)
' Visualizza il messaggio della stringa strMessaggio, nel bos con punto
esclamativo

MsgBox strMessaggio, vbExclamation, conNomeApp
End Function

Public Function Conferma(strMessaggio As String) As Boolean
'Chiede di confermare una azione, restituendo True o False

Dim bytScelta As Byte

bytScelta = MsgBox(strMessaggio, vbQuestion, conNomeApp)

If bytScelta = vbOK Then
Conferma = True
Else
Conferma = False
End If

End Function

___________________________________________-

Questa parte è un modulo generale che imposta la costante "Riviste" che è il
nome della applicazione
e la funzione Conferma che è un messaggio di uso generale richiamato poi con
una stringa del mes-
saggio specifico.
Nella maschera con la cesella combinata avevo messo: vedi sotto
(dove Utilizzo è il nome della tabella richiamata dalla cesella combinata e
TipoUtilizzo è il campo
da aggiornare con il nuovo valore immesso non in elenco)
Purtroppo il tutto funzionava in Access97 ma non funziona in Access2000 e
non sono riuscito a
capirne il motivo.
Auguri. Enzo

--
enzo...@mclink.it
Enzo Radice Sola

__________________________________________________________________
Private Sub CasellaCombinata27_NotInList(NewData As String, Response As
Integer)
Dim strMessaggio As String
Dim dbsRiviste As Database
Dim rstUtilizzo As Recordset
strMessaggio = "Sei sicuro di voler aggiungere ' " & NewData & " '
all'elenco degli utilizzi?"

If Conferma(strMessaggio) Then
Set dbsRiviste = CurrentDb()
Set rstUtilizzo = dbsRiviste.OpenRecordset("Utilizzo")
rstUtilizzo.AddNew
rstUtilizzo!TipoUtilizzo = NewData
rstUtilizzo.Update
Response = acDataErrAdded
Else
Response = acDataErrDisplay
End If

End Sub

ferdiprimo

unread,
Apr 25, 2001, 12:02:31 PM4/25/01
to

"Enzo Radice Sola" <enzo...@mclink.it> ha scritto nel messaggio
news:9c3chg$mdb$1...@news.mclink.it...

>
> ""Fabio Bordigoni"" <f.bor...@proxys.com> ha scritto nel messaggio
> news:CGEEICEIJIBKANPNPJNI...@proxys.com...
> > Non rieco a trovare l'esempio nella guida, (ho provato tutto nella
guida).
> > Se potete aiutarmi o dirmi dove trovo l'esempio citato...
> >
> >
> > Grazie della disponibilità
> >
> > Fabio
> >Cerca questa voce: LimitToList, una volta trovata guarda "Vedere Anche",
li troverai l'esempio di non in elenco.
Ciao
Ferdinando
> >,
0 new messages