Newsgroup: it.comp.appl.access
Titolo: ricerca con controlli non associati errore 2001

Ho creato una form per la ricerca dei dati, anche avvalendomi dei vecchi
messaggi. La form è basata su una query, ha 4 controlli visibili più alcuni
non visibili, modalità continua.
Nell'intestazione ho creato 4 controlli non associati (caselle di testo) a
cui per default ho assegnato il valore 0. Ho fatto un pulsante con il codice
di seguito illustrato che però si blocca nel caso in cui faccia una ricerca
con il controllo che è legato all'IDcodice. I 4 controlli logicamente
filtrano in base ad un valore che io ci scrivo (es il cognome, la squadra o
entrambi), ma quando selezione quello corrispondente all'IDcodice (che nella
tabella associata alla query di origine corrisponde ad un campo numerico
intero lungo) il codice si blocca dandomi un "errore di runtime 2001" con
scritto "l'operazione precedente è stata annullata". Nell'help non c'è
questo errore ma pare di capire che dipenda dagli apici, è possibile?
Secondo voi è giusto il sistema di ricerca adottato, in particolare con gli
0 di default? Il problema è che avevo provato con delle variabili ma non
riuscivo a passargli il valore nullo nel caso in cui volessi fare la ricerca
su un solo campo.
Private Sub Comando9_Click()
If Filtronome = 0 And Filtrocognome = 0 And Filtrocodice = 0 And
Filtrosquadra = 0 Then 'questi sono i controlli non associati
MsgBox "Immetti i criteri di ricerca", vbInformation
ElseIf Filtronome = 0 And Filtrocodice = 0 And Filtrosquadra = 0 Then
'filtra per cognome
Me.Filter = "cognome='" & Filtrocognome & "'"
Me.FilterOn = True
ElseIf Filtronome = 0 And Filtrocognome = 0 And Filtrocodice = 0 Then
'filtra per nome della squadra
Me.Filter = "nomesquadra='" & Filtrosquadra & "'"
Me.FilterOn = True
ElseIf Filtrosquadra = 0 And Filtrocodice = 0 Then
'filtra per nome e cognome
Me.Filter = "nome='" & Filtronome & "' and cognome='" & Filtrocognome & "'"
Me.FilterOn = True
ElseIf Filtronome = 0 And Filtrocodice = 0 Then
'filtra per cognome e squadra
Me.Filter = "cognome='" & Filtrocognome & "' and nomesquadra='" &
Filtrosquadra & "'"
Me.FilterOn = True
ElseIf Filtronome = 0 And Filtrosquadra = 0 And Filtrocognome = 0 Then
Me.Filter = "Idcodice='" & Filtrocodice "'"
Me.FilterOn = True 'QUI SI ARRESTA IL DEBUG
Il codice ha altre possibilità ma tutti i criteri in cui c'è l'Id codice si
arrestano
End If
Grazie per i chiarimenti
Antonio

 ha scritto nel messaggio
news:9habpm$ot2$1...@pegasus.tiscalinet.it...

Scusa, se dici che l'Idcodice corrisponde ad un campo numerico intero e poi
nella condizione lo tratti come una stringa quale messaggio ti puoi
aspettare?
Tu hai scritto:
'------------
Me.Filter = "Idcodice='" & Filtrocodice "'"
Me.FilterOn = True 'QUI SI ARRESTA IL DEBUG
'------------
E secondo le tue indicazioni dovrebbe, invece, essere:
'------------
Me.Filter = "Idcodice=" & Filtrocodice
Me.FilterOn = True 'QUI SI ARRESTERA' PIU' IL DEBUG
'------------
Ciao.


Grazie Sergio per la risposta. Il mio problema č dato dal fatto che sono
alle prime armi con il VBA e sto pian piano imparando la sintassi anche
grazie al Ns. e ai messaggi che quotidianamente leggo.
Dalla tua risposta deduco che gli apici delimitano delle stringhe. Ora mi č
tutto piů chiaro e non capivo la successione delle virgolette e degli apici
!
Ciao e grazie
Antonio