Erro ao tentar Gravar dados no BANCO ACESS

12 respostas
B

[color=darkblue] JÁ RESOLVIDO!!![/color]Meu nome é Edirlei sou iniciante em java estou montando um formulário de cadastro mas na hora de gravar os dados no banco de dados. me aparece um erro:
Erro ao tentar Gravar o Registro java.SQLException[Microsolft Acess]Número de valores da consulta e campos de destino não coincidem.

alguem poderia de ajudar? meu EMAIL. [email removido]. obrigado!

  • obs. esta é a primeira vez que entro em um forum. desculpe qualquer falha.ok

12 Respostas

J

olá bae2005,

Tente postar seu código do banco aqui entre as tags code, acho que fica mais facil pra galera ver algum erro, se tiver.

B

ok vc diz os códigos né?
try
{
String sqlinsert ="insert into cadastro " +
“(Codigo,Nome, DataNascimento,Idade,Rua,Numero,Complement0”+
“Bairro,Cidade,Cep,DDD,TelResidencial,Emaill,DDDCel,TelCelular,UF) values (’”+

tf_codigo.getText()+"','"+
          tf_nome.getText()+"','"+
          tf_nascto.getText()+"','"+
          tf_idade.getText()+"','"+
          tf_rua.getText()+"','"+
          tf_numero.getText()+"','"+
          tf_complemento.getText()+"','"+
          tf_bairro.getText()+"','"+
          tf_cidade.getText()+"','"+
          tf_cep.getText()+"','"+
          tf_ddd.getText()+"','"+
          tf_telefone.getText()+"','"+
          tf_dddcel.getText()+"','"+
          tf_celular.getText()+"','"+
          tf_email.getText()+"','"+
          cb_uf.getSelectedItem()+"')";
            
    con_cadastro.statement.executeUpdate(sqlinsert);
    JOptionPane.showMessageDialog(null,"Gravação realizada com Suscesso");
    
//   con_cadastro.resultset = con_cadastro.statement.executeQuery(" Select * from cadastro");
//   con_cadastro.resultset.first();//posiciona no primeiro registo
//   mostrar_dados();// ira chamar a função em que ira mostrar os dados
            
    
    
}
 catch (SQLException erro)
 {
     JOptionPane.showMessageDialog(null,"Erro ao tentar Gravar o Registro "+erro);  
 }
B

jgSilva obrigado pela atenção e pela rapida resposta.ok Edirlei

B

Esses dados são da parte de Gravação. estou em duvida qual é o da consulta.ok

J

Olha pode não ser isso ainda, mas uma coisa que vi é que os dados não estão na mesma ordem que vc está pegando, no caso o email está fora de ordem, ou seja, o nome dos campos do banco entre parenteses tem que coincidir com os do values também entre parenteses.

Poste o codigo entre as tags code, basta clicar duas vezes no botão Code quando for escrever e colocar o código no meio.

B

Erro ao tentar Gravar o Registro java.SQLException[Microsolft Acess]Número de valores da consulta e campos de destino não coincidem.
essa é a sequencia no programa:

private void botao_gravarActionPerformed(java.awt.event.ActionEvent evt) {                                             
    // Código para Gravar os dados no banco de Dados
try
{
    String sqlinsert ="insert into cadastro " +
          "(Codigo,Nome, DataNascimento,Idade,Emaill,Rua,Numero,Complement0"+
            "Bairro,Cidade,Cep,DDD,TelResidencial,DDDCel,TelCelular,UF) values ('"+
          
          tf_codigo.getText()+"','"+
          tf_nome.getText()+"','"+
          tf_nascto.getText()+"','"+
          tf_idade.getText()+"','"+
          tf_email.getText()+"','"+
          tf_rua.getText()+"','"+
          tf_numero.getText()+"','"+
          tf_complemento.getText()+"','"+
          tf_bairro.getText()+"','"+
          tf_cidade.getText()+"','"+
          tf_cep.getText()+"','"+
          tf_ddd.getText()+"','"+
          tf_telefone.getText()+"','"+
          tf_dddcel.getText()+"','"+
          tf_celular.getText()+"','"+
          cb_uf.getSelectedItem()+"')";
            
    con_cadastro.statement.executeUpdate(sqlinsert);
    JOptionPane.showMessageDialog(null,"Gravação realizada com Suscesso");
    
//   con_cadastro.resultset = con_cadastro.statement.executeQuery(" Select * from cadastro");
//   con_cadastro.resultset.first();//posiciona no primeiro registo
//   mostrar_dados();// ira chamar a função em que ira mostrar os dados
            
    
    
}
 catch (SQLException erro)
 {
     JOptionPane.showMessageDialog(null,"Erro ao tentar Gravar o Registro "+erro);  
 }
    


 //BotãoInserir


private void botao_inserirActionPerformed(java.awt.event.ActionEvent evt) {                                              
  tf_codigo.setText("");
  tf_nome.setText("");
  tf_nascto.setText("");
  tf_idade.setText("");
  tf_email.setText("");
  tf_rua.setText("");
  tf_numero.setText("");
  tf_complemento.setText("");
  tf_bairro.setText("");
  tf_cidade.setText("");
  tf_cep.setText("");
  tf_ddd.setText("");
  tf_telefone.setText("");
  tf_dddcel.setText("");
  tf_celular.setText("");
  cb_uf.setSelectedItem("SP");
  tf_nome.requestFocus();
  tf_codigo.setEditable(false);
  
}
//mostra dados

public void mostrar_dados()

{

try

{

//while(con_cadastro.resultset.next())
tf_codigo.setText(con_cadastro.resultset.getString("Codigo"));
         tf_nome.setText(con_cadastro.resultset.getString("Nome"));
         tf_nascto.setText(con_cadastro.resultset.getString("DataNascimento"));
         tf_idade.setText(con_cadastro.resultset.getString("Idade"));
         tf_email.setText(con_cadastro.resultset.getString("Emaill"));
         tf_rua.setText(con_cadastro.resultset.getString("Rua"));
         tf_numero.setText(con_cadastro.resultset.getString("Numero"));
         tf_complemento.setText(con_cadastro.resultset.getString("Complemento"));
         tf_bairro.setText(con_cadastro.resultset.getString("Bairro"));
         tf_cidade.setText(con_cadastro.resultset.getString("Cidade"));
         tf_cep.setText(con_cadastro.resultset.getString("Cep"));
         tf_ddd.setText(con_cadastro.resultset.getString("DDD"));
         tf_telefone.setText(con_cadastro.resultset.getString("TelResidencial"));
         tf_dddcel.setText(con_cadastro.resultset.getString("DDDCel"));
         tf_celular.setText(con_cadastro.resultset.getString("TelCelular"));
         cb_uf.setSelectedItem(con_cadastro.resultset.getString("UF"));
         
         
     }
   catch(SQLException erro)
   {
    if (navega == 1)
       JOptionPane.showMessageDialog(null,"Você já esta no primeiro Registo ");  
   
    else if (navega == 2)  
       JOptionPane.showMessageDialog(null,"este ja é o ultimo Registro ");
       
    else 
       JOptionPane.showMessageDialog(null,"Não localizou dados "+erro);  
    navega=0;
   }

}
}

ok aguardo resposta e obrigado.Edirlei

J

No seu código sql, o campo complemento esta escrito com zero no final:

seria: complemento

e não: complement0

continue postando.

diego_qmota

Segue nesta apostila, “mastigadinho”, como criar um cadastro simples com o ACCESS.
http://depositfiles.com/files/uee4a7nac

PS: No caso, da forma correta, utilizando encapsulamento de objetos…

B

Obrigado eu arrumei, mas ainda continua dando: sera que se eu colocasse todo o codigo da tabela cadastro ficaria mais facil de vc verificar?

Erro ao tentar Gravar o Registro java.SQLException[Microsolft Acess]Número de valores da consulta e campos de destino não coincidem.

diego_qmota
Tenho algumas hipóteses:

-pode estar havendo conflito de tipos na gravação desses dados (tipo data/hora e você tentando salvar string em cima);

-o campo Codigo pode ser autonumerado e vc ta tentando salvar um valor nele;

Se eu fosse você, tentava fazer da forma recomendada. Criava um DAO, com os tipos corretos e usava ele para salvar dados no banco

Mas na impossibilidade de fazer isso:
Você pode compactar tudo e deixar disponível o zip dos arquivos?

B

obrigado Diego GMota. pela atenção, vou verificar isto que vc falou e depois deixo recado. ok abraços
o meu código realmente esta auto numerado
eu vou conferir de novo todos os comandos.tchau.
a

B

Gostaria de agradecer a todos que pronunciaram neste forum tentando me ajudar, na verdade existiam 3 erros o primeiro/
String sqlinsert =“insert into cadastro " +
“(Codigo,Nome, DataNascimento,Idade,Rua,Numero,Complement[color=red]0”[/color]+
“Bairro,Cidade,Cep,DDD,TelResidencial,Emaill,DDDCel,TelCelular,UF) values (’”+ (faltou a vírgula depois de Complemento e o numero zero estava no lugar da letra” o"
e por ultimo:

[color=red][color=green]tf_codigo.getText()+"’,’"+[/color] [/color] não deveria estar na lista de campos para serem gravados pois a numeração é automática.

  • eu descobri com a ajudas de alguns aqui do forum, e por ultimo um amigo meu o Sandro descobriu a vírgula e ai tudo terminou bem!
    fiquem com Deus.
Criado 17 de março de 2011
Ultima resposta 20 de mar. de 2011
Respostas 12
Participantes 3