Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Errore 2118
domenica 27 ottobre 2013 - 18.10
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
Access (.mdb)
thetmd
Profilo
| Newbie
12
messaggi | Data Invio:
dom 27 ott 2013 - 18:10
Ciao a tutti
Sto cercando di mettere su un piccolo database, con tante idee ma pochissima esperienza in fatto di access, giusto qualche rudimento e qualche nozione di vba.
Considerato che ho già avuto dei buoni riscontri da questo forum faccio quest'altra domanda (ho cercato nel forum ma non ho trovato altre questioni simili)
Ho una combobox in un form. L'origine dati della combo è una query di selezione che pesca da 1 sola tabella (per intenderci la query mi serve solo per ordinare i dati della tabella...non ho trovato altro modo per averli ordinati dentro la listbox)
Considerato che mi interessa poter aggiungere direttamente nella combo eventuali nuovi valori ho scritto queste righe di codice che dovrebbero aggiungere il nuovo record alla tabella tblSWHouses, aggiornarla, e poi associare al testo della combobox il nuovo valore NewData
Private Sub SWHouse_NotInList(NewData As String, Response As Integer) 'SWHouse è il nome della combobox
Dim RS As Recordset
Dim NumeroId As Integer
DoEvents 'credo non serva ad una beneamata mazza
Response = acDataErrContinue 'questa riga l'ho presa in altro forum e non visualizza il messaggio standard di errore
DoCmd.RunCommand acCmdUndo 'presa in altro forum, prima di inserirla il codice non funzionava nemmeno una volta
Set RS = CurrentDb.OpenRecordset("tblSWHouses")
With RS
.AddNew
!SWHouse = NewData
NumeroId = !IDtblSWHouses
.Update
End With
SWHouse.Requery
SWHouse.Text = NewData
End Sub
Il problema è il seguente: qualche volta funziona e qualche altra (la maggior parte) non funziona e mi da l'errore 2118 circa il fatto che il campo deve essere salvato prima della richiesta di requery
Credo che il problemia sia una questione di tempi ma non saprei come verificare la cosa, né come allungare i tempi: quando la procedura mi da errore, ho provato ad andare nel debug e manualmente fargli eseguire l'undo e poi il requery ed allora funziona (anche qui non sempre)
ADDENDUM: ho inserito il codice su un altro combobox dello stesso form e li funzinoa tutto che è una meraviglia....digito il nuovo valore e premo tabulazione (o invio) e access mi presenta l'elenco delle voci disponibili tra le quali scegliere inserendovi anche il nuovo valore..
Le due combobox sono identiche per quel che riguarda le proprietà (ho verificato) ed anche quest'ultima prene i dati da una query (per lo stesso motivo di averli in ordine alfabetico)
=============================================================================================================
Leggendo qua e la ho risolto in questa maniera...ma non capisco ancora perchè la soluzione precedente funzionava per una combobox e non per l'altra
Private Sub SWHouse_NotInList(NewData As String, Response As Integer)
Dim RS As Recordset
Dim NumeroId As Integer
Response = acDataErrAdded
DoCmd.RunCommand acCmdUndo
Set RS = CurrentDb.OpenRecordset("tblSWHouses")
With RS
.AddNew
!SWHouse = NewData
NumeroId = !IDtblSWHouses
.Update
End With
'SWHouse.Requery
'SWHouse.Text = NewData
End Sub
dove sto sbagliando?
Grazie
Pierpaolo
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !