Usuário com melhor resposta
Duvidas ao incluir campo data no access usando vb net

Pergunta
-
Boa tarde!
Estou criando uma aplicação desktop. a princípio era um programa apenas para coletar algumas informações... Estou usando uma classe para incluir os registros:
no botão incluir: ....
Dim m_dtNasc AsDateTime= txtDtNasc.Text ' DateTimePicker
(já usei a variável m_dtNasc e o campo do formulário txtDtNasc.text que é um controle datetimepicker)
......
Try
acc.incluirDados(txtNome.Text, sSex, cboSSo.Text, m_dtNasc, txtEnd.Text, txtNro.Text, txtCompl.Text, txtBairro.Text, txtMunicipio.Text, cboEstado.Text, txtCEP.Text, txtTel1.Text, txtTel2.Text, txtTel3.Text, txtResponsavel.Text, txtAtividades.Text, txtAnalise.Text, TxtSugestao.Text, txtObservacao.Text)
MsgBox("Dadados Salvos com sucesso!")
Catchex AsException
MsgBox("Erro ao incluir dados!")
EndTry
e na Classe inclusão de dados:
PublicSubincluirDados(ByValNome AsString, ByValSexo AsString, ByValAgente AsString, ByValNascimento AsString, ByValEndereco AsString, ByValNro AsString, ByValComplemento AsString, ByValBairro AsString, ByValMunicipio AsString, ByValEstado AsString, ByValCep AsString, ByValTel1 AsString, ByValTel2 AsString, ByValTel3 AsString, ByValResponsavel AsString, ByValAtividade AsString, ByValAnalise AsString, ByValSugestao AsString, ByValObservacao AsString)
Try
cn = getConexaoDB()
Cmd.Connection = cn
Cmd.CommandText =
"INSERT INTO Cliente(Nome,Sexo,Agente,Nascimento,Endereco,Nro,Complemento,Bairro,Municipio,Estado,Cep,Tel1,Tel2,Tel3,Responsavel,Atividade,Analise,Sugestao,Observacao)"& _"VALUES('"& Nome & "','"& Sexo & "','"& Agente & "' , "& Nascimento & ",'"& Endereco & "','"& Nro & "','"& Complemento & "', '"& Bairro & "','"& Municipio & "', '"& Estado & "','"& Cep & "', '"& Tel1 & "', '"& Tel2 & "', '"& Tel3 & "', '"& Responsavel & "','"& Atividade & "','"& Analise & "','"& Sugestao & "', '"& Observacao & "' "& ")"
Cmd.ExecuteNonQuery()
Catchex AsException
Throwex
Finally
closeConexaoDB(cn)
EndTry
EndSub
Bom finalizando, a data de nascimento vem do form de um controle datetimepicker olhando as variáveis ela vem certinha, mas ao incluir no Access é gravada a data 30/12/1899 (???????)
Como eu contorno isto? Engraçado que na rotina de alterar, ela fica exatamente como o alterado(??????) O campo no Access é um campo data hora , formato Data abreviada..... ( Obs: Na classe já usei na variável Nascimento tanto string como text que o resultado é o mesmo)
Fico no aguardo de como resolver isto. Obrigado
helio Passos
quinta-feira, 16 de julho de 2015 17:06
Respostas
-
Pessoal,
Finalmente resolvi essa questão. Numa classe inclusão de dados:
PublicSubincluirDados(ByValNome AsString, ByValSexo AsString, ByValAgente AsString, ByVal Nascimento As Date, ByValEndereco AsString, ByValNro AsString, ByValComplemento AsString, ByValBairro AsString, ByValMunicipio AsString, ByValEstado AsString, ByValCep AsString, ByValTel1 AsString, ByValTel2 AsString, ByValTel3 AsString, ByValResponsavel AsString, ByValAtividade AsString, ByValAnalise AsString, ByValSugestao AsString, ByValObservacao AsString)
Try
cn = getConexaoDB()
Cmd.Connection = cn
Cmd.CommandText =
"INSERT INTO Cliente(Nome,Sexo,Agente,Nascimento,Endereco,Nro,Complemento,Bairro,Municipio,Estado,Cep,Tel1,Tel2,Tel3,Responsavel,Atividade,Analise,Sugestao,Observacao)"& _"VALUES('"& Nome & "','"& Sexo & "','"& Agente & "' , " & Nascimento & ", '"& Endereco & "','"& Nro & "','"& Complemento & "', '"& Bairro & "','"& Municipio & "', '"& Estado & "','"& Cep & "', '"& Tel1 & "', '"& Tel2 & "', '"& Tel3 & "', '"& Responsavel & "','"& Atividade & "','"& Analise & "','"& Sugestao & "', '"& Observacao & "' "&")"
Cmd.ExecuteNonQuery()
...... etc....
Na string , " & Nascimento & ", eu teria que colocar: aspa simples aspa dupla & variável & aspa dupla aspa simples, então ficou assim: '" & Nascimento & "' , '" & .... Funcionou. o campo nascimento na tabela access é data hora e no Form estou usando DateTimePicker. A data quando eu incluía mudava para 30/12/1899 e agora está sendo gravada a data corretamente.
Agradeço a todos que se empenharam para me ajudar. Muito obrigado mesmo.
Tópico encerrado e concluído.
helio Passos
- Marcado como Resposta Marcos SJ terça-feira, 18 de agosto de 2015 12:51
segunda-feira, 17 de agosto de 2015 22:00
Todas as Respostas
-
Olá Hélio, tudo bem?
Peço que verifique esta outra thread para ver se a solução aqui te dá uma ideia do que você pode fazer diferente para chegar a solução do seu problema.
Atenciosamente
Marcos Roberto de Souza Junior
Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.
quinta-feira, 16 de julho de 2015 20:50 -
Na verdade não me ajudou muito, pois este thread me ajudaria se fosse para formatar o datetimepicker com null, o meu problema está quando incluo a data no access, em que ela se transforma em 30/12/1899 (????). E Se o campo na tabela em access for tipo texto, qual seria a forma correta para mostrar no formulário quando ler o registro (mostrar a data no datatimepicker?
helio Passos
- Editado HelioPassos sexta-feira, 17 de julho de 2015 15:24
sexta-feira, 17 de julho de 2015 15:11 -
Pessoal,
Finalmente resolvi essa questão. Numa classe inclusão de dados:
PublicSubincluirDados(ByValNome AsString, ByValSexo AsString, ByValAgente AsString, ByVal Nascimento As Date, ByValEndereco AsString, ByValNro AsString, ByValComplemento AsString, ByValBairro AsString, ByValMunicipio AsString, ByValEstado AsString, ByValCep AsString, ByValTel1 AsString, ByValTel2 AsString, ByValTel3 AsString, ByValResponsavel AsString, ByValAtividade AsString, ByValAnalise AsString, ByValSugestao AsString, ByValObservacao AsString)
Try
cn = getConexaoDB()
Cmd.Connection = cn
Cmd.CommandText =
"INSERT INTO Cliente(Nome,Sexo,Agente,Nascimento,Endereco,Nro,Complemento,Bairro,Municipio,Estado,Cep,Tel1,Tel2,Tel3,Responsavel,Atividade,Analise,Sugestao,Observacao)"& _"VALUES('"& Nome & "','"& Sexo & "','"& Agente & "' , " & Nascimento & ", '"& Endereco & "','"& Nro & "','"& Complemento & "', '"& Bairro & "','"& Municipio & "', '"& Estado & "','"& Cep & "', '"& Tel1 & "', '"& Tel2 & "', '"& Tel3 & "', '"& Responsavel & "','"& Atividade & "','"& Analise & "','"& Sugestao & "', '"& Observacao & "' "&")"
Cmd.ExecuteNonQuery()
...... etc....
Na string , " & Nascimento & ", eu teria que colocar: aspa simples aspa dupla & variável & aspa dupla aspa simples, então ficou assim: '" & Nascimento & "' , '" & .... Funcionou. o campo nascimento na tabela access é data hora e no Form estou usando DateTimePicker. A data quando eu incluía mudava para 30/12/1899 e agora está sendo gravada a data corretamente.
Agradeço a todos que se empenharam para me ajudar. Muito obrigado mesmo.
Tópico encerrado e concluído.
helio Passos
- Marcado como Resposta Marcos SJ terça-feira, 18 de agosto de 2015 12:51
segunda-feira, 17 de agosto de 2015 22:00