Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

edu07091996

Formulário de Contas a Receber - Visual Basic + Access 2013

Recommended Posts

Boa tarde galera,

Preciso de uma ajudinha.

Estou desenvolvendo um pequeno projeto da faculdade onde é um sistema de contas a receber (diferente do cadastro de vendas que você lança produto por produto, o contas a receber você apenas lançará valor total e se quiser colocará os produtos vendidos no campo observação).

Para cadastrar a conta a receber fiz um formulário onde solicita os seguintes campo: ID (numerador automático), Matricula (Número), Cliente (Texto Curto), ValorReceber (Moeda), DataCompra (Data/Hora), Observacao (Texto Longo) e StatusPagamento (Sim/Não) e logo em seguida armazena tudo no banco de dados. Até aqui o sistema fluiu e está ok! Está recebendo e armazenando os dados!

O que me apertou foi o seguinte:

Agora necessito de um outro formulário onde eu consulto pela matricula do cliente no banco de dados da contas a receber e somo tudo o que ele deve. Exemplo:

Banco de dados:

ID Matricula Nome ValorReceber DataCompra Obsevacao e StatusPagamento

1 12345678 João Pedro R$ 12,00 20/05/2016 Coca-Cola, Salgado Não

2 87654321 Ana R$ 2,50 30/05/2016 Coca-Cola Não

3 12345678 João Pedro R$ 6,00 25/05/2016 Coca-Cola Não

4 12345678 João Pedro R$ 6,00 30/05/2016 Coca-Cola Sim

*Simulação do meu banco de dados

Agora preciso que o sistema faça o seguinte:

Recebe a matricula do João Pedro (logo é: 12345678) e calcule todos os valores que ele deve, que no caso seria: 12,00 + 6,00 = 18,00

*O produto/ContaReceber do ID "4" não somaria pois ele já tinha efetuado a compra e pago na hora.

Espero que vocês tenham entendido.

Estou no Aguardo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

Eu faria meio no "facão" rsrs

 

no método SELECT da consulta ao banco de dados
"SELECT * FROM nome da sua tabelas WHERE Matricula=" & " numero da matricula" & " AND StatusPagamento='" & "Não""

Isso faria com que a busca só retorne dados do cliente com a matricula X que possuam o Status de Pagamento "Não".

 

Feito isso é só você somar a coluna dos valores.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu aconselho o que o eduardo falou, mantenha as lógicas de filtros e regras de negócio mais básicas no banco de dados, isso impede que seu sistema fique lento tratando coisas que não façam parte da programação geral. Traga só os dados que você necessita e não mais que isso. Tente deixar a soma no sistema o mais simples possível.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por gereiz
      Bom dia a todos. Adaptei um código para renomear vários arquivo com vba, que realiza a seguinte função:
       
      1) Eu seleiono a pasta,
      2) O VBA abre o PDF (Nota fiscal) , extrai a informação do texto e com a razão social fecha o pdf e renomeia ele com o nome extraido.
       
      O problema é que após renomear o primeiro arquivo corretamente a execução do código trava, e é necessário finalizar o processo.
      Segue abaixo o código.
      Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Public Function ListaArquivos(ByVal Caminho As String) As String()          'Atenção: Faça referência à biblioteca Micrsoft Scripting Runtime     Dim FSO As New FileSystemObject     Dim result() As String     Dim Pasta As Folder     Dim Arquivo As File     Dim Indice As Long         ReDim result(0) As String     If FSO.FolderExists(Caminho) Then         Set Pasta = FSO.GetFolder(Caminho)           For Each Arquivo In Pasta.Files             Indice = IIf(result(0) = "", 0, Indice + 1)             ReDim Preserve result(Indice) As String             result(Indice) = Arquivo.Name         Next     End If       ListaArquivos = result ErrHandler:     Set FSO = Nothing     Set Pasta = Nothing     Set Arquivo = Nothing End Function Private Sub selecionar_pasta()  Dim box As Folder  Dim arquivos() As String  Dim lCtr As Long  Dim AdobeApp As String  Dim StartAdobe  Dim Arquivo As String  Dim NomeAntigo As String  Dim NomeNovo As String        On Error Resume Next      linha = 1      ultima_linha = Sheets("teste").Cells(Rows.Count, 1).End(xlUp).Row                  With Application.FileDialog(msoFileDialogFolderPicker)             .Title = "Buscar pasta"             .InitialFileName = ThisWorkbook.Path             .Show             .AllowMultiSelect = False             Pasta = .SelectedItems(1)         End With         TextBox1 = box          arquivos = ListaArquivos(Pasta)     Sleep 1000     For lCtr = 0 To UBound(arquivos)       Debug.Print arquivos(lCtr)         'Inserir código aqui'                  'Cells(linha, 1).Value = arquivos(lCtr)         'linha = (linha + 1)         'Sleep 500                                 pdf = arquivos(lCtr)                    AdobeApp = "C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe"                      Sleep 2000                                          For Each pdf In Pasta                                 Adobefile = Pasta & "\" & pdf                    StartAdobe = Shell("" & AdobeApp & " " & """" & Adobefile & """" & "", 1)                              Sleep 2000                                         Application.SendKeys ("^a")             Application.SendKeys ("^c")              Sleep 2000                                    Dim KillPdf As String            KillPdf = "TASKKILL /F /IM AcroRd32.exe"            Shell KillPdf, vbHide                                               AppActivate Application.Caption                                            Sheets("teste").Range("A1").Activate             SendKeys ("^v")                                   DoEvents                                                                     Dim Razao As String             Razao = Sheets("teste").Range("A17").Value             pontos = InStr(1, Razao, ":")             qtdeLetras = Len(Razao)             Nome = Right(Razao, qtdeLetras - pontos)             Sheets("teste").Range("C1").Value = Nome                                                                   Do While Not IsEmpty(Range("C1"))                                              NomeAntigo = Pasta & "\" & pdf                                      NomeNovo = Pasta & "\" & Sheets("teste").Range("C1").Value & ".pdf"                                  Sheets("teste").Range("C2").Value = Adobefile                                      Sheets("teste").Range("C3").Value = Pasta & "\" & Sheets("teste").Range("C1").Value & ".pdf"                                                       Name NomeAntigo As NomeNovo                                                                  ' DoEvents                                         Loop                       ' MsgBox "Nomes dos arquivos alterados!", vbOKOnly, "Processo Concluído"                                                Next                       Next           ' MsgBox ("Arquivos Encontrados = ") & (linha - 1)                    End Sub Já tentei de tudo, e não consegui resolver esse problema, se eu remover o Do while, ele executa normalmente, porem não renomeia os arquivos. Seu eu faço esse laço, ele renomeia só o primeiro e trava geral.
       
      Qualquer esclarecimento, agradeço.

       
    • Por Robson Wenzel
      Olá, sou novo no VB
       
      Estou desenvolvendo um programa de atendimento médico onde tem vários textboxs e um deles é de Valor (R$).
       
      O meu problema é o seguinte...
      No meu banco de dados o campo valor é do tipo moeda e o banco é em access
      No meu programa no dataset configurei ele para double e por código consegui colocar automaticamente ponto e virgula.
      Até ai acho que tudo bem...
      Só que quando eu clico para salvar ele automaticamente esquece do ponto e virgula e salva no datagridview o valor sem ponto e virgula, e dai quando eu seleciono o registro ele esquece dos centavos
       
      Ex.:
      Eu digito na text box: R$ 1.250,00
      E quando eu salvo aparece na datagridview: 1250
      Quando seleciono o mesmo registro ele fica assim na textbox: R$ 12,50
      Só se os centavos não forem zerados ele salva mais se forem 00 ele não salva
       
      Por favor! me ajudem.
       
      Segue o código da formula para colocar os ponto e virgula para vocês darem uma olhada e ver se tem erros...
       
      --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
      Public Shared Sub Moeda(ByRef txt As TextBox)         Dim n As String = String.Empty         Dim v As Double = 0         Try             n = txt.Text.Replace(",", "").Replace(".", "")             If n.Equals("") Then n = ""             n = n.PadLeft(3, "0")             If n.Length > 3 And n.Substring(0, 1) = "0" Then n = n.Substring(1, n.Length - 1)             v = Convert.ToString(n) / 100             txt.Text = String.Format("{0:C2}", v)             txt.SelectionStart = txt.Text.Length         Catch ex As Exception         End Try     End Sub     Private Sub valortxt_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles valortxt.KeyPress         Select Case (valortxt.TextLength)             Case 4                 valortxt.SelectionStart = 5         End Select     End Sub     Private Sub valortxt_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles valortxt.TextChanged         Atendimentos.Moeda(valortxt)     End Sub ------------------------------------------------------------------------------------------------------------------------------------------------------------
    • Por Roberto Paes
      System.Diagnostics.Process process = new System.Diagnostics.Process(); System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(); startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; startInfo.FileName = "cmd.exe"; startInfo.Arguments = "/C start copy " + Application.StartupPath + @"\launcher\Sanchez.Patcher.exe " + Application.StartupPath; process.StartInfo = startInfo; process.Start(); Oi pessoal, Boa noite. Me chamo Roberto e estou tendo problemas em usar o cmd com o c#. O meu código funciona perfeitamente, mas eu não consigo ocultar a janela do cmd. Bom, apresentado o meu problema. Espero que possam me ajudar.
       
       
    • Por felipegon02
      Gostaria da ajuda de vocês membros, estou fazendo um projeto que é pro meu TCC utilizando o MYSQL  e o Visual Basic, neste projeto queria fazer agendamento de clientes, mas para isso, queria comparar o horário selecionado pelo cliente com o banco de dados, para ver se o horário está disponível mas não sei com fazer isso. Obrigado 
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.