Jump to content
Fórum Script Brasil
  • 0

ajuda - controle de caixa


Bellebs

Question

Olá, bom dia ^^

Gostaria de uma ajuda referente ao meu projeto; estou com um problema sobre o controle de caixa.

O funcionamento é o seguinte:

Quando o valor do suprimento de caixa é cadastrado é exibido no formulário de controle de caixa o valor referente ao suprimento e quando é cadastrado novamente, é somado o valor já existente; para entender melhor esse funcionamento, tem a imagem do programa abaixo:

57001779.png

O código do botão "Confirmar" é esse:

Dim acum, ent As Integer

Dim data As String
Dim hora As String

data = Date
hora = Time

de.rscaixa.AddNew
de.rscaixa.Fields("valor").Value = FormatCurrency(txtval.Text)
de.rscaixa.Fields("forma").Value = cbofor.Text
de.rscaixa.Fields("historico").Value = txthist.Text
de.rscaixa.Fields("data").Value = data
de.rscaixa.Fields("hora").Value = hora
de.rscaixa.Update
acum = de.rscaixa.Fields("valor")
ent = acum + ent
frmconcaix.txtent = ent
txtval.Text = ""
cbofor.Text = ""
MsgBox "Suprimento de Caixa Cadastrado com Sucesso!", vbInformation, "Suprimento de Caixa"

End Sub

Essa é a outra tela do programa:

imagemwn.png

Obs.: O visual Basic é versão 6; o banco de dados é feito em Access 2002 (XP)

Obrigada ^^

Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 0

Bem, pelo que entendí você tem de fazer um SELECT do campo para pegar o valor já salvo...

Jogar este valor numa variável...

depois somar o valor digitado na Caixa de Texto "Valor" ao da variável...

e então salvar no BD (Banco de Dados)...

Detalhes...

se os valores são numeros com decimais, o melhor é usar o Tipo "Double"...pois "Integer" é Inteiro, logo se ele receber um valor como "35,40" ele arredonda para "35"...

Lí certa vez que não é bom declarar variáveis dessa maneira:

Dim acum, ent As Integer
Pois o VB vai entender que "acum" é do Tipo "Variant", e só o "ent" é "Integer"... o correto seria:
Dim acum As Integer, ent As Integer

Outro detalhe é que você não especificou qual o verdadeiro problema...apenas citou como deveria funcionar... ;)

Link to comment
Share on other sites

  • 0

me desculpe, referente àquele formulário o valor inicialmente aparece mas quando eu cadastro de novo ele não soma mas substitui o antigo valor pelo novo e quando o formulário e fechado e reaberto o valor desaparece.

Edited by Bellebs
Link to comment
Share on other sites

  • 0

Esse valor é salvo no BD, certo...então, para ele ser visualizado de inicio, tem de fazer um SELECT desse campo do BD que armazena esse valor...tipo assim:

Dim sql As String                   '<= Variavel tipo String
Dim RecSet As New ADODB.Recordset   '<= Meu RecordSet ADO
Dim ObCon As New ADODB.Connection   '<= Meu Objeto de Conexão ADO
                              ' Minha String de Conexão
ObCon.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\BaseDados.mdb;Persist Security Info=False"
ObCon.Open             '<= Abrindo a conexão com o BD


sql = "SELECT Nome FROM Clientes WHERE ID=26"    '<= Comando SQL que vai pegar o valor...

Set RecSet = ObCon.Execute(sql)   '<=  Configurando o RecordSet com o comando SQL

MsgBox RecSet!Nome  '<= Apresentando o valor que foi pego no BD

ObCon.Close         '<= Fechando a conexão

Isso aí é só um exemplo...ou seja, peguei "um" valor (o "Nome") de certo campo do banco (Campo "Nome" da Tabela "Clientes") pelo valor do "ID" (outro campo do BD).

você pode fazer isso só para inicialmente carregar seu Valor inicial na caixa de texto...

e depois fazer a atualização desse campo com o valor de antes somado com o valor digitado... isso já seria uma "EDIÇÃO" do campo, e teria que usar um comando SQL do tipo: "UPDATE tabela SET campo=resultado_da_soma"...

e depois teria de fazer novo "SELECT" do campo para mostrar o novo valor...

explicando é meio complicado...vou bolar um exemplo e posto depois...mas é bom ir tentando...

sem falar que não sei como está seu script :D

Até ! Legal.gif

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652.1k
×
×
  • Create New...