Erro ao tentar Gravar dados no BANCO ACESS

[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. bae-2005@hotmail.com. obrigado!

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

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.

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);  
 }

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

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

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.

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

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

seria: complemento

e não: complement0

continue postando.

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…

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.

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?

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

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.