Ciao ragazzi!
Sto popolando una combobox in questo modo per ottenere performance migliori rispetto al metodo AddItem:
Quando però vado ad interpellare la combo per vedere quale valore è stato selezionato dall'utente, ovvero:codice:Public Sub subPopolaComboAPI(cmbNomeCombo As ComboBox, _ strNomeTabella As String, _ strNomeCampo) Dim strValore As String cmbNomeCombo.Visible = False Call SendMessage(cmbNomeCombo.hwnd, CB_RESETCONTENT, 0&, ByVal 0&) cmbNomeCombo.AddItem "" ' ************************************************************* ' Popolo la lista delle aziende ' ************************************************************* Dim rsPopolaCombo As Recordset Set rsPopolaCombo = New Recordset rsPopolaCombo.Open "SELECT ID," & strNomeCampo & " FROM " & strNomeTabella & _ " ORDER BY " & strNomeCampo, Connessione Do While Not rsPopolaCombo.EOF ' ******************************************************** ' Assegno l'indice all'elemento della list box uguale ' all'ID che trovo all'interno della tabella. ' ******************************************************** strValore = rsPopolaCombo(strNomeCampo) Call SendMessage(cmbNomeCombo.hwnd, CB_ADDSTRING, _ ByVal rsPopolaCombo!ID, ByVal strValore) rsPopolaCombo.MoveNext Loop rsPopolaCombo.Close Set rsPopolaCombo = Nothing ' ************************************************************* cmbNomeCombo.Visible = True End Sub
l'applicazione mi restituisce sempre e solo 0.codice:msgbox cmbNomeCombo.ItemData(cmbNomeCombo.ListIndex)
Dove sto sbagliando?
Sicuramente l'inghippo sta qua:
Io credevo che concodice:Call SendMessage(cmbNomeCombo.hwnd, CB_ADDSTRING, _ ByVal rsPopolaCombo!ID, ByVal strValore)si potesse passare alla combobox il valore da assegnare ad ogni singola selezione, ma così non è.codice:ByVal rsPopolaCombo!ID
Qualcuno mi può aiutare?
Ciao!


Rispondi quotando