Humm
Membros-
Total de itens
570 -
Registro em
-
Última visita
Tudo que Humm postou
-
uma forma de ocultar valores iguais, é usar a consulta no modo totalizacao e mandar agrupar os campos
-
amigo, é impossivel um programa advinhar quantos caracteres tem antes e depois do @ seria como se querer inventar uma mascara para um campo onde você digira NOME não se usa mascara de entrada em campos de email no maximo, usa-se um codigo de validacao pra saber se o que foi digitado preenche uma regra minima por ex: uma validacao que verifique se o q foi digitado tem @, depois pelo menos um ponto "." beleza?
-
é possivel sim.. você tera q usar eventos de rotinas vba por exemplo.. você tem botoes ou comboboxs(caixas de selecionas opcoes) você tem q abrir a propriedade dessa combobox e selecionar PROCEDIMENTO DE EVENTO na propriedade APOS ATUALIZAR feito isso, clique no botao ao lado "..." para abrir a janela VBA lá você criará a rotina a ser executada quando você atualizar essa combobox por ex: Private Sub SUAcombobox_AfterUpdate() 'aqui vem a rotina. ME significa a janela de onde veio a chamada da rotina 'essa rotina copia o conteudo da coluna 1 da combobox e cola no campotexto Me.seuCAMPOtexto = Me.SUAcombobox.Column(1) End Sub esse foi um exemplo. existem mil maneiras de capturar dados. você pode usar consultas, dlookup, criar recordsets, etc Private Sub SUAcombobox_AfterUpdate() Me.seuCAMPOtexto = dlookup("[campoQUEcontemOSdados]", "TABELAouCONSULTAdoCAMPO") End Sub lembrando que dlookup você pode usar um criterio no final para filtrar um registro especifico. dlookup(campo; fonte; criterio) faça um estudo sobre esses q te passei e já vai encontrar muitas solucoes.
-
pelo visto não existe essa opção mesmo, mas achei um codigo interessante pra resetar o tamanho toda vez q é alterado. Option Compare Database Dim intCurrentWidth(NumberOfFields-1) As Integer Private Sub Form_Load() intCurrentWidth(0) = Me!FirstFieldname.ColumnWidth intCurrentWidth(1) = Me!SecondFieldName.ColumnWidth etc. End Sub Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) If Me!FirstFieldName.ColumnWidth <> intCurrentWidth(0) Then Me!FirstFieldName.ColumnWidth = intCurrentWidth(0) End If If Me!SecondFieldName.ColumnWidth <> intCurrentWidth(1) Then Me!SecondFieldName.ColumnWidth = intCurrentWidth(1) End If etc, with one if . . then . . end if statement for each field. End Sub embora acho que de para criar uma funcao, que ao invés de especificar cada controle, uma rotina que pegue toda a colecao de controles do form em questao. acho que com comandos with, do e loop
-
quando trabalhamos com valores em moeda, é necessario que todos os campos de moeda de todas as tabelas do seu projeto estejam com o TIPO DE DADOS: UNIDADE MONETARIA veja bem, não é a formatacao nos formularios, e sim nas tabelas, tem q estar todos como UNIDADE MONETARIA. já os controles dos formularios, utilize unidade monetaria no formato de exibição. veja se isso resolve
-
já dei uma fuçada e não achei.. onde eu ajusto que não pode alterar o tamanho das colunas em um form datasheet ?
-
fiz um progresso.. descobri q funciona se, ao invés de colocar o LIKE no valor se verdadeiro, já deixa ele antes do seimed exemplo: LIKE seimed(compara;valor se true;valor se false)
-
eu entendi o que você quis dizer.. se eu uso LIKE dentro do seimed, mesmo que seja na parte "valor se verdadeiro", a função não vai retornar pra dentro do criterio da consulta o LIKE. pois ele vai achar que eu estou tentando obter um resultado dentro do "valor se verdadeiro" ao invés de trazer o LIKE como resultado. ou seja, no exemplo: seimed(comparação;1 + 1;1 + 2) ao invés dele trazer os dados "1 + 1", ele vai executar a conta ainda dentro dele e vai trazer "2" eu já tentei usar "C" ou "D" na condição e não funcionou. o grande segredo é descobrir de que forma fazer o seimed interpretar o "valor se verdadeiro" como uma variavel ao invés de uma expressão a executar ainda dentro dele, e retornar a string completa, mas sem aspas nos operadores. tem ideia? o uso de ' não seria pra isso?
-
mas pense comigo.. a sintaxe é: seimed(comparação;valor se verdadeiro;valor se falso) nesse caso, o like não é pro seimed, e sim um resultado do valor se verdadeiro.. quero q o seimed retorne o "LIKE" saca?
-
é simples.. quero usar seimed no criterio da consulta como sempre usei, mas to me deparando com um problema esquisito. se eu uso condicoes simples, funciona.. exemplo: SeImed([Formulários]![CONTAS_MOVIMENTO]![SCD]="C";"C";"D") agora se eu coloco uma condição resultado "LIKE" "OU" "ENTRE" e até curinga LIKE "*" ele não aceita. simplesmente não retorna valor algum. SeImed([Formulários]![CONTAS_MOVIMENTO]![SCD]="C";LIKE "C" OU "D";"D") nesse exemplo, o seimed era pra retornar no criterio da consulda LIKE "C" OU "D". testando apenas LIKE "C" OU "D" funciona, mas se eu por isso dentro do seimed, não funciona. alguém sabe o por que disso?
-
no caso não é necessario usar vba. use consultas. crie uma consulta entradas_data que some todas as entradas com agrupamento por data. crie outra consulta saidas_data que some todas as saidas, com agrupamento por data. por fim crie uma consulta saldo_data que tenha como base as duas consultas acima com o campo data relacionados. e ai crie um campo calculado na consulta saldo: [entrada] - [saida] selecione mais um campo data de qualquer uma das consultas e pronto.
-
eu evito utilizar o formato % quando quero que apareça o simbolo % eu faço o seguinte: =[campo com o valor] & " %" experimente isso ao invés de usar o formato %
-
então camarada.. mesmo o bd já estando pronto, você pode mudar isso. é so você criar uma tabela para as entradas de estoque, e lançar a primeira entrada com o total que já tem.. dai por diante, o sistema faz sozinho da forma que falei, independente de quantos registros ou tabelas seu sistema já tenha.. vai por mim, usar um campo para armazenar saldo sempre da errado.. pois um dia seu aplicativo pode dar pau e você perder o saldo que tinha.
-
se você tiver datas de entrada e datas de saida, é perfeitamente possivel saber o saldo individual por dia..
-
crie checkboxs no form e nomeie cada uma delas então, use If's para cada uma checkbox ex: if form!checkbox1 = true then relatorio.textovisible = true else relatorio.textovisible = false end if
-
(Resolvido) Solicitar cadastro se não constar na tabela
pergunta respondeu ao Marcos Araçoiaba de Humm em Access
esse codigo apenas pergunta se quer cadastrar.. ele não verifica se está cadastrada. primeiro você tem que escolher um campo que será aquele que vai servir de indice de procura. pode ser o CNPJ pois é unico para cada empresa. então, no evento após atualizar do campo, use um codigo: dim vCNPJ as interger vCNPJ = me.CNPJ If IsNull(Dlookup("[CNPJ]", "TABELA_DE_CLIENTES", "[CNPJ] =" & vCNPJ) then If MsgBox("Empresa Não cadastrada." & vbnewline & "Deseja Cadastrar?", vbYesNo, "Pergunta") = vbyes Then DoCmd.OpenForm "nome do formulário", , , , acFormAdd, acDialog me.CNPJ = vCNPJ End If end if -
nos meus sistemas de estoque, faço o seguinte: uma tabela para entradas.. ou seja, registro cada entrada no estoque incluive com data, assim mantendo um historico do que foi entrado. uma tabela de saida, ou a propria de vendas, depende do caso. então crio uma consulta que soma o total que entrou, e outra que somo o total que saiu. por fim, crio uma que exibe a diferença entre os totais, sendo a posicao de estoque atual. acredito ser o metodo mais confiavel e consistente.
-
use os operadores no criterio para fazer a comparação: campo = campo campo > campo campo < campo campo =< campo campo => campo
-
na fonte de dados sobre os pagamentos, crie um campo controle onde informa se foi pago ou não. depois é so você criar uma consulta, usando um criterio no campo da data para filtrar registros com data apos hoje e outro criterio no campo [pagou] para filtrar somente o que não esta marcado como paga. um exemplo da minha consulta SELECT CLIENTES.Matr AS Matrícula, CLIENTES.[RS] AS Aluno, FORMAS_PGTO.FORMA AS Forma, PGTOS.BOLETO AS Boleto, PGTOS.BCO AS Bco, PGTOS.AG AS Ag, PGTOS.CC, PGTOS.CHEQUE AS Cheque, PGTOS.DATA AS Data, PGTOS.VALORP AS Valor, PGTOS.ALINEA AS Alínea, PGTOS.DATA_MOV AS Em, PGTOS.PGTO_OK AS Pago FROM CLIENTES INNER JOIN (FORMAS_PGTO INNER JOIN PGTOS ON FORMAS_PGTO.COD_FORMA=PGTOS.FORMA) ON CLIENTES.Matr=PGTOS.COD_FILHO WHERE (((PGTOS.DATA)<Date()) AND ((PGTOS.PGTO_OK)=False) AND ((FORMAS_PGTO.TIPO)="à vencer")) ORDER BY CLIENTES.[RS], PGTOS.DATA;
-
ah sim, se você ta usando o access 2007... va nas opcoes do access e escolha o modo "janelas sobrepostas" senao ele fica abrindo como guias
-
este form é aberto por codigo vba ? se for, verifique as opcoes de abertura.
-
e ai MrMalJ.. ontem resolvi mexer nisso novamente.. e saiu a solucao hehe =SeImed(IsError([up]);"";VALOR SE não É ERRO) com o ÉERRO não pega.. mas com IsError([CAMPO]) pegou solucionado!
-
use a classificacao na consulta que da origem ao subformulario
-
ao invés de usar forms diferentes para cada nivel de usuario, você pode criar rotinas em "AO CARREGAR" de um formulario so, onde você altera as propriedades como ENTRADA DE DADOS, PODE EXCLUIR, PODE ADD, etc e tal. é assim que eu faço.. veja como uso: 'Checagem de Nivel de Usuário CHECK_USER: Dim NIVEL As String NIVEL = DLookup("[NIVEL]", "USUARIOS", "[USER] ='" & Forms!LOGIN![USER] & "'") If NIVEL = 1 Then Me.AllowAdditions = False Me.AllowEdits = False Me.AllowDeletions = False Me.Excluir___.Visible = False ElseIf NIVEL = 2 Then Me.AllowAdditions = True Me.AllowEdits = False Me.AllowDeletions = False Me.Excluir___.Visible = False ElseIf NIVEL = 3 Then Me.AllowAdditions = True Me.AllowEdits = True Me.AllowDeletions = True Me.Excluir___.Visible = True ElseIf NIVEL = 4 Then Me.AllowAdditions = True Me.AllowEdits = True Me.AllowDeletions = True Me.Excluir___.Visible = True ElseIf NIVEL = 5 Then Me.AllowAdditions = True Me.AllowEdits = True Me.AllowDeletions = True Me.Excluir___.Visible = True End If
-
bom, a ideia mais dinamica é usar apenas uma tabela. o proprio campo CIDADE já faz um filtro separando os registros de cada cidade cadastrada. para preencher o campo CIDADE você tem duas opcoes: - consulta modo atualizacao ou - opcao localizar e substituir do menu editar para remover os registros com campos em branco: abra a tabela, mande organizar pelo campo em branco, selecione-os e delete-os eu, faria o seguinte. uniria as tabelas em uma so, já com o campo cidade atualizado. so tem que verificar se esse campo IDENTIFICACAO é ID de cliente. pois ai as tabelas vao ter IDs iguais para clientes diferentes. verifique isso.