Como faço para inserir um campo com datas para o Access?
Pois tenho um formulário em que digito os dados, como nome, endereço, data de nascimento e data atual, e quando clico no botão cadastrar, ele cadastra no banco de dados, mas quando visualizo tanto no Access quanto no VB e aparece com outro tipo de data, exemplo, se eu digito 20/06/2007 ele aparece no Access e no formulário de consulta no VB como sendo 30/12/1899.... estranho, o que deve estar faltando?
Private Sub cmdOK_Click()
Dim cnnComando As New ADODB.Command
Dim vCodLivro, vCodUsuario As Long
Dim vDataEmprestimo, vDataDevolucao As Date
Dim vConfMsg As Integer
Dim vErro As Boolean
On Error GoTo errGravacao
'Converte os dados digitados:
vCodLivro = Val(txtCodLivro.Text)
vCodUsuario = Val(txtCodUsuario.Text)
vDataEmprestimo = CDate(txtDataEmprestimo.Text)
vDataDevolucao = CDate(txtDataDevolucao.Text)
'Verifica os dados digitados:
vConfMsg = vbExclamation + vbOKOnly + vbSystemModal
vErro = False
If vCodLivro = 0 Then
MsgBox "O campo Código do Livro não foi preenchido.", vConfMsg, "Erro"
vErro = True
End If
If lblTitulo.Caption = Empty Then
'Se lblTitulo estiver em branco, o código do livro informado não foi
'encontrado na tabela:
MsgBox "O campo Código do Livro não contém um dado válido.", _
vConfMsg, "Erro"
vErro = True
End If
If vCodUsuario = 0 Then
MsgBox "O campo Código do Usuário não foi preenchido.", vConfMsg, "Erro"
vErro = True
End If
If vDataEmprestimo >= vDataDevolucao Then
MsgBox "A Data de Devolucao informada é menor ou igual à Data de " & _
"Empréstimo, verifique.", vConfMsg, "Erro"
vErro = True
End If
'Se aconteceu um erro de digitação, sai da sub sem gravar:
If vErro Then Exit Sub
Screen.MousePointer = vbHourglass
'Executa a SP de devolução de livros:
With cnnComando
.ActiveConnection = cnnBiblio
.CommandType = adCmdText
.CommandText = "UPDATE Livros SET CodUsuario = " & vCodUsuario & _
", Emprestado = True, DataEmprestimo = " & vDataEmprestimo & _
", DataDevolucao = " & vDataDevolucao & " WHERE CodLivro = " & _
vCodLivro & ";"
.Execute
End With
MsgBox "Esse livro foi emprestado a " & lblNomeUsuario & " com sucesso.", _
vbApplicationModal + vbInformation + vbOKOnly, "Empréstimo OK"
'Chama a subrotina cmdCancelar_Click para limpar os campos do formulário:
cmdCancelar_Click
Saida:
Screen.MousePointer = vbDefault
Set cnnComando = Nothing
Exit Sub
errGravacao:
With Err
If .Number <> 0 Then
MsgBox "Erro durante a gravação dos dados no registro." & _
vbCrLf & "A devolução desse livro não foi completada.", _
vbExclamation + vbOKOnly + vbApplicationModal, _
"Empréstimo cancelado"
.Number = 0
GoTo Saida
End If
End With
End Sub
Private Sub txtDataEmprestimo_LostFocus()
Dim vDataDevolucao As Date
With txtDataEmprestimo
If .Text <> Empty Then
'Verifica se o dado digitado pode ser uma data:
If Not IsDate(.Text) Then
'Se o dado digitado não pode ser uma data, assume a do sistema:
.Text = Date
Else
'Senão, formata a data digitada:
.Text = Format(.Text, "Short Date")
End If
'Atribui à caixa txtDataDevolucao a data digitada + 15 dias:
vDataDevolucao = CDate(.Text) + 15
txtDataDevolucao.Text = Format(vDataDevolucao, "Short Date")
End If
End With
End Sub
Pergunta
Girréis
Boa noite, amigos
Como faço para inserir um campo com datas para o Access?
Pois tenho um formulário em que digito os dados, como nome, endereço, data de nascimento e data atual, e quando clico no botão cadastrar, ele cadastra no banco de dados, mas quando visualizo tanto no Access quanto no VB e aparece com outro tipo de data, exemplo, se eu digito 20/06/2007 ele aparece no Access e no formulário de consulta no VB como sendo 30/12/1899.... estranho, o que deve estar faltando?
grato pela atenção,
Girréis
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
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.