Newsgroup: it.comp.appl.access
Titolo: inserire valore da casella combinata

Ciao a tutti, avrei bisogno di un aiuto che per voi è sicuramente banale.
Dall'archivio sito comune ho scaricato il codice (di esempio per inserire
dei valori non presenti direttamente da un casella combinata che utilizzo
come help. Il mio problema probabilmente è che utilizzo access 2000 e
l'esempio è stato fatto con access 97 cosa devo modificare? dove?
Ho anche provato aconvetire il database di esempio in access2000 e poi
copiare il codice nella mia applicazione .....niente da fare!
Allego il codice di esempio scaricato e segno il punto in cui si blocca e
ringrazio anticipatamente.
E' possibile aprendo un recordset sulla tabella a fronte dell'evento "Su non
in elenco" della casella combinata.
Il database di esempio allegato a questa FAQ è stato creato in Access 97
facendo riferimento alle librerie DAO.
La tabella che è codice riga della casella combinata si chiama Prodotti e
contiene due campi: IDProdotto (di tipo Contatore e chiave primaria) e
Prodotto (di tipo Testo).
La casella combinata si chiama MiaCombo: ha due colonne, di cui visibile
solo la seconda.
La proprietà "Solo in elenco" della casella combinata va impostata a Si.
Quello che segue è il codice VBA che va generato a fronte dell'evento "Su
non in elenco" della casella combinata:
Private Sub MiaCombo_NotInList(NewData As String, Response As Integer)
   Dim IntNuovo As Integer, strTitolo As String
   Dim IntFinestraMsg As Integer, strMsg As String
   strTitolo = "Prodotto digitato non in elenco"
   strMsg = "Vuoi aggiungere" & Chr(13) & Chr(10) & NewData & Chr(13) &
Chr(10) & "in elenco?"
   IntFinestraMsg = vbYesNo + vbQuestion
   IntNuovo = MsgBox(strMsg, IntFinestraMsg, strTitolo)
   If IntNuovo = vbYes Then
       Dim miorst As Recordset
********  Set miorst = CurrentDb.OpenRecordset("Prodotti")
       miorst.AddNew
       miorst!Prodotto = NewData
       Me![MiaCombo] = miorst![IdProdotto]
       miorst.Update
       miorst.Close
       strTitolo = "Inserimento nuovo Prodotto in elenco"
       strMsg = "Inserimento in elenco di" & Chr(13) & Chr(10) & NewData &
Chr(13) & Chr(10) & "con successo"
       IntFinestraMsg = vbOKOnly + vbExclamation
       IntNuovo = MsgBox(strMsg, IntFinestraMsg, strTitolo)
       Response = acDataErrAdded
       Me![MiaCombo].Requery
   Else
       strTitolo = "Nome del prodotto errato"
       strMsg = NewData & " non è in elenco." & Chr(13) & Chr(10) &
"Seleziona un prodotto dall'elenco"
       IntFinestraMsg = vbOKOnly + vbExclamation
       IntNuovo = MsgBox(strMsg, IntFinestraMsg, strTitolo)
       Response = acDataErrContinue
       Me![MiaCombo].Undo
   End If
End Sub

 ha scritto nel messaggio
news:bviea2$1mq$1...@lacerta.tiscalinet.it...

Dalla versione 2000 in poi il modello di accesso ai dati predefinito usato da Access
non è DAO ma ADO. Per questo quando si trasporta in versioni successive del codice
scritto per Access 97 utilizzando DAO, è necessario impostare correttamente i
riferimenti: basta aprire un modulo e, dal menù strumenti, selezionare "riferimenti":
nella maschera di dialogo che comparirà, bisogna selezionare la libreria "Microsoft
DAO 3.x Object Library". È inoltre buona regola, nel chiamare le variabili,
esplicitare il riferimento a DAO; ad es. nel tuo caso:
 Dim miorst As Dao.Recordset
Questo per non ingannare la tua applicazione qualora il riferimento ad ADO (che pure
utilizza l'oggetto Recordset e che, se non ti serve, puoi addirittura eliminare)
preceda quello a DAO.
Ciao
Galliano.

 ha scritto nel messaggio
news:bviea2$1mq$1...@lacerta.tiscalinet.it...

La routine VBA di cui sopra, come esplicitato nella FAQ, fa riferimento alla
libreria Microsoft DAO.
Visto che tu usi Access 2000, sostituisci la riga di codice VBA:
Dim miorst As Recordset
con:
Dim miorst As DAO.Recordset
e poi aggiungi al tuo database i riferimenti alla libreria Microsoft DAO 3.6
.
-- 
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 ha scritto nel messaggio
news:iU3Tb.5779$U4.2...@twister1.libero.it...

non riesco a vedere i messaggi che invio al ng perche'?
ciao a tutti