CONEXAO ENTRE VB6 COM VARIAS TABELAS DENTRO DE 1BD
Olá Galera,
Esse é meu 1° tópico aqui e queria que vocês me ajudassem.... é o seguinte:
Estou desenvolvendo em Visual Basic 6, um programa pra uma Imobiliaria, e não consigo alterar o RecordSource do meu DATA para uma outra tabela no meu BD, veja a imagem do meu Form:
http://img812.imageshack.us/img812/8263/topicov.jpg
Só quero que durante a execução do Programa, quando a pessoa selecione [Ô]Industrial[Ô] no combo box, o RecordSource do Banco mude para [Ô]tabela_industrial[Ô] (para salvar os dados na tabela_industrial do BD).
Olhem o código do Botão Salvar (dá erro na parte do [Ô]Recordset.AddNew):
CÓDIGO:
Private Sub btSalvar_Click()
If txtNome.Text = [Ô][Ô] Or txtEndereco.Text = [Ô][Ô] Or cbTipo.Text = [Ô]Tipo de Imovel[Ô] Then
MsgBox [Ô]Verifique se algum dado está faltando.[Ô], vbExclamation, [Ô]Atenção![Ô]
Else
If cbTipo.Text = [Ô]RESIDENCIAL[Ô] Then
bdCliente.RecordSource = [Ô]tabela_residencial[Ô]
bdCliente.Recordset.AddNew
bdCliente.Recordset.nome = txtNome.Text
bdCliente.Recordset.endereco = txtEndereco.Text
bdCliente.Recordset.Update
MsgBox [Ô]Cliente [Ô] & txtNome.Text & [Ô] cadastrado nos interesses em imoveis do tipo [Ô] & cbTipo.Text, vbInformation, [Ô]Cliente cadastrado com Sucesso![Ô]
Else
If cbTipo.Text = [Ô]COMERCIAL[Ô] Then
bdCliente.RecordSource = [Ô]tabela_comercial[Ô]
bdCliente.Recordset.AddNew
bdCliente.Recordset.nome = txtNome.Text
bdCliente.Recordset.endereco = txtEndereco.Text
bdCliente.Recordset.Update
MsgBox [Ô]Cliente [Ô] & txtNome.Text & [Ô] cadastrado nos interesses em imoveis do tipo [Ô] & cbTipo.Text, vbInformation, [Ô]Cliente cadastrado com Sucesso![Ô]
Else
If cbTipo.Text = [Ô]RURAL[Ô] Then
bdCliente.RecordSource = [Ô]tabela_rural[Ô]
bdCliente.Recordset.AddNew
bdCliente.Recordset.nome = txtNome.Text
bdCliente.Recordset.endereco = txtEndereco.Text
bdCliente.Recordset.Update
MsgBox [Ô]Cliente [Ô] & txtNome.Text & [Ô] cadastrado nos interesses em imoveis do tipo [Ô] & cbTipo.Text, vbInformation, [Ô]Cliente cadastrado com Sucesso![Ô]
Else
If cbTipo.Text = [Ô]INDUSTRIAL[Ô] Then
bdCliente.RecordSource = [Ô]tabela_industrial[Ô]
bdCliente.Recordset.AddNew
bdCliente.Recordset.nome = txtNome.Text
bdCliente.Recordset.endereco = txtEndereco.Text
bdCliente.Recordset.Update
MsgBox [Ô]Cliente [Ô] & txtNome.Text & [Ô] cadastrado nos interesses em imoveis do tipo [Ô] & cbTipo.Text, vbInformation, [Ô]Cliente cadastrado com Sucesso![Ô]
End If
End If
End If
End If
End If
End Sub
Valeu GALERA E OBRIGADO PELA ATENÇÃO.
Esse é meu 1° tópico aqui e queria que vocês me ajudassem.... é o seguinte:
Estou desenvolvendo em Visual Basic 6, um programa pra uma Imobiliaria, e não consigo alterar o RecordSource do meu DATA para uma outra tabela no meu BD, veja a imagem do meu Form:
http://img812.imageshack.us/img812/8263/topicov.jpg
Só quero que durante a execução do Programa, quando a pessoa selecione [Ô]Industrial[Ô] no combo box, o RecordSource do Banco mude para [Ô]tabela_industrial[Ô] (para salvar os dados na tabela_industrial do BD).
Olhem o código do Botão Salvar (dá erro na parte do [Ô]Recordset.AddNew):
CÓDIGO:
Private Sub btSalvar_Click()
If txtNome.Text = [Ô][Ô] Or txtEndereco.Text = [Ô][Ô] Or cbTipo.Text = [Ô]Tipo de Imovel[Ô] Then
MsgBox [Ô]Verifique se algum dado está faltando.[Ô], vbExclamation, [Ô]Atenção![Ô]
Else
If cbTipo.Text = [Ô]RESIDENCIAL[Ô] Then
bdCliente.RecordSource = [Ô]tabela_residencial[Ô]
bdCliente.Recordset.AddNew
bdCliente.Recordset.nome = txtNome.Text
bdCliente.Recordset.endereco = txtEndereco.Text
bdCliente.Recordset.Update
MsgBox [Ô]Cliente [Ô] & txtNome.Text & [Ô] cadastrado nos interesses em imoveis do tipo [Ô] & cbTipo.Text, vbInformation, [Ô]Cliente cadastrado com Sucesso![Ô]
Else
If cbTipo.Text = [Ô]COMERCIAL[Ô] Then
bdCliente.RecordSource = [Ô]tabela_comercial[Ô]
bdCliente.Recordset.AddNew
bdCliente.Recordset.nome = txtNome.Text
bdCliente.Recordset.endereco = txtEndereco.Text
bdCliente.Recordset.Update
MsgBox [Ô]Cliente [Ô] & txtNome.Text & [Ô] cadastrado nos interesses em imoveis do tipo [Ô] & cbTipo.Text, vbInformation, [Ô]Cliente cadastrado com Sucesso![Ô]
Else
If cbTipo.Text = [Ô]RURAL[Ô] Then
bdCliente.RecordSource = [Ô]tabela_rural[Ô]
bdCliente.Recordset.AddNew
bdCliente.Recordset.nome = txtNome.Text
bdCliente.Recordset.endereco = txtEndereco.Text
bdCliente.Recordset.Update
MsgBox [Ô]Cliente [Ô] & txtNome.Text & [Ô] cadastrado nos interesses em imoveis do tipo [Ô] & cbTipo.Text, vbInformation, [Ô]Cliente cadastrado com Sucesso![Ô]
Else
If cbTipo.Text = [Ô]INDUSTRIAL[Ô] Then
bdCliente.RecordSource = [Ô]tabela_industrial[Ô]
bdCliente.Recordset.AddNew
bdCliente.Recordset.nome = txtNome.Text
bdCliente.Recordset.endereco = txtEndereco.Text
bdCliente.Recordset.Update
MsgBox [Ô]Cliente [Ô] & txtNome.Text & [Ô] cadastrado nos interesses em imoveis do tipo [Ô] & cbTipo.Text, vbInformation, [Ô]Cliente cadastrado com Sucesso![Ô]
End If
End If
End If
End If
End If
End Sub
Valeu GALERA E OBRIGADO PELA ATENÇÃO.
Estas 4 tabelas não poderiam ser agrupadas em uma tabela unica contendo apenas mais um campo TIPO para indicar 1-RESIDENCIAL,2-COMERCIAL,3-RURAL,4-INDUSTRIAL ???
Concordo com FEDERHEN.
Mas respondendo sua pergunta.
Data.RecordSource = [Ô] blá,blá,blá... [Ô]
Porque vc não usa um Adodc é bem melhor de se trabalhar (na minha opnião)
Mas respondendo sua pergunta.
Data.RecordSource = [Ô] blá,blá,blá... [Ô]
Porque vc não usa um Adodc é bem melhor de se trabalhar (na minha opnião)
Primeramente, obrigado pelas respostas!
FEDERHEN, eu até pensei nisso. Mas depois, tem um outro Form, em que estarão só os clientes cadastrados em um determinado tipo de Imovel. E não sei como filtrar isso. (obs: No outro form, estou usando um MSFLEX Grid para mostrar os dados da tabela)
Se tiver um jeito de filtrar, vcs poderiam postar para mim? (Uso o BD Access, sem MYSQL!)
e VELDRAME, poderia especificar sobre ADODC? Desde já agradeço galera!
Abraço.
FEDERHEN, eu até pensei nisso. Mas depois, tem um outro Form, em que estarão só os clientes cadastrados em um determinado tipo de Imovel. E não sei como filtrar isso. (obs: No outro form, estou usando um MSFLEX Grid para mostrar os dados da tabela)
Se tiver um jeito de filtrar, vcs poderiam postar para mim? (Uso o BD Access, sem MYSQL!)
e VELDRAME, poderia especificar sobre ADODC? Desde já agradeço galera!
Abraço.
Bom, eu trabalho com comandos SQL e ficaria algo mais ou menos assim:
With msFlexGrid1
.Rows = 1
.FormatString = [Ô]CODIGO|NOME[Ô]
.ColWidth(0) = 500
.ColWidth(1) = 1200
rs.Open [Ô]Select * Tabela Where Tipo=[ô]1[ô] Order by Nome[Ô], con, adOpenKeyset, adLockOptimistic
Do Until rs.EOF
.Rows = .Rows + 1
.TextMatrix(.Rows - 1, 0) = rs!Codigo
.TextMatrix(.Rows - 1, 1) = rs!Nome
rs.MoveNext
Loop
rs.Close
End With
With msFlexGrid1
.Rows = 1
.FormatString = [Ô]CODIGO|NOME[Ô]
.ColWidth(0) = 500
.ColWidth(1) = 1200
rs.Open [Ô]Select * Tabela Where Tipo=[ô]1[ô] Order by Nome[Ô], con, adOpenKeyset, adLockOptimistic
Do Until rs.EOF
.Rows = .Rows + 1
.TextMatrix(.Rows - 1, 0) = rs!Codigo
.TextMatrix(.Rows - 1, 1) = rs!Nome
rs.MoveNext
Loop
rs.Close
End With
Hum..e não tem como eu aproveitar aquele BD em Access?
Ahh, não tem como fazer o seguinte:
No 2° Form, existe uma ComboBox com as opções (RESIDENCIAL,COMERCIAL,RURAL e INDUSTRIAL), e eu queria que ao selecionar um Item (Exemplo RURAL), filtrasse no MSFLEX GRID, só os registros em que o Campo TIPO fossem RURAL.
Tem como fazer isso? (Pode ser em MYSQL mesmo, só que precisaria me dar um pequeno tutorial, pois não manjo nada de SQL)
Abraço!
Ahh, não tem como fazer o seguinte:
No 2° Form, existe uma ComboBox com as opções (RESIDENCIAL,COMERCIAL,RURAL e INDUSTRIAL), e eu queria que ao selecionar um Item (Exemplo RURAL), filtrasse no MSFLEX GRID, só os registros em que o Campo TIPO fossem RURAL.
Tem como fazer isso? (Pode ser em MYSQL mesmo, só que precisaria me dar um pequeno tutorial, pois não manjo nada de SQL)
Abraço!
Sim, voce pode fazer isso.
Não sei como é o seu form, se voce atualiza no evento change do combo ou tem um botão para atualizar o flexgrid, mas masta colocar o código acima que vai funcionar.
With msFlexGrid1
.Rows = 1
.FormatString = [Ô]CODIGO|NOME[Ô]
.ColWidth(0) = 500
.ColWidth(1) = 1200
rs.Open [Ô]Select * Tabela Where Tipo=[ô]1[ô] Order by Nome[Ô], con, adOpenKeyset, adLockOptimistic
Do Until rs.EOF
.Rows = .Rows + 1
.TextMatrix(.Rows - 1, 0) = rs!Codigo
.TextMatrix(.Rows - 1, 1) = rs!Nome
rs.MoveNext
Loop
rs.Close
End With
Note que sembre ele fará o preenchimento do flexgrid a partir de um comando select em cima da tabela.
Não sei como é o seu form, se voce atualiza no evento change do combo ou tem um botão para atualizar o flexgrid, mas masta colocar o código acima que vai funcionar.
With msFlexGrid1
.Rows = 1
.FormatString = [Ô]CODIGO|NOME[Ô]
.ColWidth(0) = 500
.ColWidth(1) = 1200
rs.Open [Ô]Select * Tabela Where Tipo=[ô]1[ô] Order by Nome[Ô], con, adOpenKeyset, adLockOptimistic
Do Until rs.EOF
.Rows = .Rows + 1
.TextMatrix(.Rows - 1, 0) = rs!Codigo
.TextMatrix(.Rows - 1, 1) = rs!Nome
rs.MoveNext
Loop
rs.Close
End With
Note que sembre ele fará o preenchimento do flexgrid a partir de um comando select em cima da tabela.
Tem alguma coisa de SQL no código q me passou?
Estou mandando em anexo a imagem do Form que terá que filtrar o campos [Ô]Tipo[Ô]
OBS: Nome do ComboBox = cbTipo
Nome do MSFLEX GRID = tabela
Não estou usando nenhum Data neste form, tenho q usar?
Então ficaria assim:
Private Sub cbTipo_Change()
With tabela
.Rows = 1
.FormatString = [Ô]CODIGO|NOME[Ô]
.ColWidth(0) = 500
.ColWidth(1) = 1200
tabela.Open [Ô]Select * Tabela Where Tipo=[ô]1[ô] Order by Nome[Ô], con, adOpenKeyset, adLockOptimistic
Do Until rs.EOF
.Rows = .Rows + 1
.TextMatrix(.Rows - 1, 0) = rs!Codigo
.TextMatrix(.Rows - 1, 1) = rs!Nome
tabela.MoveNext
Loop
tabela.Close
End With
End Sub
Obrigado, estou tentando aqui
Estou mandando em anexo a imagem do Form que terá que filtrar o campos [Ô]Tipo[Ô]
OBS: Nome do ComboBox = cbTipo
Nome do MSFLEX GRID = tabela
Não estou usando nenhum Data neste form, tenho q usar?
Então ficaria assim:
Private Sub cbTipo_Change()
With tabela
.Rows = 1
.FormatString = [Ô]CODIGO|NOME[Ô]
.ColWidth(0) = 500
.ColWidth(1) = 1200
tabela.Open [Ô]Select * Tabela Where Tipo=[ô]1[ô] Order by Nome[Ô], con, adOpenKeyset, adLockOptimistic
Do Until rs.EOF
.Rows = .Rows + 1
.TextMatrix(.Rows - 1, 0) = rs!Codigo
.TextMatrix(.Rows - 1, 1) = rs!Nome
tabela.MoveNext
Loop
tabela.Close
End With
End Sub
Obrigado, estou tentando aqui
Tópico encerrado , respostas não são mais permitidas