funciona assim as duas tabelas devem ter um campo que se relacionam, no seu caso poderia ser um campo "codigoestado".
exemplo:
tabela cidade Campos Nome, codigoestado
ex: Santos, 01
na tabela estado campos Nome e codigoestado
ex: São Paulo, 01
vc preencheria o primeiro combo
sSQL = "SELECT * FROM cidade"
Set RS = CNN.Execute(sSQL)
Do While Not RS.EOF
Combo1.AddItem RS!Nome
Combo1.ItemData(Combo1.NewIdex) = RS!codigoestado
RS.MoveNext
Loop
bom para preencher o combo2 seria assim
no evento click, ou dblclik do combo1
sSQL = "SELECT * FROM estado WHERE codigoestado=" & Combo1.Itemdata(Combo1.ListIndex)
Set RS = CNN.Execute(sSQL)
Do While Not RS.EOF
Combo1.AddItem RS!Nome
RS.MoveNext
Loop