Newsgroup: it.comp.lang.visual-basic
Titolo: utilizzo dbf

per voi esperti sara' una bazzeccola ma per il sottoscritto
principiante che non riesce a mettere le mani su un manuale e'
un'ostacolo:
in un form ho inserito una listbox ove vorrei che venissero
visualizzati un elenco di comuni, nella load_form ho capito come
aprire il database e specificare il recordset ma come debbo fare per
aggiungere nella listbox (tramite l'additem) il contenuto del singolo
campo del database?
Aranar
_________________________
http://www.nettaxi.com/citizens/Aranar
   (above all VgaPlanets)
http://www.tempolibero.com/user/aranar
   (sopratutto VgaPlanets)

Do Until Data1.Recordset.Eof
      List1.Additem "" + Data1.Recordset!COMUNE
      Data1.Recordset.MoveNext
Loop


Basta che fai un ciclo (dopo aver aperto il recordset):
recordset.movefirst
while not recordset.eof
    ' L'IF serve per non considerare eventuali valori NULL del campo
(vuoti).
    if not isnull(recordset.fields("campo che vuoi").value) then
        listbox.additem recordset.fields("campo che vuoi").value
    endif
    recordset.movenext
wend
--
Roal Zanazzi
z...@iol.it


--
Roal Zanazzi
z...@iol.it


VERO! ho supposto che Data1.Recordset!COMUNE fosse Stringa. La tua
indicazione è più corretta della mia in quanto IsNull() è più generico. Se
sai il tipo di dati del campo è solo più corto scrivere "" + (o &) ecc..
L'importante è che non venga generato l'Err 94.
(PS per Aranar. Nell'oggetto hai messo "utilizzo dbf". Il meccanismo
funziona con tutti i tipi di databases supportati dal Jet)
Fabio Guerrazzi

Loop
sulla prima riga mi dice "necessario oggetto"
questo e' il listato completo:
Set dbsComuni = OpenDatabase("comuni.mdb")
Set rstComuni = dbsComuni.OpenRecordset("Comuni")
Do Until Data1.Recordset.EOF
      lstLuogo.AddItem "" + Data1.Recordset!COMU_DESCR
      Data1.Recordset.MoveNext
Loop


wend
perche' mi dice "necessario oggetto" alla prima riga? nell'help in
linea non sono riuscito a trovare esempi simili



Se utilizzi un DataControl devi inizializzare il controllo e non la
variabile DataBase o Recordset
Mi spiego:
Data1.DataBaseName="Comuni.mdb"
Data1.Recordsource="Comuni"
Data1.Refresh      ' Questo apre effettivamente il file
ecc...
ecc..
Fabio Guerrazzi

>      List1.Additem "" + Data1.Recordset!COMUNE
perche' non semplicemente 
	list1.additem data1.recordset!comune?
ovvero come mai concateni il record ad una stringa vuota?
======================================================
my opinions do not necessarily have to be true.
======================================================
per rispondermi rimuovere NOSPAM. dall'indirizzo email
to answer me remove NOSPAM. from email address
======================================================


Scusa, davo per scontato che tu sapessi cos'e' un oggetto RecordSet e come
aprirne uno...
Se non lo sai... la spiegazione sarebbe troppo lunga, cerca nell'help in
linea per "Oggetto RecordSet" e "OpenRecordset"
in breve, dovresti fare:
Dim db As Database
Dim rs As Recordset
Set db = OpenDatabase("<nome database>")
set rs = db.OpenRecordset("<nome tabella o query SQL>")
' poi quello che ti avevo scritto, sostituendo rs a recordset.
naturalmente dovresti fare tutti i controlli di errore (che il database si
apra senza errori, lo stesso per il recordset, che il recordset non sia
vuoto, etc...)
Mi spiace essere cosi' rapido, ma l'argomento richiedere una conoscenza
degli oggetti DAO (quelli che VB usa per accedere ai database).
Se non ne sai niente, ti conviene comprarti qualche libro su VB che li
spieghi.
--
Roal Zanazzi
z...@iol.it


Perche' cosi' non da' errore se il campo contiene Null.
Si potrebbe anche fare:
      if(not IsNull(Data1.Recordset!COMUNE)) then List1.Additem
Data1.Recordset!COMUNE
Nel primo caso si inserisce una stringa vuota al posto del null,
nel secondo caso se c'e' null non si inserisce niente nella listbox.
--
Roal Zanazzi
z...@iol.it