Ir para conteúdo
Fórum Script Brasil
  • 0

Caixa de texto


oreste.jr

Pergunta

Será que os companheiros poderiam me ajudar?

Meu formulário coleta registros de algumas tab e os cadastram em uma tab "teste". Esses registros correspondem ao código do registro selecionado na minha combo. Esses lançamentos podem variar de 1 a100%. Quero saber como criar uma fórmula numa caixa de texto no meu form de cadastro que some os valores cadastrados anteriomente no campo da tb teste referente a este registro selecionado. Seria uma ref. para eu saber quanto poderia lançar: 0% (nada foi lançado) ou... 100% (concluído).

Tabém vou precisar criar uma no meu relatório com um critério data.

Grato.

Vou tentar esclarecer:

Escolho na minha combo o cód. e concequentemente seus dados nas respectivas txt.:

cod(1.1.1), X, Y, Z, Percentual (=10%) - primeiro cadastro

cod(1.1.1, X, Y, Z, Percentual (=30%) - segundo cadastro - Minha txt "Acumulado anterior" = 10%

cod(1.1.1, X, Y, Z, Percentual (=60%) - terceiro cadastro - Minha txt "Acumulado anterior" = 40%

cod. X, Y, Z, Percentual (=10%- não poderia,pois) - quarto cadastro - Minha txt "Acumulado anterior" = 100%

"Acumulado anterior" seria uma uma soma do meu cód. 1.1.1 e assim para os demais selecionados.

Pensei até numa condição que impedice o cadastro caso a soma já tivesse atingido os 100%.

Isto é possível ou existe uma forma mais sensata para resolver o assunto.

Grato

Editado por oreste.jr
Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

acredito que entendi..

você pode criar uma consulta a parte pra ter a soma do valor desse campo, inclusive separando por referencia ou codigo.

então no formulario, você usa a funcao dlookup pra resgatar a soma da consulta num evento apos atualizar da combo.

dlookup(VALOR;FONTE;CRITERIO)

dlookup("[CAMPO_DA_CONSULTA_COM_A_SOMA]";"NOME_DA_CONSULTA";"[CAMPO_CODIGO_DA_CONSULTA] = '" & Me.CAMPO_DA_COMBO_DO_FORM & "'")
e pode utilizar condições tb
RES = dlookup("[CAMPO_DA_CONSULTA_COM_A_SOMA]";"NOME_DA_CONSULTA";"[CAMPO_CODIGO_DA_CONSULTA] = '" & Me.CAMPO_DA_COMBO_DO_FORM & "'")

If RES = > 100 Then
    Msgbox "Este código já alcançou 100%"
End If

Editado por Humm
Link para o comentário
Compartilhar em outros sites

  • 0

Sr. Humm, ainda não pude usar o (dlookup) que me enviaste pois, somar uma coluna está sendo mais um desafio.

Após horas navegando no Forum descobri que uma das formas ou não sei se a única, é usando um sql.

Olha o que fiz:

SELECT Sum(AVANCO) AS ACUMULADO

FROM testeCs

WHERE ETA1='"&ETA1&"';

AVANCO - É o campo da minha consuta testeCS que recebe os valores das minhas etapas (ETA) 10%, 15%...

ACUMULADO - É o campo da minha consulta AVANCOCs que vai receber a soma dos AVANCO's da testeCs.

ETA1 - É o código das etapas (ETA)- 1.1.1.1, 1.1.1.2 e assim por diante.

O problema: com o código acima, minha consulta no modo folha de dados só apresenta o campo ACUMULADA e sem valores.

No modo estrutura ele também apresenta o campo ETA1, só que se marcar para ele aparecer, da erro.

Poderia me ajudar com esse sql para que possa utilizar o cód. que me indicaste?

Eu só quero que ele forme uma consulta com os campos: ETA1 e ACUMULADO.

Grato.

Link para o comentário
Compartilhar em outros sites

  • 0

crie uma consulta.

nela, adicione a tabela que contem os campos de dados AVANCO e ETA

na consulta, marque a opcoes EXIBIR TOTAIS

adicione o campo ETA e em totais, use AGRUPADO POR

adicione o campo AVANCO e em totais, escolha SOMA

execute a consulta e verifique se retorna dados.

se retornar, o que acredito que sim, então va na consulta novamente, e com o formulario já previamente aberto em modo design ou estrutura.

va no campo criterio de ETA e clique com o direito do mouse e em CONSTRUIR

na janela do construtor, va em formularios, forms abertos, selecione o seu form que tem o campo combo, depois na coluna do meio, selecione LISTA DE CAMPOS, e na ultima o seu combo e de OK

pronto, sua consulta está criada e filtra dados de acordo com o combo do form, trazendo o total de AVANCO

Link para o comentário
Compartilhar em outros sites

  • 0

Sr. Humm, a sua orientação para a criação da consulta foi perfeita.

Agora tentando usar o DLookup exibe a seguinte mensagem:

Erro de compilação

Era esperado: Separador de lista ou)

olha o código:

Private Sub eACUMAT_AfterUpdate()

RES = DLookup("[AVANCO]";"CsACUMAT";"[ETA1] = '" & Me.ETA1 & "'")

If RES >= 100 Then

MsgBox "Este código já alcançou 100%"

End Sub

Se eu coloco (;) aprece a mensagem, se coloco (,) a mensagem desaparece, porém a txt eACUMATE não retorna valor.

Obs: o procedimento foi criado em "após atualizar".

E agora sr Humm? comop proceder?

Aguardo sua orientação.

Grato.

Link para o comentário
Compartilhar em outros sites

  • 0

esqueci.. quando for em codigo, usa-se "," virgula ao invés de ";"

tb esqueci que tem q declarar a variavel

teste assim

a.. s ua consulta já filtra pelo ETA1 sozinha, então tecnicamente o criterio do dlookup não é necessario

teste tb

DIM RES as String
RES = RES = DLookup("[AVANCO]";"CsACUMAT";"[ETA1] = '" & Me.ETA1 & "'")

If RES = > 100 Then
    Msgbox "Este código já alcançou 100%"
End If
DIM RES as String
RES = RES = DLookup("[AVANCO]";"CsACUMAT")

If RES = > 100 Then
    Msgbox "Este código já alcançou 100%"
End If

Link para o comentário
Compartilhar em outros sites

  • 0

Sr Humm, acho que questou prestes a finalizar mais uma lição. Agora só me falta aplicar um evento condicionado minha caixa a me alertar sobre o percentual quando esta já estiver completado. Se ficar difícil eu lhe atento ok?

Vou deixar aqui os procedimentos elaborados, com a sua ajuda, para que algum outro companheiro do fórum possa usufruir destas informações.

Obs: eu não consegui utilizar o último código por ti enciado. Utilizei do Dlookup do procedimento da combo eETA1.

Dê uma olhada:

Qualquer comentário ou crítica, fique a vontade.

Muito obrigado e até breve.

______________________________________________________________________________________________________________

Option Compare Database

______________________________________________________________________________________________________________

Private Sub Comando27_Click()

Dim db As DAO.Database, Rs As DAO.Recordset

Set db = CurrentDb()

'AQUI VEM A TABELA QUE RECEBE DADOS DO FORM

Set Rs = db.OpenRecordset("teste")

'AQUI O COMANDO QUE CRIA UM NOVO REGISTRO NESSA TABELA

Rs.AddNew

'AQUI O COMANDO QUE VAI COPIAR OS DADOS DO FORM NA TABELA, USE UM Rs PARA CADA CAMPO

Rs("F1") = Me.eF1

Rs("CP_FASE") = Me.eCP_FASE

Rs("SUB1") = Me.eSUB1

Rs("CP_SUB") = Me.eCP_SUB

Rs("AGRUP1") = Me.eAGRUP1

Rs("CP_AGRUP") = Me.ECP_AGRUP

Rs("COMP1") = Me.eCOMP1

Rs("CP_COMP") = Me.eCP_COMP

Rs("ETA1") = Me.eETA1

Rs("CP_ETA") = Me.eCP_ETA

Rs("UNID5") = Me.eUNID

Rs("VALOR5") = Me.eVALOR

Rs("DATA5") = Me.eDATA

Rs("AVANCO") = Me.eAVANCO

Rs("VALORTOT") = Me.eVALORTOT

'AQUI O COMANDO QUE SALVA A TABELA

Rs.Update

End Sub

______________________________________________________________________________________________________________________

Private Sub eETA1_AfterUpdate()

'Este comando coleta dados de campos de várias tabelas e preenche as caixas de testo segundo o registro da combo (eETA1)

Me.eCP_ETA = DLookup("[CP_ETA]", "Csetapa", "[ETA1] = '" & Me.eETA1 & "'")

Me.eUNID = DLookup("[uNID]", "Csetapa", "[ETA1] = '" & Me.eETA1 & "'")

Me.eVALOR = DLookup("[VALOR5]", "Csetapa", "[ETA1] = '" & Me.eETA1 & "'")

Me.eF1 = DLookup("[F1]", "Csetapa", "[ETA1] = '" & Me.eETA1 & "'")

Me.eCP_FASE = DLookup("[CP_FASE]", "Csetapa", "[ETA1] = '" & Me.eETA1 & "'")

Me.eSUB1 = DLookup("[sUB1]", "Csetapa", "[ETA1] = '" & Me.eETA1 & "'")

Me.eCP_SUB = DLookup("[CP_SUB]", "Csetapa", "[ETA1] = '" & Me.eETA1 & "'")

Me.eAGRUP1 = DLookup("[AGRUP1]", "Csetapa", "[ETA1] = '" & Me.eETA1 & "'")

Me.ECP_AGRUP = DLookup("[CP_AGRUP]", "Csetapa", "[ETA1] = '" & Me.eETA1 & "'")

Me.eCOMP1 = DLookup("[COMP1]", "Csetapa", "[ETA1] = '" & Me.eETA1 & "'")

Me.eCP_COMP = DLookup("[CP_COMP]", "Csetapa", "[ETA1] = '" & Me.eETA1 & "'")

Me.eACUMAT = DLookup("[somaDeAVANCO]", "CsACUMAT", "[ETA1] = '" & Me.eETA1 & "'")

End Sub

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...