Newsgroup: it.comp.appl.access
Titolo: Casella di Ricerca

Salve a tutti
espongo la mia questione:
su una maschera ho una casella di testo chiamata "Fornitori" che legge i
dati dalla tabella tb_Fornitori.
Poi ho posizionato un altra casella di testo sulla maschera del tipo NON
ASSOCIATA chiamata "Cerca"
Quello che vorrei � che cominciando a scrivere le prime lettere nella
casella "Cerca" 
contemporaneamente la casella "Fornitori" filtrer� tutti i nomi dei
fornitori inseriti in base alle lettere che ho digitato in "Cerca"
Se per esempio: in "Cerca" scrivessi  can   in "Fornitori" vedrei il primo
nome che inizia con le lettere can (ovviamente ci saranno altri record con
le stesse iniziali)
Grazieeeee anticipate !!!!!
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it


2 modi. Se ti va un passaggio in +, la casella nn deve essere associata ma una
combo con sorgente tutti i nomi dei fornitori (raggruppati magari e su campo
INDICIZZATO!!!). Tu cominci a scrivere e la combo fa il suo lavoro di ricerca.
Poi premi invio e il recordsource della form lo costruisci al volo con WHERE
NomeFornitore = '" & tuacasellacombinata &'". Questo metodo � velocissimo.
Se invece vuoi che la maschera (continua?) reagisca alla tua digitazione nella
casella non associata (io faccio cos�), devi mettere una routine sull'evento
pressione che alimenti la maschera, una cosa del tipo WHERE NomeFornitore like
'*" & TuaCasellaNonAssociata &'". Ad ogni digitazione la maschera cambia. Devi
poi chiaramente posizionarti sul record giusto, ma se usi recordsetclone ed i
bookmark, con un po' di esperimenti si fa
-- 
Questo articolo e` stato inviato dal sito web 
http://www.nonsolonews.it

 ha scritto nel messaggio 
news:hmakbl$261$1...@news.newsland.it...


Ah, dimenticavo, personalmente il codice l'ho modificato cos� per permettere 
la ricerca anche di apostrofi [ ' ] o virgolette [ " ] :
Private Sub txtRicerca_Change()
    Dim strR As String
    Dim strSQL As String
    strR = Me.txtRicerca.Text
    If Not IsNull(Me.txtRicerca.Text) Then
        'con questo Replace si rende possibile la ricerca di apostrofi '
        strR = Replace(strR, "'", "''")
        'con questo Replace si rende possibile la ricerca di virgolette "
        strR = Replace(strR, """""", """""""")
        strSQL = "SELECT IDDocs, Titolo, CodicePN FROM tblDocs " & _
        "WHERE Titolo Like '*" & strR & "*'"
        Me.lstTitoli.RowSource = strSQL
        Me.lstTitoli.Requery
        Me.txtRicerca.SetFocus
        Me.txtRicerca.SelStart = Len(Me.txtRicerca.Text)
    End If
End Sub
Ciao, Max. 

 Ciao, Max.
Si per� io il risultato non lo voglio in una listbox ma in una casella di
testo, la tua listbox lstTitoli, corrisponde alla mia casella di testo
"NomeGruppo"


 ha scritto nel messaggio 
news:hmakbl$261$1...@news.newsland.it...

Se Fornitori � un controllo associato, non puoi vederci altro che il 
corrispondente campo della tabella. Se mentre scrivi can tu facessi in modo 
di vedere le lettere can nel controllo, otterresti l'involontario 
aggiornamento del record. Cos� il fornitore Cangioli sarebbe diventato 
semplicemente can. Non credo che vorresti questo mal funzionamento.
Ciao
Antonio

cut
se ti pu� essere utile  io di solito faccio cosi:
maschera con list box(lstClienti)
all'apertura della maschera list box vuota e,mentre digito il cognome:
Private Sub TxtCognome_Change()
StrSql = "select Clienti.IdCliente , Clienti.CognCliente , 
Clienti.NomeCliente  , " _
    & "Clienti.Ditta , Clienti.IndirizzoCliente , Localita.NomeLocalita " _
    & "from Localita INNER JOIN Clienti ON Localita.Idlocalita = 
Clienti.IdLocalita " _
    & " WHERE Clienti.CognCliente like  '" & (Me.TxtCognome.Text) & "*' " _
    & "ORDER BY Clienti.CognCliente "
        Me.LstClienti.RowSource = StrSql
If Me.LstClienti.ListCount > 0 Then
    Me.LstClienti.Visible = True
    Me.LstClienti.Enabled = True
        Else
            Me.LstClienti.Visible = False
            Me.LstClienti.Enabled = False
End If
End Sub
 se seleziono un cognome dalla lista:
Private Sub LstClienti_Click()
'mostro il record selezionato nella lista
On Error Resume Next
'annullo il record corrente altrimenti viene inserito nella tabella
DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70
'filtro...
 Forms!FrmClienti.FilterOn = True
 Forms!FrmClienti.Filter = "IdCliente = " & Me.LstClienti.Column(0)
'se fosse testo  '" & Me!MiaRicerca & "'" vanno aggiunti gli apici singoli
End Sub
funziona....
naturalmente devi adattare la cosa al tuo programma
Ciao
Maurizio