MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


2 participantes

    [Resolvido]Laço For Next retorna cálculo de data zerado em comando SQL

    nilopozza
    nilopozza
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 13
    Registrado : 10/10/2011

    [Resolvido]Laço For Next retorna cálculo de data zerado em comando SQL Empty Laço For Next retorna cálculo de data zerado em comando SQL

    Mensagem  nilopozza 12/11/2012, 13:17

    Bom dia a todos.

    Procurei assunto semelhante no fórum mas não encontrei. Sendo assim, posto aqui a minha dúvida:

    Preciso criar uma instrução para cadastrar parcelas de uma compra a prazo, incrementando o número da parcela e a data de vencimento. Com o código que desenvolvi o VBA funciona de forma parcial, ou seja, cria os registros de acordo com o número de parcelas e as numera corretamente, entratanto, está zerando as datas de vencimento, retornando 30/12/1899. Se alguém puder me orientar a corrigir o problema ficarei muito agradecido.

    Abaixo segue o código, para análise.

    Option Compare Database
    Option Explicit

    Private Sub Teste_Click()

    Dim valor As Currency
    Dim Prestação As Integer
    Dim Parcela As Integer
    Dim Prazo As Integer
    Dim i As Integer
    Dim Seq As Long
    Dim StrSQL As String
    Dim Dtcompra As Date
    Dim Dtvcto As Date
    Dim Intervalo As String

    valor = 200
    Prazo = 7
    Seq = 3
    Parcela = 0
    i = DCount("[Seq]", "[Teste]", "[Seq] =" & Seq)
    Prestação = FormatNumber(valor / Prazo, 2)
    Intervalo = "m"
    Dtcompra = DateSerial(2012, 1, 5)


    If i < Prazo Then

    For i = 1 To Prazo
    Parcela = Parcela + 1
    Dtvcto = DateAdd(Intervalo, Parcela, Dtcompra)
    StrSQL = "INSERT INTO Teste (Seq, Parcela, Vencimento, Valor) SELECT " & Seq & " AS Seq," & Parcela & " AS Parcela," & Dtvcto & " AS Vencimento," & Prestação & " AS Valor"
    CurrentDb.Execute StrSQL

    Next

    Else
    Exit Sub
    End If

    End Sub
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3880
    Registrado : 04/04/2010

    [Resolvido]Laço For Next retorna cálculo de data zerado em comando SQL Empty Re: [Resolvido]Laço For Next retorna cálculo de data zerado em comando SQL

    Mensagem  Avelino Sampaio 12/11/2012, 13:37

    Experimente as três alternativas e veja qual irá funcionar

    str(Dtvcto)
    cdate(Dtvcto)
    cdbl(Dtvcto)

    Sucesso!


    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    nilopozza
    nilopozza
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 13
    Registrado : 10/10/2011

    [Resolvido]Laço For Next retorna cálculo de data zerado em comando SQL Empty Re: [Resolvido]Laço For Next retorna cálculo de data zerado em comando SQL

    Mensagem  nilopozza 12/11/2012, 16:12

    Mestre Avelino Sampaio, não consegui com suas sugestões, entretanto, devido à elas consegui entender a lógica do problema: preciso forçar a conversão do valor em string para poder concatenar na instrução SQL.

    Sendo assim, consegui resolver concatenando aspas simples antes e depois da variável ("'" & Dtvcto & "'"), na instrução SQL.

    Ficou assim:

    StrSQL = "INSERT INTO Teste (Seq, Parcela, Vencimento, Valor) SELECT " & Seq & " AS Seq," & Parcela & " AS Parcela," & "'" & Dtvcto & "'" & " AS Vencimento," & Prestação & " AS Valor"

    Funcionou perfeitamente.

    Obrigado pela pronta resposta.

    Abraços.

    Conteúdo patrocinado


    [Resolvido]Laço For Next retorna cálculo de data zerado em comando SQL Empty Re: [Resolvido]Laço For Next retorna cálculo de data zerado em comando SQL

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 2/5/2024, 18:08