locked
Data de vencimento RRS feed

  • Pergunta

  • Pesoal, desculpe minha ignorância, sou novo em Access e estou com um probleminha aqui. Tenho um banco de dados com uma tabela entrada e vários campos, nome, endereço..., ...data de entrada e data de entrega. Preciso que o sistema me avise quando a data de entrega = ou < que a data atual, pois não posso deixar o serviço vencer, seria algo mais ou menos assim:

    Se data de entrega <= data atual entao

    Avise (MsgBox) "o servico tal da empresa tal datado para o dia tal está atrazado, verifique o que acontexeu!"

    Fim_se, já criei uma consulta para pesquisar o banco de dados e ver se conseguia, mas foi em vão.

    Esta é a instrução que criei:

    If DCount("*", "vencidos") > 0 Then
        v = DLookup("saida", "vencidos")
        s = DLookup("servico", "vencidos")
        c = DLookup("nome", "vencidos")
           
        MsgBox "O Serviço intitulado " & s & " da empresa " & c & " previsto para o dia " & v & "  Está vencido, favor dar uma importância maior"  'Inicia a mensagem
        End If
    e esta é a consulta:

    SELECT basededadosdeentrada.nome, basededadosdeentrada.servico, basededadosdeentrada.saida
    FROM basededadosdeentrada
    WHERE CDate(saida)<=CDate(Date)
    ORDER BY basededadosdeentrada.saida;

    Alguém pode me ajudar?

    Meu access é o 2003

    sexta-feira, 23 de fevereiro de 2007 17:32

Todas as Respostas

  • Oi Claudionir,

    crie uma consulta simples, trazendo todos os campos de sua tabela de serviços e coloque a seguinte expressão na linha de critério da coluna Entrega:

    <=Date()

     

    Desta forma a consulta só trará os itens vencidos (ou que estejam vencendo na data).

    Crie um formulário para exibir os registros desta consulta e mande-o abrir na inicialização do aplicativo.

    quarta-feira, 28 de fevereiro de 2007 03:16
    Moderador
  • Então, eu já tenho um formulário que exibe estes dados e não preciso que a consulta busque todos os dados, eu preciso que ela busque só o Nome do Cliente, o Serviço e a data de vencimento, d' ai ao invés de exibir estes dados em um formulário eu quero que apareça apenas uma message dizendo "O serviço Tal, do Cliente Tal, venceu em Tal data, favor verificar o que deve ser feito para concluir este serviço" Entendeu?

    Já tenho uma consulta com estes parâmetros ela chama-se vencidos (veja):

    SELECT [nome], [servico], [saida]
    FROM basededadosdeentrada
    WHERE [saida] <= Date()
    ORDER BY [saida], [nome], [servico];

    Dim data_atual As Date ' variável que armazenará a data do sistema no aplicativo
    data_atual = Format(data_atual, dd / mm / yyyy) ' Atribuição da variável acima no formado 03/01/1976 por exemplo

    Dim cliente As String ' variável que vai pegar os dados do campo nome na tabela
        cliente = vencidos.nome.coumt ' atribuição da variável aima
    Dim descricao As String ' variável que vai pegar os dados do campo servico na tabela
        descricao = vencidos.servico.coumt ' atribuição da variável aima
    Dim vencimento As String ' variável que vai pegar os dados do campo vencido na tabela
        vencimento = vencido.saida.count ' atribuição da variável aima

    If vencimento.Value <= data_atual Then ' instrução que compara se a data atual é igual ou maior que a do vencimento
        MsgBox "O serviço intitulado " & descricao & " agendado para " & vencimento & " da empresa " & cliente & " está vencido, favor dar uma atenção especial a este serviço"
    End If

    Pode me dizer o que está errado?

     

    quarta-feira, 28 de fevereiro de 2007 17:56
  • Oi Claudionir,

    se houver vários registros de serviços vencidos, como pretende exibir?

    MsgBox sucessivas não são boa prática, o melhor seria exibir um aviso com todos os itens. Por este motivo eu sugeri usar um formulário. Você pode configurá-lo para se parecer com uma MsgBox, colocando Popup=True, Modal=True e borda tipo diálogo.

    quarta-feira, 28 de fevereiro de 2007 23:18
    Moderador