none
Problemas com data RRS feed

  • Pergunta

  • Bom dia pessoal. Estou com o seguinte problema: não estou conseguindo passar um valor de um txtBox, que é uma data, para o banco de forma correta. Já tentei fazer a formatação e conversão de um tipo string para Date, mas mesmo assim não funciona. Quando insiro o valor no banco, no campo de data mostra o seguinte número: 

    0,00645481628599801.

    O que deveria aparecer era 26/02/2014. O que devo fazer? Abaixo o código que uso no botão e o método para inserção no "banco" (planilha excel".

    Public Sub cadastraItem(codigo As Integer, produto As String, categoria As String, quantidade As Integer, precoUn As Currency, precoTotal As Currency, lote As Long, data As Date)
        Dim query As String
        query = "insert into [Almoxarifado$]([codigo], [produto], [categoria], [quantidade], [precoUn], [precoTotal], [lote], [data]) values(" & codigo & " ,'" & produto & "', '" & categoria & "', '" & quantidade & "', '" & precoUn & "', '" & precoTotal & "', '" & lote & "', '" & data & "')"
     
        Call abrirBanco
        Banco.Execute query
        query = vbNullString
        Call FecharBanco
    
    End Sub

    Private Sub btCadastrar_Click()
        Dim data As Date
        data = Format(CDate(Me.Date1_Tb.Text), "dd/mm/yyyy")
        If (Me.optNovoCadastro) Then
            On Error GoTo erroCadastro
            Call cadastraItem(Me.txtCodigo.Value, Me.txtProduto.Text, Me.txtCategoria.Text, Me.txtQuantidade.Value, Me.txtPrecoUn.Value, Me.txtPrecoTotal.Value, Me.txtLote.Value, data)
            MsgBox ("Cadastro efetuado com sucesso.")
        End If
        
        limpaCampos
        Me.txtCodigo.Value = Plan3.Range("H2") + 1
        Me.Date1_Tb = Date
        Me.txtLote.Value = Me.txtCodigo.Value & "0" & Format(Now, "ww") & "0" & Format(Now, "yy")
        
        Exit Sub
    
    'Tratamento de erros
    erroCadastro:
        MsgBox ("O cadastro não pode ser concluído. Contate o administrador do sistema para detecção do erro. Erro: " & Error)
        limpaCampos
        Call FecharBanco
        Hide
    End Sub

    Como devo proceder nesse caso?


    Fernando Stocco


    • Editado Fernando Stocco quarta-feira, 26 de fevereiro de 2014 11:20 Correção do código.
    quarta-feira, 26 de fevereiro de 2014 11:14

Respostas

  • Jà tive um problema parecido,onde no banco ficava 11/11/1111.
    Creio eu que seja o formato de data inválido.Pois o formato aqui,pode ser diferente de um outro país.

    26/02/2014 (DD/MM/YYYY)
    26-02-2014 (DD-MM-YYYY)
    02-26-2014 (MM-DD-YYYY)

    etc,etc,etc...

    No caso do SQL Server,o formato padrão é este:

    YYYY-MM-DD

    Você pode ler mais sobre os formatos neste artigo da W3Schools:
    http://www.w3schools.com/sql/sql_dates.asp


    • Editado Guilherme L. Santos quarta-feira, 26 de fevereiro de 2014 12:08
    • Marcado como Resposta Giovani Cr quinta-feira, 27 de fevereiro de 2014 19:16
    quarta-feira, 26 de fevereiro de 2014 12:07