Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    40

    Ricerca avanzata in DataGrid

    Buona sera a tutti,
    E' possibile fare una ricerca avanzata partendo da i dati inseriti in un textbox?
    Per essempio, se io nel textbox scrivo "S" che sposti tutti i record al primo che comincia con "S", se dopo scrivo "SE" che sposti tutti i record al primo che comincia con "SE" e cosi via...

    Di questa maniera mi cercarebbe gli articoli in cui inserisco tutta la descrizione, no?

    Private Sub Text1_Change()
    strCerca = Me.Text1.Text
    Rs.Open ("SELECT * FROM Articoli WHERE (Descizione='" & strCerca & "')")
    Set DataGrid1.DataSource = Rs
    End Sub

    Grazie mille a tutti.
    Saludos!

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,463

    Moderazione

    A quale versione di VB fai riferimento?
    Ripassa il Regolamento.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    40
    Scusatemi...
    VB6 collegato con DB Access tramite ADO
    Saludos!

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    357
    codice:
    'questo ti estrae tutti i record che iniziano con il testo impostato
    Private Sub Text1_Change() 
    strCerca = Me.Text1.Text 
    lung = len(trim(strCerca))
    Rs.Open ("SELECT * FROM Articoli WHERE mid(Descizione, 1, len) ='" & strCerca & "'") 
    Set DataGrid1.DataSource = Rs 
    End Sub
    codice:
    'questo ti estrae tutti i record con condizione maggiore di/iniziano con 
    Private Sub Text1_Change() 
    strCerca = Me.Text1.Text 
    lung = len(trim(strCerca))
    Rs.Open ("SELECT * FROM Articoli WHERE (Descizione >='" & strCerca & "')") 
    Set DataGrid1.DataSource = Rs 
    End Sub
    Non li ho provato spero di non aver sbagliato, fammi sapere.
    Ciao

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    40
    'questo ti estrae tutti i record con condizione maggiore di/iniziano con
    Private Sub Text1_Change()
    strCerca = Me.Text1.Text
    lung = len(trim(strCerca))
    Rs.Open ("SELECT * FROM Articoli WHERE (Descizione >='" & strCerca & "')")
    Set DataGrid1.DataSource = Rs
    End Sub

    la variabile lung non la utilizi dopo, penso de rimpiazare strCerca nel commando SQL, ma così dice: Errore di sintasi(operatore mancante)nell'espressione della query (Descrizione =>'1')

    poi un'altro problema è che devo chiudere e riaprire il recordset ogni volta che scrivo una lettera.
    Grazie mille.
    Saludos!

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    357
    Avevo copiato il codice e dimenticato il len che non serve :

    codice:
    Private Sub Text1_Change() 
    strCerca = Me.Text1.Text 
    'lung = len(trim(strCerca)) 
    If Rs.State = 1 Then Rs.Close
    Rs.Open ("SELECT * FROM Articoli WHERE (Descizione >='" & strCerca & "')") 
    Set DataGrid1.DataSource = Rs 
    End Sub
    Per quanto riguarda la close, la devi fare ogni volta.

    Ciao

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    40
    Niente da fare...
    dice: Nessun valore specificato per alcuni parametri necessari.
    secondo me deve di essere qualche funzione che riesce a calcolare solo l'inizio della parola cercata, no?
    Grazie Mille.
    Saludos!

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    40
    OK, ce l'ho quasi fatta...

    Private Sub Text1_Change()
    Dim datiSQL As String

    If Rs.State = 0 Then
    strCerca = Me.Text1.Text
    datiSQL = "SELECT * FROM Articoli WHERE Left(descrizione," & Len(strCerca) & ")='" & strCerca & "';"
    Rs.Open (datiSQL)
    Set DataGrid1.DataSource = Rs
    Else
    Rs.Close
    strCerca = Me.Text1.Text
    Rs.Open (datiSQL)
    Set DataGrid1.DataSource = Rs
    End If
    End Sub

    con questo codice funziona "quasi" benissimo... ora il problema è che comincia a cercare quando digiti 2 lettere...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.