ERRO AO SALVAR UM REGISTRO
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
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
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
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...
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