1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Ajuda base dados + lembrete

Discussão em 'Programação' iniciada por ussagui, 16 de Abril de 2012. (Respostas: 36; Visualizações: 3384)

  1. Boas, é o seguinte eu tenho algumas bases de VB mas estou parado quase a 3anos! e agora gostava de fazer um programa para ajudar o meu pai com o trabalho dele que consiste no seguinte:


    o programa vai ter os seguintes campos,
    empresa (campo chave)
    data de ida (ao cliente)
    zona
    morada
    telefone
    mail
    contrato de manutenção nº
    tipo de contrato
    fim do contrato


    o lembrete tem de funcionar para os seguintes campos,
    data de ida, tem de avisar com 3 dias de antecedencia e no dia mesmo se possivel
    fim do contrato, com 30 dias e no dia mesmo.


    e muito dificil fazer um programa assim?
    a base de dados faço no access certo?


    algumas sugestões?


    Obrigado desde ja.
     
  2. Cerzedelo

    Cerzedelo Power Member

    Não é muito dificil fazer o programa, e sim pode fazer a base de dados em access, mas se for para conter muita informação, aconselho a fazer a base de dados em SQL server, pode utilizar a Versão compact, que não necessita de servidor e depois pode construir a base de dados, os campos, as relações a partir do próprio VB, convém ter conhecimentos de VB a partir da versão 2005, já que esta difere em alguns aspectos da versão 6. Aconselho-o a visitar o site www.macorratti.net, onde tem muitos exemplos e a sua explicação.
     
  3. ok, muito obrigado! se tiver duvidas coloco-as aqui ou no respectivo lugar? ja agora, ontem estive a procura e encontrei o vb e o vb.net qual é o melhor para mim? será que me podes dar o link do SQL compact? aquilo é tipo access?
     
  4. pmni

    pmni Power Member

  5. Cerzedelo

    Cerzedelo Power Member

  6. isso ja esta feito :P
    alguem me pode dizer/ajudar a fazer o tal lembrete? :o e ha maneira de fazer tipo pop-up?
     
  7. Para fazer um lembrete, podes usar algo do tipo:
    - Adicionas um componente de Timer ao formulário (que convém estar sempre aberto para funcionar)
    - Esse timer chama uma função de X em X minutos
    - Nessa função, faz um query à base de dados para verificar os clientes cuja data de ida ao cliente é daqui a 3 dias
    - Caso encontre algum resultado, mostra uma mensagem ao utilizador
    - Depois pode verificar os clientes cuja data de ida é hoje
    - De novo, caso encontre algum cliente, mostra uma mensagem ao utilizador

    Isto são só os passos assim por alto. Sem saber o que já tens feito é complicado explicar.
    Depois há outro tipo de funcionalidades que convem adicionar, do tipo fazer a verificação apenas 1 vez ao dia.
    Em vez de mostrar uma mensagem (popup), poderá também enviar a lista de clientes a consultar por email.
     
  8. Cerzedelo

    Cerzedelo Power Member

    Existem muitas formas de fazer o lembrete. Não creio que seja necessário um timer, porque esta verificação pode ser efectuada quando entra no programa, a menos que tenha o programa aberto 24h/24h.
    Uma possível solução, seria depois do procedimento de verificar as datas, aplicar uma msgbox a dizer p.e. tem contractos a expirar dentro de 3 dias , e ao clickar no OK da msgbox, abrir um novo form, onde constem os dados dos contratos que estão a expirar.
    De qualquer forma, vá estudano a função DateDiff do VB, porque será útil para verificar as datas.
     
  9. Ou então algo mais simples.
    Crias um programa que acede à base de dados e faz essas 2 verificações.
    Se houver algo para mostrar, dá um aviso ao utilizador.
    Depois termina o programa.

    Poes esse programa a correr diariamente no scheduler do windows (do tipo quando se liga o computador).
     
  10. sinceramente gostei de todas as ideias o problema vai ser fazer :P mas ainda nao cheguei ai! estou com um prob grande ... o codcli esta em int quando procuro por la da td mt bem mas quando apago da me este erro " Conversin from string "" to type 'Integer' is not valid." eu quando apago tudo quero que me volte a aparecer a lista toda, como faço? mais uma coisa sempre que fecho o "programa" a base dado fica limpa pk? :/
     
  11. O que queres dizer com "quando apago"? colocas o campo a vazio? se o campo é inteiro, tens de colocar a zero (ou a null se suportar isso).

    Estas questões são dificeis de responder sem se ver o que tens no programa actualmente.
     
  12. Cerzedelo

    Cerzedelo Power Member

    O que parece é que não está a eliminar o registo, mas sim a fazer um update. Se estiver a utilizar os TableAdapters e os binding navigators, não se esqueça que o comando para apagar é nomedoTableAdapter.Delete (codcli, ..., ....).
     
  13. Podes me traduzir isso para portugues? xD
     
  14. Cerzedelo

    Cerzedelo Power Member

    Neste momento não tenho acesso ao VB, mas se tiver uma barra no topo do form, com uns comandos para navegar pelos registos, um botão de gravar, e um de adicionar e outro de eliminar, então está a usar o binding navigator.

    E verifique se no fundo do form onde mostra os dados não tem umas funções com nome de tableadapter, binding source, binding navigator. Em suma, se praticamente não escreveu código é porque está a utilizar os tableadapter.

    Quando se utiliza os binding navigator, a tal barra no topo do form, repare que normalmente só o botão do gravar (imagem de disquete) é que está activado. O botão de delete (imagem de um x) não está activado.

    Simplesmente não pode apagar os registos, eliminando-os por ex. das textboxs se as estiver a utilizar e depois gravar, porque na realidade o que está a fazer é um update (uma actualização) e não eliminação.

    Para eliminar, click 2 x no botão de delete e insira o código.

    me. bindingsource.endedit()
    me. tableadapter. delete (codlic, e todos os registos da tabela da base de dados)
    me. tableadapter.fill(me.dataset.nome da tabela)

    Verifique se o botão delete, está com Enabled=true. Pode experimentar criando um botão no form.

    Atenção: O bindingsource, o tableadapter e o dataser, têm um nome associado, por ex. clientebindingsource, clienteTableadpater, ..., é o nome que estiver descrito na parte inferiror do formulário.

    De uma vista de olhos em http://www.macoratti.net/vbn_tdta.htm, é para o vb2005 mas funciona nas versões posteriores
     
  15. Boas, bem antes de mais muito obrigado pela explicação!
    mas o apagar acho que funciona o problema e o guardar! no momento guarda, se parar o programa e voltar a correr nao me aparece nada nas tabelas porquê?
     
  16. Cerzedelo

    Cerzedelo Power Member

    Isso pode ser normal, porque o que o VB faz é criar uma base de dados temporária onde regista as interacções. Em principio, se for esse o problema, quando for a publicar e a instalar o programa definitivamente a questão desaparece. Para confirmar se é esse o problema, é instalar o programa numa outra máquina e experimentar.
     
  17. como faço isso? como faço para compilar o programa? assim faço ja um teste ... obg
     
  18. Cerzedelo

    Cerzedelo Power Member

    No VB existe no menu uma aba Build e dentro um comando de nome Publish, esse comando lança um wizard em que vai criar um setup da sua aplicação.
    Depois de gravar o setup é só transferi-lo para o computador que pretender e instalar.
    Tenha em atenção se a base de dados vai em conjunto com o programa, ver nas propriedades da aplicação.
     

Partilhar esta Página