Newsgroup: it.comp.lang.visual-basic
Titolo: [SQL]Come selezionare ciò ke inizia per "C*" ? + Evidenzia da lstbox come?

...(x Moreno Sirri: giuro ke ho provato e RI provato a smanettare...)
vorrei semplicemente (non tanto semplicemente a quanto pare) selezionare da
una tab tutto ciň ke
inizia x una o + lettere tipo: Pal* = Pallone ; palo ; palestr ; ...
ho provato e riprovato ma l'unico risultato funzionante e' questo:
SQL = "SELECT * FROM ElencoGruppi WHERE Gruppo >= " & "'" & Text1.Text & "
'" & "ORDER BY Gruppo"
... con => restano anche le cose "dopo" cio ke voglio...
come fare?
--------------------
Una volta filtrato SOLO quello ke voglio in una lstbox la vorrei evidenziare
(come se l'avessi selezionata
con un click del mouse) per poi confermarla con invio (If KeyAscii=13
then... ' Intercetta "Enter")
come lo evidenzio?
--------------------------------------------
molte onorevoli grazie a Voi
^____^
Luca

 ha scritto nel messaggio
news:n_Pz7.10907$V75.2...@news1.tin.it...



....per qlc motivo NON funziona ... ma non capisco xchč...
sob...

 e vedi se almeno ti ritorna solo quel record
ho provato così
    SQL = "SELECT * FROM ElencoGruppi WHERE Gruppo = 'Cuscinetto' order by
gruppi"
e NON và .......   ?????
...Luca

....NON funzia e ancora non capisco perchè......  ????? fa come se niente
fosse:
Nel db c'è Calettatore Catena Cilindro pneumatico Cinghia Cuscinetto ma se
batto c NON mi dà nulla
se invece uso la prima riga SQL="Select.... =>..." mi risponde con
 Calettatore Catena Cilindro pneumatico Cinghia Cuscinetto Elettrovalvola
Motore Pignone Puleggia Riduttore Rullo Supporto Tamburo Tappeto Tazze
che è corretto, ma NON è quello che voglio.....
cosa faccio piango..?
...meglio se allego la sub
Private Sub CaricaGruppi()
    Dim rGruppi As ADODB.Recordset
    Dim tuttoinsieme As String
    tuttoinsieme = ""
    Dim SQL As String
    'SQL = "SELECT * FROM ElencoGruppi WHERE Gruppo >= " & "'" & Text1.Text
& " '" & "ORDER BY Gruppo"
    'SQL = "SELECT * FROM ElencoGruppi WHERE Gruppo = 'Cuscinetto' order by
gruppi"
    'SQL = "SELECT * FROM ElencoGruppi WHERE Gruppo Like '" & Text1.Text &
"*' " & "order by gruppi"
    'SQL = "SELECT * FROM ElencoGruppi WHERE Gruppo Like '" & Text1.Text &
"%' " & "order by gruppi"
    'SQL = "SELECT * FROM ElencoGruppi WHERE Gruppo Like " & "c*" & "order
by gruppi"
    'SQL = "SELECT * FROM ElencoGruppi WHERE Gruppo Like 'B*';"
    'SQL = "SELECT * FROM ElencoGruppi WHERE Gruppo like " & Text1.Text &
"""*""" & "ORDER BY Gruppo"
    'SQL = "SELECT * FROM ElencoGruppi WHERE Gruppo like " & "'Cuscine" &
"*'" & "ORDER BY Gruppo"
    SQL = "SELECT * FROM ElencoGruppi WHERE Gruppo Like '" & Text1.Text &
"*'" & "ORDER BY Gruppo"
    Set rGruppi = New ADODB.Recordset
    rGruppi.Open SQL, Db, adOpenKeyset, adLockReadOnly
    If rGruppi.RecordCount > 0 Then
        rGruppi.MoveFirst
        Do  'uso Do anziche' then, perchè permette di ripetere sino a EOF
            cmbGruppi.AddItem rGruppi!gruppo
            cmbGruppi.ItemData(cmbGruppi.NewIndex) = rGruppi!ID
            tuttoinsieme = tuttoinsieme & " " & rGruppi!gruppo
            lstGruppi.AddItem rGruppi!gruppo
            lstGruppi.ItemData(lstGruppi.NewIndex) = rGruppi!ID
            rGruppi.MoveNext
        Loop Until rGruppi.EOF
    End If
    Text2.Text = tuttoinsieme
End Sub


[ultra-cut]
Che db usi?
Saluti
Stefano
P.S. Visto che l'italiano è una lingua bellissima, evitiamo di distruggerlo
con "ke","nn" ecc... un carattere in + da digitare non mi sembra uno sforzo
tremendo! :-)

Ciao,
ti consiglio:
     SQL = "SELECT * FROM ElencoGruppi WHERE Left(Gruppo, Len(Trim(Text1)))
= " & "'" & Trim(Text1.Text) & " '" & "ORDER BY Gruppo"
chiaramente puoi utilizzare anche mid() o altre funzioni per il trattamento
delle stringhe.
Ps: su Dao funge, Ado non so!!
beppe
-----------------------------------------------------------
Visita il sito del WWF AltoFerrarese
http://www.comune.cento.fe.it/wwfaf
-----------------------------------------------------------

 tremendo! :-)
...però non puoi fare una ramanzina simile e poi scrivi "...un carattere in
+ da digitare ..."
... in piu semmai...
ma a parte gli scherzi... prova a vedere l'allegato che ho messo nel mio
ultimo post
a vedere se ci (e non C) capisci qualcosa (e non qlc)
;-)
aspetto novità
grazie 1.000 (mille)
Luca

 provo ad allegare l'intero progetto....
Questo NON è un NG binary!
NON DEVI allegare niente!
Ciao

 ha scritto nel messaggio
news:j9%z7.1061$QL2....@news2.tin.it...

(sob*12^3) non lo sapevo...
scusate...

Ciao,
che tu non ci creda e' un conto, che funzioni e' un altro.
Mi ripeto, con Dao funziona.
Prova fare una copia del tuo progetto, a cancellare il tuo codice, inserire
il riferimento a Dao e ad incollare il codice che ho modificato a tuo uso e
consumo, quindi trova tu la soluzione se vuoi usare Ado; io persomnalmente
non lo uso in quanto sviluppo tutte piccole applicazioni a livello locale.
Option Explicit
Private Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal
lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long
Private Const SND_ASYNC = &H1
Private Const SND_NOSTOP = &H2000 '&H10
Private Const SND_NOWAIT = &H2000
Private Sub CaricaGruppi()
    Dim MioDb As Database, MioRec As Recordset
    Dim tuttoinsieme As String
    tuttoinsieme = ""
    Dim SQL As String
    Set MioDb = OpenDatabase(App.Path & "\libro_ordini.mdb")
    SQL = "SELECT * FROM ElencoGruppi " & _
    "WHERE Left( Gruppo, " & Len(Text1.Text) & _
    ") = " & "'" & Text1.Text & "'"  & _
    " ORDER BY Gruppo"
    Set MioRec = MioDb.OpenRecordset(SQL)
    If MioRec.RecordCount > 0 Then
        Do
            cmbGruppi.AddItem MioRec!gruppo
            cmbGruppi.ItemData(cmbGruppi.NewIndex) = MioRec!ID
            tuttoinsieme = tuttoinsieme & " " & MioRec!gruppo
            lstGruppi.AddItem MioRec!gruppo
            lstGruppi.ItemData(lstGruppi.NewIndex) = MioRec!ID
            MioRec.MoveNext
        Loop Until MioRec.EOF
    End If
    Text2.Text = tuttoinsieme
    MioRec.Close
    MioDb.Close
End Sub
Private Sub CmdEsci_Click()
    End 'OPPURE UNLOAD ME
End Sub
Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer)
    PlaySound App.Path & "\tic.wav", &O0, SND_ASYNC + SND_NOSTOP
    Dim lettura As String
    lettura = Text1.Text
    lettura = StrConv(lettura, vbProperCase)
    Label1.Caption = lettura
    cmbGruppi.Clear
    lstGruppi.Clear
    CaricaGruppi
End Sub


 scusate...
Nessun problema.
L'ho fatto anch'io una volta :P ma non dirlo a nessuno!
Ciao

 
Provala così.
 Private Sub CaricaGruppi(ByVal InizaPer As String)
     Dim rGruppi As ADODB.Recordset
     Dim tuttoinsieme As String
     Dim SQL As String
 
     SQL = "SELECT * FROM ElencoGruppi WHERE Gruppo LIKE '" & InizaPer & "%' OREER BY Gruppo"
     'In alternativa a quella sopra puoi usare quella sotto, in Access sono equivalenti.
     'SQL = "SELECT * FROM ElencoGruppi WHERE Gruppo LIKE '" & InizaPer & "*' OREER BY Gruppo"
 
     Set rGruppi = New ADODB.Recordset
     rGruppi.Open SQL, Db, adOpenKeyset, adLockReadOnly
     Do Until rGruppi.EOF
         cmbGruppi.AddItem rGruppi!gruppo
         cmbGruppi.ItemData(cmbGruppi.NewIndex) = rGruppi!ID
         tuttoinsieme = tuttoinsieme & " " & rGruppi!gruppo
         lstGruppi.AddItem rGruppi!gruppo
         lstGruppi.ItemData(lstGruppi.NewIndex) = rGruppi!ID
         rGruppi.MoveNext
     Loop
 
     Text2.Text = tuttoinsieme
 
 End Sub 
-- 
Samuele Battarra
prova il mio newsreader:
http://digilander.iol.it/battarsa/programmi/news/

Grazie Samuele !!!!
Questa č la stringa giusta:
  SQL = "SELECT * FROM ElencoGruppi WHERE Gruppo LIKE '" & Text1.Text & "%'
Order BY Gruppo"
la cappella era che mettevo la & di congiunzione ANCHE prima di Order by...
Un grandioso grazie a:
Samuele Battarra
prova il suo newsreader:
http://digilander.iol.it/battarsa/programmi/news/
grazie anche a tutti gli altri che mi hanno aiutato, grazie ancora
e a buon rendere .....


 ha scritto nel messaggio
news:9qrv5t$e03$1...@fe1.cs.interbusiness.it...

in effetti funzia... ma ormai mi sono intestardito...
grazie
Luca