Cerca da listbox

di il
15 risposte

Cerca da listbox

Buonasera a tutti,
mi sono imbattuto in un altro problema!
Ho 2 listbox che inetragiscono con una tabella che contiene 2 campi (CATEGORIA e NOMI):
1) lst_categoria (che identifica la categoria)
2) lst_nomi (che contiene i nomi associati ad ogni categoria)

Evidenziando una categoria della listbox (lst_categoria) mi dovrebbe caricare nella listbox (lst_nomi) i nomi associati a quella categoria.
Per es. :
CATEGORIA NOMI
Italiano Franco
Francese Louis
Italiano Luca
Inglese Jonny

Evidenziando nella listbox (lst_categoria, senza duplicati) il record "Italiano", mi dovrebbe caricare nella listbox (lst_nomi) solo i nomi "Franco" e "Luca"
Sto provando ma mi carica 2 volte solo il nome "Luca"....
Public Function cerca_nomi()
Set rs = DB.OpenRecordset("Select * from Tabella1 where categoria = '" & Trim(lst_categoria.List(lst_categoria.ListIndex) & "'"))
lst_nomi.Clear
For I = 1 To max
rs.MoveFirst
lst_nomi.AddItem rs("nome")
Next I
End Function

15 Risposte

  • Re: Cerca da listbox

    Non si usa la for perché non sai quanti sono i record
    Non si mette la movefirst nel ciclo altrimenti rimani sempre al primo

    Mi sembrano ovvietà... dovresti fare più attenzione p meglio, dovresti studiare le prime basi da un libro...
  • Re: Cerca da listbox

    Ho provato a modificare il codice ma mi da sempre lo stesso problema...
  • Re: Cerca da listbox

    Il problema credo sia nella Select...
  • Re: Cerca da listbox

    Perché non leggi quello che ti ho scritto?

    A parte il fatto che la parentesi della Trim è sbagliata

    Trim(lst_categoria.List(lst_categoria.ListIndex)) & "'")
  • Re: Cerca da listbox

    Avevo modificato male i codice, ma facendo le tue modifiche ora mi da solo il primo nome, anziché tutte e due...
  • Re: Cerca da listbox

    Quali modifiche?
  • Re: Cerca da listbox

    Risolto, grazie
  • Re: Cerca da listbox

    Risolto come, scusa?

    Ti ho detto che non si usa il ciclo for ma è ovvio che si usa un altro tipo di ciclo che viene ripetuto controllando la fine del recordset. Puoi avere due nomi ma anche mille ... e ti ho raccomandato di mettere la movefirst fuori dal ciclo.

    Non è possibile programmare senza aver mai letto una riga di un libro. Non riesci neanche a cogliere i suggerimenti.
  • Re: Cerca da listbox

    Ho modificato così e mi funziona
    Public Function cerca_nomi()
    Set rs = DB.OpenRecordset("Select * from Tabella1 where categoria = '" & Trim(lst_categoria.List(lst_categoria.ListIndex) & "'"))
    If rs.RecordCount = 0 Then
    lst_nomi.Clear
    Else
    rs.MoveLast
    max = rs.RecordCount
    rs.MoveFirst
    lst_nomi.Clear
    For I = 1 To max
    lst_nomi.AddItem rs("nome")
    rs.MoveNext
    Next I
    End If
    End Function
  • Re: Cerca da listbox

    Non si fa così ma con una do while not rs eof

    E non hai corretto la trim...

    Quindi risponderti non serve a molto.. ne terrò conto
  • Re: Cerca da listbox

    Ho provato e funziona, ma se è sbagliato spiegami come correggere... per me non è semplice.... sto cercando di capire...
  • Re: Cerca da listbox

    Ti ho detto

    Do while

    Sta a te fare semplici ricerche e un minimo di studio...
  • Re: Cerca da listbox

    [Code]Public Function cerca_nomi() Set rs = DB.OpenRecordset("Select * from Tabella1 where categoria = '" & Trim(lst_categoria.List(lst_categoria.ListIndex)) & "'") lst_nomi.Clear rs.MoveFirst Do While Not rs.eof lst_nomi.AddItem rs("nome") rs.MoveNext Loop End Function
  • Re: Cerca da listbox

    Comunque grazie,
    buona domenica.
Devi accedere o registrarti per scrivere nel forum
15 risposte