E SE A DATA NAO EXISTE???
Pessoal,
Vez ou outra eu me deparo com problemas especificos
ao codificar.Para não perder tempo,eu busco uma alternativa
e sigo em frente.Mas,particularmente não gosto disto!
é uma situação simples,mas comum:
Digamos que eu tenho um campo tipo Data ( Access) . No meu caso trata-se
de um simples formulário de cadastro.Este campo Data não é obrigatório e
o usuário preenche se quizer.
Minha dúvida:
Ao executar um [Ô]INSERT[Ô] nesta tabela, se o campo estiver vazio o Access exibe uma
mensagem de erro, informando que o Tipo de dados é incompativel (Pois o campo esta vazio).
Nestes casos,como se deve proceder???
Que tipo de informação é correto inserir neste campo????
Vez ou outra eu me deparo com problemas especificos
ao codificar.Para não perder tempo,eu busco uma alternativa
e sigo em frente.Mas,particularmente não gosto disto!
é uma situação simples,mas comum:
Digamos que eu tenho um campo tipo Data ( Access) . No meu caso trata-se
de um simples formulário de cadastro.Este campo Data não é obrigatório e
o usuário preenche se quizer.
Minha dúvida:
Ao executar um [Ô]INSERT[Ô] nesta tabela, se o campo estiver vazio o Access exibe uma
mensagem de erro, informando que o Tipo de dados é incompativel (Pois o campo esta vazio).
Nestes casos,como se deve proceder???
Que tipo de informação é correto inserir neste campo????
Tente passar o campo como nulo e não como vazio, ex:
Lembrando que não seria bem assim que você deve fazer esse tratamento, é apenas para se ter uma idéia de como faz, também não testei nada, mas acredito que deve ser mais ou menos isso.
Dim command As New MySql.Data.MySqlClient.MySqlCommand([Ô]INSERT INTO tb_funcionarios ( Fun_DataAdmissao) VALUES (@Fun_DataAdmissao[Ô]), Conexao.GetConexao)
if Not IsDate(Fun_DataAdmissao.text) then [ô]Se caso o campo não for do tipo data ele vai passar nulo
Command.Parameters.AddWithValue([Ô]@Fun_DataAdmissao[Ô], DBNull.Value) [ô] Assim ele vai passar nulo e não em branco e acredito que como nulo ele deve aceitar.
else
Command.Parameters.AddWithValue([Ô]@Fun_DataAdmissao[Ô], Fun_DataAdmissao.text) [ô] caso o campo estiver preenchido com uma data válida ele grava o campo.
end if
command.ExecuteNonQuery
Command.Dispose
Conexao.Desconectar
Lembrando que não seria bem assim que você deve fazer esse tratamento, é apenas para se ter uma idéia de como faz, também não testei nada, mas acredito que deve ser mais ou menos isso.
Altair,
Agradeço sua colaboração.
Mas o Access continua recusando e exibindo mensagem de erro , informando que o tipo de
dados é incompativel.
Algum colega pode esclarecer??????
Agradeço sua colaboração.
Mas o Access continua recusando e exibindo mensagem de erro , informando que o tipo de
dados é incompativel.
Algum colega pode esclarecer??????
Vai na estrutura da tabela e coloque para False a propriedade Required do campo, ou coloque como valor default null. (Acho que este só por DDL, não lembro agora)
LLAIA,
Tentei as duas coisas.
Mesmo assim o Campo tipo DateTime do Access não aceita valores vazios
provenientes de meu TxtData.Text.
Algum colega,sabe como posso lidar com isso????
Tentei as duas coisas.
Mesmo assim o Campo tipo DateTime do Access não aceita valores vazios
provenientes de meu TxtData.Text.
Algum colega,sabe como posso lidar com isso????
é por SQL? Passe null:
insert into tabela (campoData) values (null)
Como está o seu código? Posta aà pra gente analisar.
Até mais.
Até mais.
Cara,
E se você fizer um tratamento que verifique se a data foi preenchida ou não.
Exemplo:
Faça o teste aà e veja se te ajuda em alguma coisa.
Espero ter ajudado.
E se você fizer um tratamento que verifique se a data foi preenchida ou não.
Exemplo:
Dim Preenchida = Function(qualData As String) As Boolean
If qualData = Nothing Then Return False Else Return True
End Function
If Preenchida(txtData.Text) Then
[txt-color=#007100] [ô]Caso retorne True, a data foi preenchida
[ô]string SQL com a data incluÃda[/txt-color]
Else
[txt-color=#007100] [ô]Caso retorne False, a data não foi digitada.
[ô]string SQL sem a data incluÃda. Se o campo Required do Access estiver como False
[ô]Então o campo será preenchido com um valor nulo[/txt-color]
End if
Faça o teste aà e veja se te ajuda em alguma coisa.
Espero ter ajudado.
trabalhar com acess é um problema pq não tem recursos em SQL pq no sqlserver
faço assim
if @datacad is not null
begin
-- aqui a execuçao
end
faço assim
if @datacad is not null
begin
-- aqui a execuçao
end
Citação::
LLAIA,
Tentei as duas coisas.
Mesmo assim o Campo tipo DateTime do Access não aceita valores vazios
provenientes de meu TxtData.Text.
Algum colega,sabe como posso lidar com isso????
Se vc passar assim
[Ô][Ô]
para o banco de dados para uma data ser nula vai dá problema. Vc tem que tratar sua textBox e ver se for [Ô][Ô]
, passar a palavra null na query.
Tópico encerrado , respostas não são mais permitidas