PDA

View Full Version : [vb6+access] da db a text...


ASyd
11-12-2003, 10:48
Ho 2 caselle di testo e una listbox, la list viene fillata con i dati di una tabella di un db composta da 3 campi.

La list contiene solo il primo dei 3 campi.

Vorrei fare in modo che selezionando un dato nella list, mi appaiano nelle text gli altri 2 dati corrispondenti agli altri campi della riga della tabella.

spero di essere stato abbastanza chiaro :rolleyes:

tnx

matpez
11-12-2003, 13:01
Originariamente inviato da ASyd
Ho 2 caselle di testo e una listbox, la list viene fillata con i dati di una tabella di un db composta da 3 campi.

La list contiene solo il primo dei 3 campi.

Vorrei fare in modo che selezionando un dato nella list, mi appaiano nelle text gli altri 2 dati corrispondenti agli altri campi della riga della tabella.

spero di essere stato abbastanza chiaro :rolleyes:

tnx

E' facile... tu carichi la list box utilizzando anche la itemdata

List1.AddItem "ciao"
List1.ItemData(List1.NewIndex) = 10


In pratica metti il testo che vuoi visualizzare nella listbox e poi nell'itemdata metti l'ID della tua riga nel database!!

Cosė facendo il click sulla listbox fai una cosa del genere:
Private Sub List1_Click()
Dim nIndex as integer

nIndex=List1.ItemData(List1.ListIndex)

'qui componi la stringa swl che va a fare la ricerca nel database con condizione (WHERE) che punta all'indice nIndex

End Sub

ASyd
11-12-2003, 15:51
Ho provato a fare cosė:

Private Sub List1_Click()
Dim nIndex As Integer
nIndex = List1.ItemData(List1.ListIndex)
SQL1 = "SELECT codice,descrizione,costo FROM tabella1 WHERE codice = '" & nIndex & "'"
Set rs1 = New ADODB.Recordset
rs1.Open SQL1, Conn
Text1.Text = rs1("codice")
Text2.Text = rs1("descrizione")
Text3.Text = rs1("costo")
End Sub

Solo che mi da un errore e non riesco a venirne fuori: "Errore di runtime 3001; gli argomenti non sono di tipo valido, non sono compresi nell'intervallo consentito o sono in conflitto"


:(

matpez
11-12-2003, 17:55
Prova a mettere codice senza gli apici....se č un campo contatore nn ci va!

cuoricinoblu
11-12-2003, 22:26
Usando la seguente sintassi non dovresti avere problemi :

SQL1 = "SELECT codice,descrizione,costo FROM tabella1 WHERE codice = " & cStr(nIndex)

ovviamente se il campo 'codice' č un numero intero, altrimenti se č di tipo testo:

SQL1 = "SELECT codice,descrizione,costo FROM tabella1 WHERE codice = '" & cStr(nIndex) & "'"

ciao ciao :)