CRONOMETRO EM VB NO BANCO DE DADOS
Citação::
O erro continua no ExecuteNonQuery:
Ãndice ou chave primária não pode conter um valor Null.
Esse campo está como Numeração Automática ?
Não, só mexi no campo pra colocar ele como texto...
Vamos lá
Suponhamos que essa tabela DADOS
Tenha um campo como chave primária
O access geralmente dá o nome de código
esse campo tem que estar como NUMERAÇÃO AUTOMÃTICA(pelo menos no ultimo erro ,esse campo nao recebe nenhuma valor)
O outro campo texto que é onde você quer gravar o cronometro deixa ele como texto.
Campo código(o outro nome que está na tabela)deixa como numeracao automatica
Suponhamos que essa tabela DADOS
Tenha um campo como chave primária
O access geralmente dá o nome de código
esse campo tem que estar como NUMERAÇÃO AUTOMÃTICA(pelo menos no ultimo erro ,esse campo nao recebe nenhuma valor)
O outro campo texto que é onde você quer gravar o cronometro deixa ele como texto.
Campo código(o outro nome que está na tabela)deixa como numeracao automatica
Devo colocar então, o campo do cronômetro como texto... E qual campo com numeração automática?
Posta a estrutura completa da tabela por favor
http://imgur.com/SJdk0,M7iQD#1
Folha de dados e modo design
Folha de dados e modo design
O campo login está como chave primaria (Veja a chave ao lado esquerdo)
Não sei o que você grava nesse campo.E também o motivo por ele esta como chave primária.
Como campos (CHAVE PRIMARIA) não podem ficar vazios.
Na hora do insert você não passa um valor para ele onde o erro é acusado.
Você pode tirar a chave primária desse campo
Segunda opção
cria outro como chave primária.(Deixando como NUMERACAO AUTOMATICA)
terceira opção
Colocar esse campo que está como TEXTO para NUMERO(NUMERACAO AUTOMATICA)
Lembrando que não sei porque esse campo está como chave primária(Se ele está sendo usado como chave estrangeira de outra tabela)
Bom, enfim ,é isso
Não sei o que você grava nesse campo.E também o motivo por ele esta como chave primária.
Como campos (CHAVE PRIMARIA) não podem ficar vazios.
Na hora do insert você não passa um valor para ele onde o erro é acusado.
Você pode tirar a chave primária desse campo
Segunda opção
cria outro como chave primária.(Deixando como NUMERACAO AUTOMATICA)
terceira opção
Colocar esse campo que está como TEXTO para NUMERO(NUMERACAO AUTOMATICA)
Lembrando que não sei porque esse campo está como chave primária(Se ele está sendo usado como chave estrangeira de outra tabela)
Bom, enfim ,é isso
Isso! Retirei o login como chave primária, e consegui cadastrar o tempo. Só que ele ficou em uma tabela de baixo, e o login não pode ser igual ao de outra pessoa, pois estou criando um jogo! olha:
http://imgur.com/JcVPu
Tem alguma ideia ? Não posso deixar o mesmo login. Tem como usar chave estrangeira aqui?
http://imgur.com/JcVPu
Tem alguma ideia ? Não posso deixar o mesmo login. Tem como usar chave estrangeira aqui?
Agora simplificou
Entao no insert você grava o campo login,e o campo tempo.E cria um campo ID como chave primaria(numeracao automatica)
Entao no insert você grava o campo login,e o campo tempo.E cria um campo ID como chave primaria(numeracao automatica)
O programa faz um cadastro. Ele vai cadastrar o login ou o ID ? o.O
@edit:
Pera ai, acho que tô entendendo... No insert,eu insiro o login ou o ID? Já coloquei id na tabela como numeração automática, o login continua como chave primária, o que eu faço ? peço o login ou o id pra armazenar o tempo?
Fiz isso: sql = [Ô]insert into dados (tempo, login) values ([ô][Ô] & LblCronometro.Text & [Ô][ô] [ô][Ô] & TxtLogin.Text & [Ô][ô])[Ô]
e pensei em avisar qual é o ID do usuário (login) quando ele completasse o cadastro. O que acha?
@edit:
Pera ai, acho que tô entendendo... No insert,eu insiro o login ou o ID? Já coloquei id na tabela como numeração automática, o login continua como chave primária, o que eu faço ? peço o login ou o id pra armazenar o tempo?
Fiz isso: sql = [Ô]insert into dados (tempo, login) values ([ô][Ô] & LblCronometro.Text & [Ô][ô] [ô][Ô] & TxtLogin.Text & [Ô][ô])[Ô]
e pensei em avisar qual é o ID do usuário (login) quando ele completasse o cadastro. O que acha?
Tópico encerrado , respostas não são mais permitidas