ERRO AO SALVAR UM REGISTRO

USUARIO.EXCLUIDOS 19/05/2004 17:33:33
#25594
tenho um campo codigo do tipo texto e criei a rotina abaixo para q o sistema adicione sempre um a mais toda as vezes q eu pedir pra salvar, só q o vb informa q o valor esta nulo alguem pode me ajudar

If Tb_Aluno.RecordCount = 1 Then
TXT_CODIGO = "1"
Else
Do Until Tb_Aluno.EOF

TXT_CODIGO = Tb_Aluno("codigo") + 1
Tb_Aluno.MoveNext
Loop
End If
USUARIO.EXCLUIDOS 19/05/2004 17:39:41
#25597
Resposta escolhida
este codigo esta meio estranho...

vejamos...a primeira parte tudo bem - voce esta colocando txt_Codigo = 1

a segunda parte

voce pegou o recordset Tb_Aluno e está rodando até o fim,
txt_codigo vai ficar apenas com o tb_aluno("Codigo") + 1 do ultimo registro - para fazer o mesmo mais rapidamente voce pode fazer algo como

Tb_Aluno.MoveLast
Txt_Codigo = tb_Aluno("Codigo") + 1

evitando assim o loop...

agora - se eu entendi bem, você quer o último código - imagino que seu sistema tenha código como um número sequencial (pelo menos pelo que estou vendo no código) - se for o caso, mais facil ainda serial fazer algo como:

Txt_Codigo = Tb_aluno.RecordCount (isso funcionaria para todos os casos)

agora o problema do null - antes de somar +1, verifique que o campo tem dados realmente

if not null (tb_Aluno("Codigo").value) then
txt_codigo.text = cstr(tb_Aluno("Codigo").value + 1
end if

USUARIO.EXCLUIDOS 19/05/2004 21:58:04
#25639
mas no codigo que voce postou, voce nao esta salvando dado algum!?

se vc coloca que todos os codigos a partir do terceiro serao "0" - vc nao pode definir este campo como chave primeria (ele nao vai aceitar dados duplicados)

o nulo esta acontecendo por problemas de entrada de dados - nao saida como é o caso no trecho que vocà« postou...
Tópico encerrado , respostas não são mais permitidas