Newsgroup: it.comp.appl.access
Titolo: ricerca e inserimento

Salve a tutti,
avrei bisogno di una soluzione che mi permetta di cercare all'iunterno di un 
elenco di vie anche digitando pazialmente la via ricercata (cioč se cerco 
"Lungomare Cristoforo colombo", anche digitando solo Colombo vorrei che mi 
venisse restituita una lista dei record che contengono "Colombo" e tra 
questi selezionare la via che cercavo per inserirla nell'anagrafica.
Inserendo il codice che segue riesco ad ottenere il filtro che mi serviva... 
ma adesso non ho proprio idea di come fare ad inserire la via che mi serve 
sull'anagrafica del soggetto che sto registrando.
Private Sub indirizzo_Change()
Dim strR As String
Dim strSQL As String
strR = Me!indirizzo.Text
If Not IsNull(Me!indirizzo.Text) Then
    strSQL = "SELECT IDindirizzo, indirizzo " & _
    "FROM [INDIRIZZO] " & _
    "WHERE (indirizzo Like " & Chr$(34) & "*" & _
    strR & "*" & Chr$(34) & ");"
    Me!Elenconominativi.RowSource = strSQL
    Me!Elenconominativi.Requery
    Me!indirizzo = strR
    Me!indirizzo.SetFocus
    Me!indirizzo.SelStart = 255
End If
End Sub
P.S. se avete un idea migliore per la ricerca che faciliti l'iserimento sarň 
ben felice di sperimentarla!!!
Grazie.
Luciano. 

 Luciano.
Direi che la cosa è corretta, ho solo 4 appunti da fare, ma di
pignoleria non funzionali...!
1) Se inserisci un'apostrofo non funziona.
    Per questo invece di usare il CHR(34) userei il singolo apice e
metterei il Replace, se non sbaglio dovrebbe andare...!
   Replace(Testo,"'","''")
2) Questo è solo formale, ma il SelStart=255 sostanzialmente non è
corretto in quanto la TextBox accetta ben oltre 255 caratteri, quindi
l'ideale è di usare il Len....
3)Questa riga è pericolosa
strR = Me!indirizzo.Text
If Not IsNull(Me!indirizzo.Text) Then
Se Me!Indirizzo è null restituisce errore in quanto la variabile
strR(di tipo stringa) non accetta Null, quindi assegnala solo dopo il
controllo...!
If Not IsNull(Me!indirizzo.Text) Then
strR = Me!indirizzo.Text
4)Me!indirizzo = strR a cosa serve visto che non viene toccato...?
Io faccio così:
Ho una Form con origine dati..., quindi ho messo una textBox, e
nell'evento Change scrivo:
Private Sub txtFindFast_Change()
   Me.RecordsetClone.FindFirst "[Descrizione]LIKE '*" & _
                               Replace(Me.txtFindFast.Text, "'", "''")
& "*'"
   If Me.RecordsetClone.NoMatch Then
      Me.RecordsetClone.Bookmark = Me.Bookmark
   Else
      Me.Bookmark = Me.RecordsetClone.Bookmark
      Me.txtFindFast.SelStart = Len(Me.txtFindFast.Text)
   End If
End Sub
Saluti
@Alex

 ha scritto nel messaggio 
news:4599a66f$0$22393$4faf...@reader2.news.tin.it...

Ciao Luciano
prova a cambiare questa riga: 

 ha scritto nel messaggio 
news:459a5cea$0$16142$4faf...@reader3.news.tin.it...

"WHERE (indirizzo Like "*" & Chr$(34) & "*" & _
    strR & "*" & Chr$(34) & ");"
scusa č partito un colpo :)
Daniele 

 Daniele
MMMmmmm a parte il colpo a salve, al quale ormai siamo tutti
abituati... ;-) speriamo siano sono quì nel NG.....
ahahahahahahahahahah
credo che fosse più corretto il suo originale...!
L'asterisco, essendo il Jolly su testo va racchiuso tra i separatori,
quindi la sintassi che
hai suggerito diventerebbe:
*"*testo*"
Il primo asterisco non va bene, quindi togliendolo diventa l'originale
scritto dall'autore.....
In secondo luogo la sintassi è errata, prova a vedere:
"WHERE (indirizzo Like "*" & ....
la stringa finisce con il primo " quindi il carattere * rimarrebbe come
un appeso senza congiuntore di stringa....!
@Alex

 ha scritto nel messaggio 
news:1167745240.7...@h40g2000cwb.googlegroups.com...
cidi ha scritto:


Miiiiiiii ..... per una volta che capita!
non ricordo di aver perso colpi  ;)
però non è da escludere che possa succedere ....sempre più spesso, data 
l'età.
^___^
credo che fosse più corretto il suo originale...!
L'asterisco, essendo il Jolly su testo va racchiuso tra i separatori,
quindi la sintassi che
hai suggerito diventerebbe:
*"*testo*"
Il primo asterisco non va bene, quindi togliendolo diventa l'originale
scritto dall'autore.....
In secondo luogo la sintassi è errata, prova a vedere:
"WHERE (indirizzo Like "*" & ....
la stringa finisce con il primo " quindi il carattere * rimarrebbe come
un appeso senza congiuntore di stringa....!
@Alex
Ciao Alex
quello che volevo suggerire è qualcosa del genere:
Like "*" & Nz([Forms]![mMascheraReport]![prodotto1];"*") & "*"
che uso in una query parametrica e funziona .
sbaglio evidente nel modificare i parametri.
Daniele