Newsgroup: it.comp.lang.visual-basic
Titolo: e' possibile...

... disporre i risultati di una ricerca in un database in un listbox usando
ADO?Se si' come?
Ciao
Andrea
--------------------------------
Inviato via 
http://usenet.iol.it

 ha scritto nel messaggio
news:151Z30Z25Z157Y...@usenet.iol.it...

Io per i combo uso questa, per un listbox dovrebbe essere analoga la cosa...
Però se devi visualizzare risultati prendi in considerazione la datagrid
Public Sub Popola(Oggetto As Object, ByRef Cn As adodb.Connection )
On Error GoTo GestioneErrori
Oggetto.Clear
Dim rsPopola As adodb.Recordset
Set rsPopola = New adodb.Recordset
rsPopola.Open "SELECT * FROM DIPENDENTI ORDER BY CODICE", Cn, adOpenKeyset,
_
adLockOptimistic, adCmdText
rsPopola.MoveFirst
Do Until rsPopola.EOF
Dim Nome As String
Dim Cognome As String
Nome = rsPopola("nome")
Cognome = rsPopola("cognome")
Oggetto.AddItem (Nome & " " & Cognome)
Oggetto.ItemData(Oggetto.NewIndex) = rsPopola("CODICE")
rsPopola.MoveNext
Loop
rsPopola.Close
Set rsPopola = Nothing
popola_exit:
Exit Sub
GestioneErrori:
Select Case Err.Number
Case 381
Resume Next
Case Else
MsgBox Err.Number & " " & Err.Description
End Select
End Sub
Non mi chiedere perchè intercetto l'errore di indice della matrice di
proprietà non valido.
è stata una delle prime routine che ho scritto in vb, commenti zero, è
passato del tempo e non mi ricordo più una pippa.
Comunque ti assicuro che funziona.
Ciao

 ha scritto nel messaggio
news:151Z30Z25Z157Y...@usenet.iol.it...


Ma cosi' mi mette tutti i record nella listbox, non solo quelli che
corrispondono alla ricerca!Io, poiche' sto facendo un'archivio, ho tre
campi : Band,Disco e Tipo. Quindi ho fatto esattamente quello che hai
scritto tu, naturalmente sostituendo i nomi dei campi.Poi non capisco il
significato di una riga, vedi sotto.
Ciao
Andrea
Public Sub
Popola(Oggetto As Object, ByRef Cn As adodb.Connection )
 On Error GoTo
GestioneErrori
 Oggetto.Clear
 Dim rsPopola As adodb.Recordset
 Set
rsPopola = New adodb.Recordset
 rsPopola.Open "SELECT * FROM ARCHIVIO
ORDER BY        BAND", Cn, adOpenKeyset,
 _
 adLockOptimistic, adCmdText
rsPopola.MoveFirst
 Do Until rsPopola.EOF
     Dim strBand As
String,strDisco As String,strTipo as String
     strBand =
rsPopola("Band")
     strDisco = rsPopola("Disco")
strTipo=rsPopola("Tipo")
     Oggetto.AddItem (strBand & " " & strDisco &
" " & strTipo)
'non capisco a cosa serva la prossima riga, e cosa dovrei
metterci al posto di "Codice"
Oggetto.ItemData(Oggetto.NewIndex) =
rsPopola("CODICE")
rsPopola.MoveNext
Loop
rsPopola.Close
Set rsPopola =
Nothing
popola_exit:
Exit Sub
GestioneErrori:
Select Case Err.Number
Case 381
Resume Next
Case Else
MsgBox Err.Number & " " & Err.Description
End Select
End Sub
--------------------------------
Inviato via 
http://usenet.iol.it
 

end sub
--------------------------------
Inviato via 
http://usenet.iol.it
 

 ha scritto nel messaggio
news:157Z27Z10Z10Y1...@usenet.iol.it...


 Ciao
non ho capito qual'è la riga
Ciao

 rsPopola("CODICE")
Scusa, non l'avevo visto..
la proprietà itemdata ti permette di nascondere un numero dietro ad ogni
riga della combo o listbox, senza falro vedere.
E' utile ad esempio se hai una tabella con delle ragioni sociali e un codice
numerico per ognuna di esse.
In questo modo puoi sempre avere un riferimento univoco a quale
effettivamente sia la ragione selezionata nel caso ad esempio in cui ci
siano più ragioni sociali identiche.
Ciao

Oppure usa un filtro....(filter)
Cioè cosa dovrei fare in
sostanza? ;-) Non sapevo che esistessero i filtri quindi non so a cosa
servono...riguarda alla query, quale dovrei cambiare?
Ciao
Andrea


 servono...riguarda alla query, quale dovrei cambiare?
riguardo alla query dovresti aggiungere la proposizione "WHERE" seguita dai
vari criteri di selezione, su MSDN trovi molti esempi e documentazione su
come fare query.
se in alternativa vuoi usare un filtro, cito la parte di un esempio tratto
da  MSDN (impara ad usarlo)
La comodità del filtro è quella di poter effettuare altre eventuali
selezioni dei dati senza dover chiudere e riaprire il recordset.
' Aprire un oggetto Recordset filtrato.
Set rstPublishersCountry = _
FilterField(rstPublishers, "Country", strCountry)