USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Ultima tentativa com relacionamentos
Leandro Bueno
não registrado
Postada em 24/08/2005 14:31 hs   
Ola Amigos do Vbmania tudo bem?
Amigos, estou com um problemão, deixa eu tentar explicar.
Para meus  bancos de dados, ultililizo o Access 97.
Bem tenho duas tabelas:
A tabela clientes, e a tabela desenhos.
Eu fiz um relacionamento com essas tabelas.
Relacionei o código da tabela cliente (codcli) que é a chave primaria, com o campo cliente da tabela desenhos, e cliquei em impor integridade referencial.
Acabado com o Access vou para o vb.
Já no VB tenho a tela de cadastro de Clientes e a tela de cadastro de desenhos.
Na tela dos clientes cadastrei 2.
Na tela de Desenhos, para poder buscar os clientes que tenho cadastrado, fiz uma combo, (combo2) onde coloquei o seguinte:
Private Sub Combo2_Click()
vcliente.MoveMin
vcliente.Seek "=", Val(Mid(Combo2, 1, 2))
vdesenhos.MoveMin
End Sub
Na form load da tela de desenhos, coloquei o seguinte:
Private Sub Form_Load()
vcliente.MoveMin
Do While Not vcliente.EOF
   Combo2.AddItem Format(vcliente!codcli, "00") + "-" + vcliente!nome
   vcliente.MoveNext
Loop
End sub
Até ai ótimo a combo esta carregando os clientes cadastrados, desta forma:
01-João
02-Maria
Então começo a cadastrar os desenhos, digite todos os dados necessários e chego no campo cliente, (a combo2) escolho um dos clientes e clico em salvar.
Coloquei assim no comando salvar:
Private Sub salvar_Click()
On Error Resume Next
BeginTrans
vdesenhos.LockEdits = False
If inc = True Then
    vdesenhos.AddNew
    vdesenhos!coddesenhos = Val(txtcodigo)
    Else
    vdesenhos.Edit
    End If
    vdesenhos!numero = txtnumero
    vdesenhos!setor = txtsetor
    vdesenhos!revisao = txtrevisao
    vdesenhos!documento = txtdocumento
    vdesenhos!Data = CDate(txtdata)
    vdesenhos!devolucao = Combo1
    vdesenhos!resp = txtresp
    vdesenhos!cliente = Val(Mid(Combo2, 1, 2))  esta é a linha do combo
    vdesenhos!ndesenho = txtndesenho
    vdesenhos!descricao = txtdescricao
    vdesenhos!obs = txtobs
    vdesenhos.Update
    vdesenhos.MoveMax
    CommitTrans
End sub
Mas quando eu olho ele grava o cliente como numero.
Ex. se escolho 01-joão.
Ele grava no campo cliente da tabela desenhos como 1
E se escolho 02-Maria
Ele grava como 2
Será que tem algo errado no meu código? Ou no relacionamento?
Como faço para gravar o nome do cliente?
Ex. em vez de 01-joão
Gravar João.

Obrigado pela atenção de todos.
     
Semmer
CURITIBA
PR - BRASIL
ENUNCIADA !
Postada em 24/08/2005 14:44 hs            
O seu campo cliente é texto????? então tira o Val() da "linha do combo"
 
   
Leandro Bueno
não registrado
ENUNCIADA !
Postada em 24/08/2005 15:01 hs   
Deu na mesma amigo semmer, só que em vez de gravar como 2 ele gravou como 02.
Mas o campo cliente no banco de dados esta como tipo numero, por que eu não consegui fazer o relacionamento com os campos tipo texto.
Será que é este o problema?
 
   
Semmer
CURITIBA
PR - BRASIL
Postada em 24/08/2005 15:10 hs            
Peraí, se o campo cliente é número, o que tem de ser gravado lá é o codigo do cliente, que é o número que está na frente do nome, certo? Não estou vendo erro nenhum. Se o joão está na tabela de clientes com o codcli = 1, então na tabela de desenhos, os desenhos que forem dele terão seu campo cliente = 1.
     
Leandro Bueno
não registrado
ENUNCIADA !
Postada em 24/08/2005 15:17 hs   
sim amigo semmer é verdade acho que não tem como pegar o nome do cliente se na tabela do access o campo esta como numero.
agora tenho o seguinte problema amigo:
ta certo cadastrei 2 desenhos com os clientes salvos pelo codigo como vc disse acima.
só que quando eu clico em alterar ele não altera.
Ex:
Estou no registro 2, clico em alterar e mudo o cliente.
Quando clico em salvar, os dados do registro 2 não mudam nada e vão tudo para o registro 1, é como se eu tivesse alternado o primeiro.
Meu botão alterar é assim:
Call Habilitar
txtcodigo.Enabled = False
salvar.Enabled = True
cancelar.Enabled = True
inc = False
txtndesnho.SetFocus
 
O que pode ser?
 
   
Semmer
CURITIBA
PR - BRASIL
Postada em 24/08/2005 16:09 hs            
mostra o código do salvar quando o "inc" é false
     
Página(s): 1/2      PRÓXIMA »


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página