Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Tratar erro conversao de tipo


Guest --Adriano --

Pergunta

Guest --Adriano --

Bom dia a todos !

Pessoas, durante a importacao de um arquivo txt q estou convertendo um campo em data está aparecendo uma mensagem de alerta dizendo q 1 campo é nulo. De fato é nulo porque está 000000 e isso não pode ser convertido em data. Acontence q os dados são importados sem problema algum e este campo q está zerado fica nulo. Até aí está correto, porém quero evitar aquela mensagem q o access exibe:

"O [Nome do bd] definiu 1 campo(s) como Nulo devido a uma falha de conversão de tipo e não adicionou 0 registro(s) à tabela devido a ...

Deseja executar a consulta ação assim mesmo?

Clique em sim para ignorar o erro e executar a consulta.

Clique em ajuda para obter uma explicação das causas das violações"

Será possível evitar essa mensagem via código?

Grato!

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Acrescente ao código sql a função NZ(), que tem a seguinte sintaxe:

nz(seuCampo;valorSeNulo)

valorSeNulo será o valor retornado em caso de o valor de seuCampo seja nulo e é opcional, mais aconselho sempre prever o valor a ser retornado conforme o tipo de dados testado, devo dizer que para utilizar em código vba ";' (ponto e virgula) deve ser substituido por "," (virgula), ok!

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Adriano --

Fiquei na dúvida ou não expliquei direito: acontece q tenho uma linha q faz a importação e manda para uma consulta q formata o campo txt 201107 em 20/11/07 e esta consulta é INSERT INTO numa tabela que tem o campo destino do tipo data.

O erro ocorre no momento do INSERT porque nem todos os dados do campo data são data, ex:00/00/00.

Não entendi onde colocar o NZ() , é na consulta acréscimo? Porque o campo de destino só pode ser uma data ou nulo então não posso atribuir um valor para uma data q não existe, o correto seria deixar nulo mesmo, porém não exbir a tal mensagem.

Link para o comentário
Compartilhar em outros sites

  • 0

Entenda que antes de passar o valor você irá testar se existe a informação, ou seja esse tratamenta deverá ocorrer com a informação a ser passada e quanto a formatação do seu campo data dá uma olhadinha no seguinte tópico:

http://scriptbrasil.com.br/forum/index.php?showtopic=110416

ok?

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Adriano --

Esta forma também funciona, usei na consulta o seguinte:

DT_ACAT1: IIF([DT_ACAT]="000000";Null;Mid([DT_ACAT];1;2) & "/" & Mid([DT_ACAT];3;2) & "/" & Mid([DT_ACAT];5;2))

Exatamente o q você falou só que usei o iif, verifica a condição e atribui os valores definidos para true ou false.

Desta forma o Acccess não emite a indesejada mensagem de erro de conversão de tipos no meu caso.

Conseguimos, valeu mais uma vez !

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...