MrMALJ
Moderadores-
Total de itens
2.152 -
Registro em
-
Última visita
Tudo que MrMALJ postou
-
Utilize a busca do forum e procure por dlookup, aqui no forum tem vários tópicos e exemplos com esse assunto!
-
Ok mande para mrmalj@gmail.com que dou uma olhadinha pra você!
-
O que está faltando é você definir um nível de acesso aos usuários e liberar procedimentos aos usuários conforme seus níveis, por exemplo suponha que a pessoa tecle no botão que abre o formulário de usuários, antes de executar a ação de abrir o form você verifica o status de quem está tentando acessar e só executa a ação se for por exemplo um administrador, acho que o mesmo tópico que passei na sua duvida anterior pode lhe dar uma ideia de como fazer isso.
-
Dá uma olhada no link abaixo talvez lhe ajude http://scriptbrasil.com.br/forum/index.php?showtopic=100675 Confirme se deu certo ok!
-
Atribuir Fonte De Controle A Um Objeto Não-acoplado
pergunta respondeu ao Elber Carretoni de MrMALJ em Access
Fera dei uma pesquisada e achei essa função que preenche essa lista, acho que se você adaptar pode usar pra isso que você quer. Function PreencheLista(ctl As Control, varID As Variant, _ lngRow As Long, lngCol As Long, intCode As Integer) As Variant ' Argumentos: ' ctl - refere-se à listbox ou combobox sendo preenchida; ' varID - valor único que identifica o controle sendo preenchido. ' lngRow - nº da linha que está sendo preenchida (começa em zero); ' lngCol - nº da coluna que está sendo preenchida (começa em zero); e ' intCode - é a "pergunta" que o Access faz à função. O valor de intCode ' indica qual ação será executada pela função. On Error GoTo PreencheLista_Err Dim varRet As Variant ' recebe o valor de retorno da função (Variant). Dim I As Integer ' serve de contador. Static varNome() As Variant 'cria uma matriz dinâmica que guarda valores. Static intReg As Integer Select Case intCode Case acLBInitialize ' intCode = 0 - inicializa o controle. Dim Rs1 As Recordset Set Rs1 = CurrentDb.OpenRecordset("Clientes", dbOpenSnapshot) With Rs1 If Not .EOF Then .MoveLast 'necessário para RecordCount. intReg = .RecordCount 'Redimensiona a matriz conforme nº de registros de Rs1. ReDim varNome(intReg, 2) '3 dimensões. .MoveFirst For I = 0 To intReg - 1 varNome(I, 0) = !CódigoDoCliente varNome(I, 1) = !NomeDaEmpresa varNome(I, 2) = !Cidade .MoveNext Next I End With Set Rs1 = Nothing 'libera memória. varRet = True Case acLBOpen ' intCode = 1 - abre. varRet = Timer ' Gera valor exclusivo baseado na função Timer. Case 2 ' intCode = 2 - este código não é documentado. Case acLBGetRowCount ' intCode = 3 - obtém nº de linhas. varRet = -1 ' valor desconhecido. O Access irá descobrir o nº de linhas. Case acLBGetColumnCount ' intCode = 4 - obtém nº de colunas. 'Podemos definir na folha de propriedades do controle 'ou especificar um valor aqui. varRet = 3 Case acLBGetColumnWidth ' intCode = 5 - obtém a largura da coluna. 'Podemos definir na folha de propriedades do controle. 'Especifique um valor aqui ou pule esta opção. varRet = -1 ' Utiliza a largura definida em propriedades. Case acLBGetValue ' intCode = 6 - obtém os dados para o controle. varRet = varNome(lngRow, lngCol) Case acLBGetFormat ' intCode = 7 - formato a ser usado. 'Pule esta opção ou defina varRet = -1 para o valor padrão. Case acLBClose ' intCode = 8 - não usado. 'Seu uso não é documentado. Case acLBEnd ' intCode = 9 - Fim. 'Não retorna nada. Usado quando você fecha o form ou dá um 'Requery no controle. Aqui você poderá colocar código para 'liberar memória (limpar variáveis etc). Erase varNome() End Select PreencheLista = varRet Exit Function PreencheLista_Err: MsgBox "Erro " & Err.Number & vbCrLf & Err.Description, _ vbExclamation, "Função: PreencheLista" End Function O nome da função é inserido na propriedade Tipo de origem da linha (RowSourceType) da combo box sem ser precedido por um sinal de igualdade (=) e sem terminar com parênteses. Escreva assim: PreencheLista Fonte: JR´s Access FAQ -
Bom o argumento do Elber me convenceu bom fiz um exemplozinho bem básico e simples, o que fiz ali é o seguinte tem um campo não acoplado no subform calculando o total então quando não digito nada no campo descrição ele tranfere o valor para o campo total da tabela principal, deixei tudo visivel só pra efeito de comparação, mais na hora de executar acho que é melhor o total principal não ficar visivel. O exemplo é bem rústico mais vou deixando ai, de repente alguém se anima e até faz um melhor! tst.zip
-
ummmm, entendi e achei interessante a ideia, vou ver se consigo bolar algo e se conseguir posto pra você, claro que se você conseguir antes espero disponibilize pra nós....
-
Fera já que sua tabela utiliza mais de uma NF de numeração igual, eu sugiro que crie um campo a mais do tipo autonumeração e utilize-o como chave primária então sempre que precisar somar não some pelo numero da nota e sim filtrando por esse numero!
-
O que o Humm postou está correto, também não vejo porque criar um total no form principal
-
Ummm entendi, bom realmente o que eu sabia era até ai, e na verdade vi isso a um tempo atrás só por curiosidade e nem cheguei a usar, a hora que ele pega é a hora do computador mesmo, então não achei vantagem colocar um relogio nos sistemas já que o relógio do windows tá sempre ali ... Bom espero que consiga uma solução.
-
ummmm, bem utilize a propriedade de evento "No cronometro" do próprio formulário para fazer a atualização do relógio, e ajuste a propriedade intervalo do cornometro para 1000 (isso dá 1 segundo), eu testei aqui aqui e não tive problemas.
-
Bom basta que antes de chegar ao seu campo você mude o foco para o objeto seguinte, você compara o seu conteúdo e se estiver vazio você move o foco para a caixa de texto ou outro objeto posterior veja o exemplo (ainda utilizando como base as nomenclatura adotada anteriormente) utilizando o procedimento de evento "após atualizar" do objeto antes do campo1: if not isnull(me.campo1) or me.campo1="" then me.proximoCampo.setfocus end if Bom dessa forma casa se precisa fazer alguma alteração no campo a pessoa só precisará clicar no campo, mais caso não deseje mais deixar executar alteração coloque esse código na propriedade de evento "ao receber foco" do campo1.
-
Fera talvez o conteúdo do link abaixo lhe ajude. http://accessjr.brinkster.net/detalhe.asp?...p;search=bloque
-
Ummmm já tentou bloquear o controle do relógio?
-
Bom até onde utilizei esse tipo de consulta sempre ocorreu essa mensagem, o que fiz foi confirmar e nunca perdi registros nessa transferência.
-
Suponhamos que esses dois campos que deseje preservar os dados digitados no registro atual para o proximo se chamem campo1 e campo2, e que as caixas de texto não acopladas que iremos utilizar para armazenar seje txt1 e txt2, o que iremos fazer sempre fazer com que o campo do registro atual preencha o próximo, então a vamos utilizar as propriedade de eventos de campo1 e campo2, no caso "ao receber foco" e "após atualizar): em "ao receber foco" iremos primeiro verificar se o campo já tem conteúdo se tiver não iremos preenche-lo: if isnull(me.campo1) or me.campo1="" then me.campo1.value=me.txt1 end if em "após atualizar" iremos repassar a caixa de texto não acoplada o conteúdo que acabamos de digitar: me.txt1.value=me.campo1 Bom da mesma forma que fiz pra campo1 e txt1, basta fazer com campo2 e txt2... Espero que resolva, confirme!
-
O que você quer dizer com "criar virtualmente"?
-
Ummmm... bom posso sugerir que você crie 2 caixas de textos não acopladas e ocultas para guardarem sempre o último conteúdo desses campos então nos novos registros você só repassa esses valores, ou então você pode utilizar variáveis globais... Espero que resolva pra você, confirme para nós!
-
Fera dá uma lida no conteúdo do link abaixo talvez lhe ajude e/ou esclareça algo. http://accessjr.brinkster.net/detalhe.asp?...arch=autonumera
-
Insira um "Objeto de Imagem" não acoplado e faça um código semelhante ao que segue na propriedade de evento "Ao Imprimir" ou "Ao Formatar" da seção onde você selecionar colocar essa imagem Me.seuControleImagem.Picture = "C:\seuCaminho\suaImagem" Acho que resolverá!
-
Fera agradeço por postar a sua solução para a nossa comunidade! Valeu!
-
Acho que você deve tirar essa linha da propriedade "Origem do controle" da sua caixa de texto e utilizar algo parecido com a linha abaixo nas propriedades "Ao Imprimir" e a "Ao formatar" da seção do seu relatório onde está o campo: if sum(nz(me.receitabrl)<>0 then me.seuCampo=Sum(me.ReceitaBRL)-Sum(me.CustoEtapaBRL)/Sum(me.ReceitaBRL) else me.seuCampo=0 end if Dê retorno se resolveu o seu problema!
-
Fera finalmente a internet aqui ficou normal e vou poder upar o exsemplo mesmo que você já tenha solucionado, afinal outro usuário pode precisar... TST.zip
-
Bom que você tenha encontrado essa função pronta e postado pra gente, eu tinha pensando tambem em fazer algo parecido, mais agora não precisarei bater cabeça. vlw
-
Fera entre em contato com o administrador da rede e veja que nível de acesso e permissão tem seu usuário e tente pedir para ele aumentar seu nivel de acesso pelo menos local.