Newsgroup: it.comp.lang.visual-basic
Titolo: AIUTO !!!! - Ricerca ID da combobox

Salve a tutto il NG
Sono un neofita di Visual Basic, ho creato fino ad ora un applicazione che 
legge i dati da database access con il wizard di VB6.
Ora vorrei migliorare il progetto con un form in più in cui ho situato un 
combo box in cui vi sono i Cognome_Nome dalla tabella Anag_Clienti del 
database Clienti_0.mdb.
Il database ha una tabella Anag_Clienti
I Campi sono ID_Clienti e Cognome_Nome.
Ora sarei grato se qualcuno mi desse una dritta per come recuperare 
l'ID_Cliente del database assegnato per ciascuno dei Cognome_Nome! 

 Sono un neofita di Visual Basic,
... e anche dei NG, a quanto pare: non c'è bisogno che scrivi "AIUTO", tutti
qui cercano aiuto; e non serve nemmeno scrivere in maiuscolo, che nei NG
equivale ad urlare, e nemmeno i punti esclamativi servono: forse che il tuo
problema è più importante di qualunque altra cosa al mondo? In quel caso
dovresti Leggere Il Fottuto Manuale.
Se hai intenzione di continuare a postare, ti conviene buttare un occhio
qui:
http://xoomer.alice.it/army1987k/
e magari leggere anche il Manifesto di questo NG, che viene postato
pressoché settimanalmente.
Ricordalo per le prossime visite.

Come riempi la combo? In ogni caso puoi sfruttare la proprietà ItemData
della combo, che è progettata proprio per questo.
Poco tempo fa se ne è parlato in un altro forum, e io ho postato il seguente
codice:
' (assume che conn sia un oggetto Connection valido e aperto)
' apre un recordset temporaneo per riempire una combobox specificata
Private Sub CaricaElencoCombo(cbo As ComboBox, TableName As String, _
    IDField As String, DescrField As String)
    Dim rs As ADODB.Recordset
    dim sql As String
    ' costruisce l'istruzione per aprire il recordset temporaneo
    sql = "SELECT " & IDField & ", " & DescrField
    sql = sql & " FROM " & TableName
    sql = sql & " ORDER BY " & DescrField & ";"
    ' apre il recordset temporaneo
    Set rs = New ADODB.Recordset
    rs.Open sql, conn, adUseClient, adLockReadOnly, adCmdText
    ' se il recordset non è vuoto, riempie la combo
    If Not (rs.BOF And rs.EOF) Then
        Do While Not rs.EOF
            cbo.AddItem rs.Fields(DescrField).Value & ""
            cbo.ItemData(cbo.NewIndex) = rs.Fields(IDField).Value
            rs.MoveNext
        Loop
    Else ' altrimenti, scrive "nessun record" nella combo
        cbo.AddItem "<nessun elemento nella tabella>"
        cbo.ItemData(cbo.NewIndex) = 0
    End If
    ' chiude e distrugge il recordset temporaneo
    rs.Close
    Set rs = Nothing
End Sub
Private Sub Form_Load()
    ' riempie le combo delle form
    CaricaElencoCombo cboClienti, "tabClienti", "IDCliente", "NomeCliente"
    CaricaElencoCombo cboArticoli, "tabArticoli", "IDArticolo",
"DescrizioneArticolo"
    CaricaElencoCombo cboPagamenti, "tabPagamenti", "IDPagamento",
"DescrPagamento"
    CaricaElencoCombo cboTipoDocumento, "tabTipiDoc", "IDTipoDoc",
"DescrTipoDoc"
    CaricaElencoCombo cboVettori, "tabVettori", "IDVettore", "NomeVettore"
    ' [..... altro codice.....]
End Sub
Private Sub cboClienti_Click()
    ' recupera il valore dell'ID cliente quando si seleziona un cliente
    txtIDCliente.Text = cboClienti.ItemData(cboClienti.ListIndex)
End Sub
Private Sub cboArticoli_Click()
    ' recupera il valore dell'ID articolo quando si seleziona un articolo
    txtIDArticolo.Text = cboArticoli.ItemData(cboArticoli.ListIndex)
End Sub
[... ecc...]
Spero ti sia utile per capire il funzionamento della proprietà ItemData. Se
hai ancora dubbi, chiedi pure. Ciao
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/