QUESTAO QUE NAO SE ENCONTRA EM LIVROS

MARCOS 15/11/2010 17:06:50
#357504
Boa tarde, colegas!
Tenho uma dúvida,daquelas que
nenhum livro ou apostilas de
OO (Orientação a Objetos) , ou modelagem diz
como resolver.Mas, como muitos já
programam em OO, devem resolver facilmente:

Digamos que tenho duas tabelas no BD:

- Ordem_de_servico (Cod_OS,Desc_OS,Cod_Mod)
- Modelo (Cod_Mod,Desc_Mod,Fab)


Obs: Repare que [ô]Cod_Mod[ô] é uma chava estrangeira da tabela [ô]Modelo[ô]


A seguir eu criei um formulário para cadastrar Ordens de serviço.São
apenas 2 campos: TxtOS e CmbMod


Agora, eu vou criar a rotina que irá [Ô]cadastrar[Ô] uma OS:

Ora,repare que ao preencher os dois campos, o usuário irá
digitar um número da OS e selecionar em um combo o modelo
a ser cadastrado.

O problema:

Repare que eu não posso armazenar no campo Cod_Mod da tabela Ordem_de_servico
o que o usuário selecionar.Pois o certo é armazenar o código que corresponde
a este item na tabela modelo.A questão portanto é..No momento do Insert,como
saber o código (Na tabela modelo)correspondente ao item selecionado no combo
pelo usuário????????


Se algum colega, puder me dizer, qual o modo certo
de resolver este problema, seguindo as boas práticas
de programação fico grato.
FININHO 15/11/2010 18:57:03
#357520
Resposta escolhida
No VB 6, o objeto combox tem a propriedade itemdata, que é ideal para esse tipo de situação..
No carregamento da combox coloca o codigo nesta propriedade

[ô]exemplo:

Private Sub Command1_Click()
cbo.AddItem Desc_Mod
cbo.ItemData(cbo.NewIndex) = Cod_Mod
End Sub

[ô]recuperando:

Private Sub Command2_Click()
MsgBox cbo.ItemData(cbo.ListIndex)
End Sub
TECLA 15/11/2010 20:41:55
#357532
MsgBox(ComboBox1.SelectedValue)
FOXMAN 15/11/2010 21:04:39
#357535
Rapaz, tive problema semelhante

Criei uma classe

Public Class ItemData
Public Valor As Object
Public Descricao As String
Public Sub New(ByVal NovoValor As Object, ByVal NovaDescricao As String)
Valor = NovoValor
Descricao = NovaDescricao
End Sub

Public Overrides Function ToString() As String
Return Descricao
End Function

End Class

txtEmpresa.text = CType(cmbEmpresa.SelectedItem, ItemData).Valor
MARCOS 16/11/2010 17:19:24
#357594
Agradeço aos colegas,as respostas postadas!
Tópico encerrado , respostas não são mais permitidas