Neste caso eu recomendo q vc use o DataCombo...
Vá no menu "Project...Components...".Procure por "Microsoft DataList Controls 6.0" (pode ser q vc tenha outra versão). Após inserir o datacombo em seu projeto vá na propriedade RowSource e coloque o nome do controle q acessa os seus dados (um adocontrol, datacontrol, etc). Depois vá em ListField e coloque o nome do campo da sua tabela.
Pronto, ele vai inserir todos os registros no combo daquele campo da sua tabela...
Só q quem está ligado a ele é o controle de acesso a dados... pra vc movimentar o cursor ou encontrar registros vc tem q mexer no controle de acesso aos dados o q seria um datacontrol, adocontrol, etc... segue exemplo:
Private Sub DataCombo1_Change()
With Adodc1.Recordset
.Find "Name = '" & DataCombo1.Text & "'"
If .EOF Then
.MoveF irst
.Find "Name = '" & DataCombo1.Text & "'"
End If
End With
End Sub
Neste exemplo se eu escolho um nome no datacombo eu procuro esse registro, o ponteiro vai para o registro encontrado ou, se não encontrar volta para o primeiro. Mesmo mudando o cursorType do adocontrol para "adOpenKeySet" ou outro q não seja "adOpenForwardOnly" eu não sei o q acontece ele só faz buscas para frente, ou seja, se eu encontrar o registro 10 e depois eu quiser voltar para encontrar o registro 5 ele não faz isso, o cursor vai até o fim da tabela e não encontra o registro... talvez algum colega q saiba como corrigir isso dê uma mão... por isso gosto de trabalhar mais por código
... mas o código q coloquei acima dá uma corrigida nisso... no caso eu volto ao primeiro registro e procuro novamente... fiz a famosa "Gambiarra"... "Gambi" para os íntimos...
espero q ajude de alguma forma
t+