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

    Fromulário de Consulta com passagem de parâmetro de uma data específica

    avatar
    gordo
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

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

    Fromulário de Consulta com passagem de parâmetro de uma data específica Empty Fromulário de Consulta com passagem de parâmetro de uma data específica

    Mensagem  gordo 10/9/2014, 15:47

    Galera,

    Tenho a seguinte situação:

    Private Sub Form_Load()
    Dim SqlT As String
    Dim db As dao.Database
    Dim TbReg As dao.Recordset
    Conecta
    SqlT = "SELECT tabela.DtProposta, tabela.campo2, tabela.campo3 from tabela WHERE (((tabela.DtProposta)=#2/1/2014#));"
    Set db = CurrentDb
    Set TbReg = db.OpenRecordset(SqlT)
    If TbReg.EOF And TbReg.BOF Then
      MsgBox "Não há propostas cadastradas nesta data!"
      DoCmd.Close
    End If
    TbReg.Close
    Set db = Nothing
    End Sub

    Essa consulta funciona perfeitamente para uma data fixa, no caso 01/02/2014, e retorna a mensagem corretamente. O problema é quando eu ajusto a consulta para uma passagem de parâmetro, ou seja, uma data qualquer, conforme código abaixo:

    Private Sub Form_Load()
    Dim SqlT As String
    Dim db As dao.Database
    Dim TbReg As dao.Recordset
    Conecta
    SqlT = "SELECT tabela.DtProposta, tabela.campo2, tabela.campo3 from tabela WHERE (((tabela.DtProposta)=[Informe a data:]));"
    Set db = CurrentDb
    Set TbReg = db.OpenRecordset(SqlT)
    If TbReg.EOF And TbReg.BOF Then
      MsgBox "Não há propostas cadastradas nesta data!"
      DoCmd.Close
    End If
    TbReg.Close
    Set db = Nothing
    End Sub

    No código acima, uma mensagem de erro é gerada: "Erro em tempo de execução '3061': Parâmetros insuficientes. Eram esperados 1". Quando eu coloco a expressão "[Informe a data:]" como "#[Informe a data:]#", a seguinte mensagem de erro é gerada: "Erro em tempo de execução '3075': Erro de sintaxe na data da expressão de consulta (((tabela.DtProposta)=#[Informe a data:]#))".

    Alguém sabe como eu tenho que colocar isso?
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8498
    Registrado : 05/11/2009

    Fromulário de Consulta com passagem de parâmetro de uma data específica Empty Re: Fromulário de Consulta com passagem de parâmetro de uma data específica

    Mensagem  Alexandre Neves 11/9/2014, 11:16

    Bom dia,
    SqlT = "SELECT DtProposta, campo2, campo3 from tabela WHERE DtProposta=#" & inputbox("Informe a data.") & "#;"
    Pode ter que usar format(inputbox("Informe a data."),"dd-mm-yyyy")


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    gordo
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

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

    Fromulário de Consulta com passagem de parâmetro de uma data específica Empty Re: Fromulário de Consulta com passagem de parâmetro de uma data específica

    Mensagem  gordo 11/9/2014, 13:08

    Bom dia!

    Coloquei o que você pediu, mas apresenta a seguinte mensagem de erro:

    Erro em tempo de execução '3078':

    O mecanismo de banco de dados microsoft jet não encontrou a tabela de entrada ou consulta. Certifique-se de que ela existe e de que seu nome está digitado corretamente.

    Veja como ficou:

    SqlT = "SELECT tabela.DtProposta, tabela.campo2, tabela.campo3 from tabela WHERE (((tabela.DtProposta)=#" & Format(InputBox("Informe a data:"), "mm/dd/aaaa") & "#));"
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8498
    Registrado : 05/11/2009

    Fromulário de Consulta com passagem de parâmetro de uma data específica Empty Re: Fromulário de Consulta com passagem de parâmetro de uma data específica

    Mensagem  Alexandre Neves 11/9/2014, 13:45

    Boa tarde,
    Só vendo a bd


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    gordo
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

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

    Fromulário de Consulta com passagem de parâmetro de uma data específica Empty Re: Fromulário de Consulta com passagem de parâmetro de uma data específica

    Mensagem  gordo 11/9/2014, 14:58

    Bom dia Amigo,

    Descobri a falha. O código ficou estruturado dessa forma:

    Private Sub Form_Load()
    Dim SqlT As String
    Dim db As dao.Database
    Dim TbReg As dao.Recordset
    Dim dtpesq As Date
    Conecta
    dtpesq = Format(InputBox("Informe a data:", "Data da pesquisa"), "mm/dd/yyyy")
    SqlT = "SELECT tabela.DtProposta, tabela.campo2, tabela.campo3 from tabela WHERE ((tabela.DtProposta)=#" & dtpesq & "#);"

    Set db = CurrentDb
    Set TbReg = db.OpenRecordset(SqlT)
    If TbReg.EOF And TbReg.BOF Then
      MsgBox "Não há propostas cadastradas nesta data!"
      DoCmd.Close
    End If
    TbReg.Close
    Set db = Nothing
    End Sub

    No entanto, a funcionalidade ainda está incorreta. Quando eu informo uma data que não tem registro cadastrado, funciona perfeitamente. O problema é quando eu informo uma data em que há registro cadastrado, ele retorna a tabela inteira e não só os registros cadastrados na data que eu informei. Tá faltando só o pulo do gato.

    Conteúdo patrocinado


    Fromulário de Consulta com passagem de parâmetro de uma data específica Empty Re: Fromulário de Consulta com passagem de parâmetro de uma data específica

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 22/11/2024, 06:51