Newsgroup: it.comp.appl.access
Titolo: Problema 'Su non in elenco'.

Salve a tutti.
Ho utilizzato un esempio del sito comune per immettere voci nuove in una
casella combinata, perņ l'esempio funziona perfettamente mentre invece nel
mio programma no!
Ho cambiato i riferimenti per ricreare la stessa situazione solo che nel
momento in cui vado a salvare il nuovo nome, un messaggio di errore mi dice:
Errore di runtime '3565' - Elemento non trovato in questo insieme.
Mi appare evidenziata la riga di codice ' miorst!tabpaz = NewData ' in cui
c'č una variabile di tipo stringa chiamata NewData, ma che significa?
Cosa vuol dire questo errore?
               Grazie
                Ciao Rita

Lucia Rita Carfagno ha scritto:

Sembra che "tabpaz" non sia presente nel recordset miorst. Controlla di
averlo scritto giusto e che sia effettivamente incluso nella
tabella/query/SQL che usi per aprire il recordset.
Namor
-- 
namor at inwind punto it
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it


Ciao Namor, purtroppo ho ricontrollato ed esiste, è scritto proprio così.
Non riesco a capire, addirittura ho provato ad importare le tabelle in
ambedue i DB, cioè le mie tabelle nel DB giusto e quelle del DB esatto nel
mio, insomma il mio programma continua a non funzionare mentre l'altro
funziona bene!
Questo è davvero un mistero.....
Ho controllato anche le librerie, ne ho caricata una che nel mio DB non
c'era, ma niente da fare.....
Ricontrollerò, spero che sia stata una mia svista clamorosa..
Ti ringrazio
Ciao Rita

 Ciao Rita
Se non trovi l'inghippo manda il codice completo che hai scritto, magari
c'č qualche imprecisione in un'altra riga.
In alternativa all'uso del recordset puoi inserire il nuovo valore in
tabella con una query INSERT INTO.



Grazie namor, purtroppo non ho trovato l'inghippo.....
Invio comunque il codice che ho trovato sul sito comune, premetto che,
addirittura, lasciando anche la stessa tabella 'Prodotti' ed importando
tutto nel database creato da me con una nuova maschera, il programma non
funziona ugualmente e mi dà sempre lo stesso errore, cioè 'elemento non
presente in questo insieme'.
Questa cosa è davvero strana.....
Private Sub Form_Current()
Me!MiaCombo.SetFocus
End Sub
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
    Set miorst = Nothing
    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
Ciao grazie Rita

 Grazie namor, purtroppo non ho trovato l'inghippo.....



Questo
  Me![MiaCombo] = miorst![IdProdotto]
non va bene lì dov'è, toglilo, ed oltretutto è superfluo perchè la combo
contiene già quel valore.
Non puoi assegnare alla combo prima di fare il .Update il valore che già
si sa non essere compreso in elenco, altrimenti genererebbe un altro
evento "Non in elenco".
Il "Response = acDataErrAdded" basta per indicare alla combo che il nuovo
prodotto è stato aggiunto. Puoi togliere anche il "Me![MiaCombo].Requery"
perchè l'elenco viene aggiornato in automatico.


 ha scritto nel messaggio
news:BlAjc.149586$Kc3.4...@twister2.libero.it...

Ciao Rita,
mi era sfuggito questo tuo messaggio.
La sub di cui sopra, che fa riferimento ad una mia FAQ pubblicata sul Sito
Comune, fa riferimento alla libreria Microsoft DAO; visto che tu (se non
ricordo male) usi Access 2000, affinché il tutto ti funzioni occorre che
aggiungi tale libreria ai riferimenti del tuo database.
Devi inoltre sostituire la seguente riga di codice VBA:
Dim miorst As Recordset
con la seguente riga di codice VBA:
Dim miorst As DAO.Recordset
In alterbativa fai in modo che i riferimenti alla libreria Microsoft DAO
precedano, nella lista dei riferimenti, i riferimenti alla libreria
Microsoft ADO: per non sbagliare mettili in testa a tutti gli altri
riferimenti.
-- 
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 ha scritto nel messaggio
news:c6nijg$c6d$1...@news.newsland.it...

Grazie namor, farò tesoro dei suggerimenti tuoi e di quelli di Roberto, io
non ho mai approfondito il codice più di tanto, anzi quasi niente.
Vi farò sapere.
Ciao grazie mille
Rita

 ha scritto nel messaggio
news:NBNjc.150377$Kc3.4...@twister2.libero.it...

Ciaoooo Roberto,
che piacere risentirti ! Ricordi tutto bene, infatti io uso Access 2000,
però mi pare di avere già giocato con le librerie, in ogni modo vado a
controllare ed a correggere sicuramente il codice in base ai tuoi
suggerimenti.
Ci tengo a risolvere questo problema perchè è utilissimo inserire
direttamente i dati nella casella combinata soprattutto per gli utenti molto
frettolosi...
 Grazie come sempre
Ciao Rita

 ha scritto nel messaggio
news:NBNjc.150377$Kc3.4...@twister2.libero.it...

Ciao Roberto, scusami, ma volevo dirti che ho fatto tutto ciò che mi hai
detto e la situazione non è cambiata.
Rimane evidenziata in giallo la riga seguente: miorst!Prodotti = NewData
ed un messaggio di errore mi dice sempre :'L'elemnto non trovato in questo
insieme'.
Ciao grazie Rita

 ha scritto nel messaggio
news:c6nijg$c6d$1...@news.newsland.it...

Ciao Namor, ti ringrazio per la disponibilità, ma purtroppo non è cambiato
nulla nel senso che ho sempre lo stesso errore come ho annunciato anche a
Roberto.
 Grazie comunque
Ciao Rita

 > >     miorst!Prodotto = NewData
Primo: sfoltire il quoting come faccio io?
Secondo:
Hai detto che sei sicura che in Prodotti (è una query, è una tabella?) ci
sia il campo Prodotto???
comunque prova con
miorst.fields("Prodotto") = newdata
Antonio

 ha scritto nel messaggio
news:0B2kc.28308$Qc.10...@twister1.libero.it...

Ciao Antonio, Prodotti è una tabella ed esiste il campo Prodotto, comunque
provo subito come hai detto tu.
Grazie Ciao Rita

 ha scritto nel messaggio
news:0B2kc.28308$Qc.10...@twister1.libero.it...

Antonio funziona! Sicuramente la colpa non è soltanto la mia che non conosco
il codice, ma anche della versione di Access che è diversa.
Grazie mille
Ciao Rita

 il codice, ma anche della versione di Access che č diversa.
Personalmente preferisco sempre non usare i ! ma le notazioni complete degli
insiemi
Antonio