Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda no Ado Data Control :S


Wasted

Pergunta

Olá amigos! Preciso de uma séria ajuda que ainda ninguém conseguiu me ajudar a resolver :s. Estou a desenvolver uma aplicação no Visual Basic 6. Irei vos explicar como funciona esta aplicação. É um clube de video, estou encarregado de fazer a parte dos filmes, a qual faço uma ligação a uma base de dados em Microsoft Access. Todos os campos da tabela filmes e tipo_filmes no meu form estão associados a uma textbox. Eis a sintax sql que usei no recordsource:

SELECT nome, genero, tipo_filme.tipofilme FROM filmes, tipo_filme WHERE tipo_filme.tipofilme=filmes.tipofilme
A sintax do meu comando guardar:
Adodc1.Recordset.Fields("nome") = txtnome.Text
Adodc1.Recordset.Fields("tipofilme") = Text1.Text
Adodc1.Recordset.Fields("genero") = txtgenero.Text

O problema aqui e que quando quero gravar os dados aparece-me o seguinte erro: "A operação de multiplos passos gerou erros. Verifique cada valor do estado." E vai-me para a 2ª linha do comando guardar. Esse campo(tipofilme da tabela Tipo_Filme) é de auto incremento e não introduzo nada na textbox pois e de auto incremento. Que se passa?

[]'s

Editado por Wasted
Link para o comentário
Compartilhar em outros sites

17 respostass a esta questão

Posts Recomendados

  • 0

o problema é q você ta tentando dar update numa consulta de join. e você nem tem o codigo do registro no select, ai ele não sabe qual a chave primaria pra atualizar.

pra dar o update, você precisa ter selecionado uma unica tabela, sem join e com a coluna do codigo junto, senao ele pode não conseguir atualizar.

Link para o comentário
Compartilhar em outros sites

  • 0
está a querer dizer que tenho que juntar as dua tabelas então?

Não, o problema é justamente o facto das duas tabelas estarem juntas no Recordset em questão. Realize a operação de atualização via SQL (UPDATE) em apenas uma delas (ou nas duas, desde que separadamente) e o problema não acontecerá.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Obrigado mas conseguiria me dar uma ajuda? Aqui estão os dados das duas tabelas:

tabela: Filmes
nome
tipofilme
tabela: Tipo_Filme
tipofilme
genero

Simplesmente quero adicionar um filme ou um genero, e dps se adicionar um filme poder escolher entre os géneros

Editado por Wasted
Link para o comentário
Compartilhar em outros sites

  • 0

Peço desculpa pelo double post..mas o edit nunca mais carregava aqui :S.

Kuroi eis a sintax do meu comando guardar:

Adodc1.Recordset.Fields("nome") = txtnome.Text
Adodc1.Recordset.Fields("genero") = txtgenero.Text
Adodc1.Recordset.Fields("filmes.tipofilme") = txttipo1.Text <-- o debug vai me parar aqui. Esta é a chave externa da tabela filmes.
Adodc1.Recordset.Fields("tipo_filme.tipofilme") = txttipo2.Text <-- Chave primária da tabela Tipo_Filme

Ocorre-me o erro: "A operação de múltiplos passos gerou erros. Verifique cada valor de estado. Mesmo que preencha toda as caixas de texto não funciona :S

Link para o comentário
Compartilhar em outros sites

  • 0

cara mas o melhor não seria você fazer dois formularios separados, um pra cadastrar o tipo do filme e outro pra cadastrar o filme.

porque na hora de cadastrar o filme, pra definir o tipo, você teria q pesquisar todos os tipos cadastrados na tabela de tipos.

do q jeito q você ta fazendo, está como se fosse um relacionamento de 1 pra 1, mas não é. o mesmo genero pode estar em varios filmes.

o q você podia fazer era um formulario pra gravar só o tipo.

depois um outro formulario pra gravar só o filme. e nesse você faria um adodc pra fazer o select, o insert e o update do filme. e um outro adodc só pra selecionar o genero, mas sem insert ou update.

veja se você entende o q eu quis dizer, qualquer coisa poste.

Link para o comentário
Compartilhar em outros sites

  • 0

tenta no form pra cadastrar os filmes, por dois data controls. um pra acessar e gravar os filmes e outro pra acessar os generos.

e ponha um text box com o codigo do genero.

ai na hora de gravar, pegue o codigo desse textbox tipo assim como você tava fazendo:

Adodc1.Recordset.Fields("tipofilme") = txttipo1.Text

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...