Newsgroup: it.comp.appl.access
Titolo: Valore non in elenco in casella combinata???





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



 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.

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

 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

 >,
