Newsgroup: it.comp.appl.access
Titolo: Visualizzare ricerca su listbox

Ciao a tutti,
Ho realizzato una maschera di ricerca con una serie di controlli (Cognome,
Nome, Città, etc)..
Ho creato una query di selezione con due tabelle (iscritti e qualifiche) che
ho chiamato Ricerca e una listbox senza origine dati nella maschera.
Nella mascheraho inserito questo codice:
Private Function SQLCode() As String
   Dim S As String
   Dim sn As String
   Dim ctl As Control
   S = vbNullString
   For Each ctl In Me.Controls
     If Len(ctl.tag) > 0 Then
        sn = Nz(ctl.Value, vbNullString)
       If sn <> vbNullString Then
           sn = StrConv(sn, vbProperCase)
           S = S & ctl.tag & " Like " & Chr(34) & "*" & sn & "*" & Chr(34) & " AND "
       End If
     End If
   Next
   If Right(S, 4) = "AND " Then
      S = Left(S, Len(S) - 5)
   End If
   SQLCode = Nz(S, vbNullString)
End Function
e sul pulsante Cerca :
   Dim strFilter As String
   Dim RCount As Variant
   Dim strSQL As String
   Dim qdf As QueryDef
   flFind = False
   strFilter = SQLCode
   If Len(strFilter) = 0 Then Exit Sub
   RCount = Nz(DCount("[num]", "iscritti", strFilter), 0)
   If RCount > 0 Then
       flFind = True
       strSQL = "SELECT iscritti.*, Qualifiche.* FROM iscritti INNER JOIN
Qualifiche ON iscritti.Num = Qualifiche.Num ORDER BY iscritti.Pioniere;"
       Set qdf = CurrentDb.QueryDefs("ricerca")
       qdf.Sql = strSQL
       me.elenco.rowsource = sqlcode <----------------------------------------
       qdf.Close
       Set qdf = Nothing
   Else
       MsgBox "Nessuna elemento presente con i parametri richiesti...!",
vbInformation, "" <----------
   End If
Il mio obiettivo è quello di visualizzare il risultato su una listbox
inserita nella maschera, ma non funziona..
Se invece apro una maschera con il filtro sqlcode (docmd.openform Form,,,
sqlcode) questa funziona perfettamente..
Grazie mille per l'aiuto..
Ludo..
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

    Dim ctl As Control
S che dè?
sn pure che dè?
e più in generale che devi fare?
Morgan

Ludo ha scritto:

A mio avviso hai fatto un Copia/Incolla di diversi pezzi di codice
senza capire bene cosa
hai fatto....!
Che versione di Access utilizzi...??
Se hai XP o superiori conviene che la ListBox sia riempita con un
Recordset associato
in quel modo eviti l'uso di RCOUNT e quindi DCOUNT, senza poi parlare
di quanto hai
scritto per l'uso di QueryDefs....!
Io farei così, e vale per tutte le versioni di Access:
Dim sSQL as string
Dim rs As DAO.Recordset
Dim dqf as DAO.QueryDef
sSQL=SQLCode()
If Len(sSQL)=0 Then Exit Sub
set qdf=CurrentDb.QueryDefs("ricerca")
qdf.SQL="SELECT * FROM iscritti WHERE " & sSQL
Set rs=qdf.openrecordset
If rs.Eof Then
   MsgBox "Nessuna elemento presente con i parametri richiesti...!"
   me.elenco.rowsource = ""
Else
   me.elenco.rowsource = "ricerca"
End if
Me.elenco.Requery
rs.Close
Set qdf=nothing
set rs=nothing
Mi sembra un pochetto più pulito.
Ora se il codice che hai messo giù prima aveva un minimo di senso,
questo lo
deve sostituire e funzionare.
@Alex

 @Alex
Ok grazie mille....si č molto piu pulito e kiaro....avevo cercato di
riadattare un attimo alle mie esigenze cercando di capire cosa volesse
significare aiutandomi con l'help il codice che avevo postato ma senza
riuscire a capirne tutto il significato....
Ludo...
