Newsgroup: it.comp.appl.access
Titolo: Aiuto Casella Combinata a Discesa.

Scusatemi ma sono alle prime armi, avrei bisogno di un suggerimento,
visto che ho cercato e ricercato su internet e nella guida in linea di
access ma non ho trovato un bel niente, in pratica mi sto costruendo
un database per i miei film, ora l'unico problema e che avrei bisogno
che una casella combinata a discesa, dove io ho immesso già dei dati,
nel momento in cui si digitano dei dati che non sono in lista, questa
si aggiorni automaticamente mettendo in lista ancche il nuovo dato,
che sarà disponibile per le altre volte. In pratica faccio un esempio,
io in questa casella combinata ho immesso il genere dei film, nel
momento in cui ci devo immettere un nuovo genere che non si trova in
lista, la stessa si aggiorni automaticamnte e renda il dato
disponibile. Grazie e scusate se mi sono dilungato, ma credeti sono 2
mesi e non riesco a trovare una soluzione, neanche su tre libri che ho
acquistato. Grazie.

Francesco ha scritto:

Ciao Francesco
Puoi agire sull'evento [NON IN ELENCO] della casella combinata per
aggiungere il record nella tabella, ti propongo un esempio su cui lavorare:
Dim Genere As Variant
    Genere = Me!CcbGenere.Text
    If MsgBox("Questa è un nuovo genere, vuoi aggiungerlo?", vbYesNo) =  
vbYes Then ' MsgBox di richiesta conferma
        Response = acDataErrContinue
      	Me!CcbGenere = Null ' Nel caso il campo sia chiave esterna
relazionata alla tabella T_Genere
    	Dim dcnBase_Dati As New ADODB.Connection 'Dichiaro una connessione
        dcnBase_Dati.CursorLocation = adUseClient
        dcnBase_Dati.Open 'Inserisci il percorso della base dati
        Dim rst1 As ADODB.Recordset 'Dichiaro il recordset
        Set rst1 = New ADODB.Recordset 'Setto il Recordset
            With rst1
                .CursorType = adOpenKeyset
                .LockType = adLockOptimistic
                .Open "T_Genere", dcnBase_Dati, , adCmdTable 'Riferimento 
 ala tabella alla quale aggiungere il record
                .AddNew
                .Fields(1).Value = Genere 'Il numero partendo da 0 indica
la posizione del campo nella struttura della maschera
                .Update
            End With
            rst1.Close
        	Set rst1 = Nothing
    		dcnBase_Dati.Close
    		Set dcnBase_Dati = Nothing
    		Me!CcbGenere.Requery
    		Me!CcbFamiglia = Genere 'Adesso che esiste il record nella tabella
T_Genere posso popolare CcbFamiglia
    		Me.Refresh
   Else
    	Response = acDataErrContinue ' Nel caso cambio idea e non voglio
aggiungere il record
    	Me!CcbFamiglia.Undo
    	Exit Sub
  End If
Buon Lavoro
Luigi
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

Il Tue, 01 Nov 2005 17:21:02 +0100, 
Chiwa...@indi.it
 (Prometeo) ha
scritto:

Ti ringrazio tantissimo, ma come ben capirai io sono alle prime armi,
e ti devo essere sincero non ci ho capito niente, non so come
utilizzare il codice che mi hai postato e se devo cambiare qualche
nome, credo che mi arrenderò...
Grazie. Ciao.

Francesco ha scritto:



Non ti arrendere..;-))
Vedi:
http://www.donkarl.com/it/
FAQ 4.13 Casella combinata - Aggiungere un nuovo record 
--
rgrds
SC


 Grazie. Ciao.
Ciao Francesco
Mi dispiace di non aver fornito una spiegazione adeguata,
Spero che la consultazione dell'ottimo  sito di Donkarl che ti hanno
suggerito ti sia stata utile.
Se per il momento [ma non mollare!] ti sembrano soluzioni complicate o
poco comprensibili puoi temporaneamente utilizzare sistemi più semplici,
per esempio se l'origine dati della casella combinata è una tabella, puoi
creare una piccola maschera basata su tale tabella ed in struttura nelle
proprietà della maschera relative ai dati lasci l'opzione [SI] solo nella
riga [Consenti Aggiunte] e nella riga [Immissione Dati] così la maschera
si aprirà solo per immettere nuovi records.
Con l'autocomposizione puoi aprire questa maschera da un pulsante vicino
alla casella combinata ed utilizzarlo per aprire la maschera ed aggiungere
nuovi [Generi];Se fai queste prove vedrai che i dati aggiornati non
saranno visualizzati subito nella casella combinata, per forzare
l'aggiornamento puoi premere il tasto di funzione [F9] o meglio negli
eventi della maschera dove registri i film su Attivazione scrivi
Me!NomeCasellaCombinataGeneri.Requery.
Detto questo se vuoi provare ad automatizzare un pò , puoi provare a
copiare il codice sull'evento [Non in elenco] per aprire la maschera
automaticamente quando provi ad immettere una nuova voce.
Se provi ad inserire il codice di apertura maschera su [Non in elenco]
della CasellaCombinata imposta la proprietà [Solo in Elenco] di
quest'ultima a Si ed 
aggiungi in fondo al codice che apre la maschera l'istruzione
Me!NomeCasellaCombinataGeneri.Undo per annullare l'immissione del dato non
valido.
Buon lavoro
