Ir para conteúdo
Fórum Script Brasil

Humm

Membros
  • Total de itens

    570
  • Registro em

  • Última visita

Tudo que Humm postou

  1. Humm

    sistema muito pesado

    velho.. to me baseando por isso aqui.. http://www.jrfaq.com/default.asp?http%3A//...ergunta_Id%3D25 sei que o dlookup é pratico, mas é a tal da função agregada.. como diz ali, reduz o desempenho de consultas.. e eu tenho alguns forms com muitas dlookups pra retornar diversos resultados calculados de outras tabelas relacionadas saca? abraços
  2. muito bem,.. fiz assim Private Sub ref_BeforeUpdate(Cancel As Integer) Dim Db As DAO.Database, Rs As Recordset, Sql As String Set Db = CurrentDb Set Rs = Db.OpenRecordset("SELECT tabela3.valoru, tabela3.referencia FROM " _ & "Tabela3 WHERE tabela3.referencia = [Forms]![form1]![Tabela2 subformulário]" _ & ".[Form]![ref]") Me.valoru = Rs.Fields(0) End Sub acontece que ta retornando um erro muito esquisito.. não faço ideia deste erro.. já ate tentei ao invez do sql, colocar o nome da consulta pré criada, mas da o mesmo erro. alguém sabe do que se trata? abraços EDIT: Consegui!! Private Sub ref_beforeUpdate(Cancel As Integer) Dim Db As DAO.Database, Rs As DAO.Recordset, Sql As String Set Db = CurrentDb pref = Me.ref Set Rs = Db.OpenRecordset("SELECT * FROM Tabela3 WHERE referencia =" & pref) Me.valoru = Rs.Fields(2) Set Db = Nothing Set Rs = Nothing End Sub faltava o DAO. antes do Recordset tb. além do mais, ao invez de forms!blablabla usei uma variavel. abraços
  3. Faz o seguinte: Dim Db As Database, Rs As Recordset, Sql As String Set Db = CurrentDb Set Rs = Db.OpenRecordset("CONSULTA SQL") Me.valorunitário = Rs.Fields(COLUNA) *O valor em coluna deve ser o número correspondente ao campo, começando do 0 (zero), ou seja, se for a primeira coluna da consulta que você quer pegar então Rs.Fields(0), caso seja o segundo, Rs.Fields(1) e assim por diante. *Esse código sempre buscará a primeira linha da consulta, caso você queira navegar pelas linha utilize o Move, ex.: Rs.MoveFirst (vai pra primeira linha) Rs.MoveLast (vai pra última linha) Rs.MoveNext (vai para a próxima linha) Rs.MovePrevious (vai para a linha anterior) Espero que tenha ajudado em algo ahhhhh acho que é exatamente isso que eu quero!!! assim que eu estiver la no trabalho, vou testar.. fico muito grato amigo.. procurei isso na internet mas não tava achando nada.. você sabe me dizer se, eu usando desta maneira em SQL, é mais leve do que usar dlookup? pois eu tenho certeza que li em algum lugar que o uso de dlookups deixa os forms muito pesados.. abraços
  4. algo que a primeira vista parece ser tão facil.. tá muito dificil!! pior que não consigo achar nenhum exemplo!
  5. amigo.. só por curiosidade.. sobre o que essa tabela armazena dados.. 170 campos.. fiquei curioso.. qual versão de access você usa? se mesmo com as dicas MrMALJ não der certo, e esse erro for intermitente.. pode ser o bug do engine JET que tb me assolou uns tempos atras.. ai seria bom você tentar com o hotfix da MS pra JET abraços
  6. Humm

    Contas a Pagar

    certo, se entendi você quer algo que você possa escolher a dedo de um arelação já filtrada o que quer q saia no relatório.. ok? pode ser que haja outra solução.. mas a que penso é a seguinte.. na tabela que contem os dados desse relatorio adicione um campo tipo checkbox crie uma consulta com os criterios pra fazer a filtragem dos valores que deseja.. então nessa consulta, disposta em um formulario onde você fará a seleção final, adicione esse controle do campo checkbox assim você seleciona os registros e então cria uma nova consulta para o relatório que só permitirá o que foi marcado.. você va iprecisar dum codigo que "ao fechar" do relatorio resete o estado dos campos que você marcou pra unchecked/false/no é isso que eu faria.. abraços
  7. olá amigo, só uma pergunta.. esse campo COD no formulário está bloqueado para alteração? ou o usuario pode altera-lo? outra coisa, de uma lida nisso, pode ser que seja o seu caso.. http://scriptbrasil.com.br/forum/index.php?showtopic=111346 abraços
  8. Me.VALORUNITÁRIO = DLookup("[PREÇO]", "CONS_PRECOATUAL", "[COD_FILHO]=" & Me.[REFERENCIA]) como faço este mesmo procedimento usando SQL? me.valorunitário = ??? abraços
  9. Humm

    sistema muito pesado

    compactar e reparar já usei.. sinto que o problema esta na quantidade de dlookups.. e já li em algum lugar que o uso de dlookup deixa lento.. me parece que se possivel, é de preferencia fazer em sql eu tentei aqui mas não consegui.. exemplo: Me.VALORUNITÁRIO = DLookup("[PREÇO]", "CONS_PRECOATUAL", "[COD_FILHO]=" & Me.[REFERENCIA]) tentei assim: Me.VALORUNITÁRIO = "SELECT CONS_PRECOATUAL.PREÇO FROM CONS_PRECOATUAL WHERE (((COD_FILHO) = [Formulários]![CUPOM_2]![SUBFORM_CUPOM_2].[Form]![REFERENCIA])) GROUP BY PREÇO" dá erro.. detalhe que copiei o sql da consulta que crie.. o que pode estar dando errado?
  10. pra evitar estes erros, você pode usar o construtor de expressoes pesquisando os itens que são mostrados no canto inferior esquerdo.. abraços
  11. Humm

    sistema muito pesado

    tem algum macete ou dica pra fazer quando a aplicacao fica lenta pela quantidade de dados que contem? por exemplo, fiquei sabendo que dlookup deixa bem pesado.. há algo pr asubstituir isso? posso usar sql? qualquer ideia agradeço, abraços
  12. Humm

    Access

    tem um outro exemplo aqui amigo. http://scriptbrasil.com.br/forum/index.php...105401&hl=# abraços
  13. Humm

    Problemas com mala direta

    não é mais facil fazer um relatorio com o campo FUNCIONARIO como cabeçalho de grupo e então na parte detalhes, você coloca a relacao de bens? assim você pode até dar saida pro word a partir do relatorio. abraços
  14. o cara tb pode criar uma tabela separada do BD principal.. e linkar o frontend a ela.. talvez assim fique mais leve.. bom, eu acho que fica mais leve tendo uma tabela só pra isso do que ter um campo espelho pra cada campo.. sem falar que esse metodo do campo espelho só vai armazenar a ultima alteracao e não todo o historico.. já a tabela armazena tudo que você quiser abraços
  15. Humm

    banco de dados de cep

    existe no site dos correios.. agora é besteira ter um BD de CEPs local por 2 motivos.. 1º você faz ideia do tamanho desse BD? 2º nunca estará atualizado! o correto é criar um codigo que acesse a pagina dos correios, preencha automaticamente e retorne o endereço. agora saber fazer um codigos destes é que são elas.. hehe abraços
  16. rapaz.. olha só to percebendo que você quer saber todo o historico de alteracoes de cada registro certo? é melhor você criar um tabela só pra isso.. ao invez de ficar criando um campo de historico pra cada campo, até porque tem um porem que você não pensou.. o cara vai lá e entra com dados.. depois alguém atera.. e se depois outra pessoa alterar novamente, você perderá o historico da penultima alteracao.. bom a dica é.. crie uma tabela pra armazenar o log de acões dos usuarios.. nessa tabela você cria varios campos indices pra pra relacionar com cada tabela que pode ser alterada pelos user.. crie tb um campo para armazenar o usuario da ação crie tb um campo pra armazenar data/hora e mais um onde vai concatenar: [valor antigo] & ", " & [valor novo] então na propriedade "antes de atualizar" você bota o codigo, pois antes de alterar, ele tem que capturar o valor antigo do campo. fica mais ou menos assim: Dim Db As DAO.Database, Rs As DAO.Recordset Set Db = CurrentDb() Set Rs = Db.OpenRecordset("Tabela Historico") Rs.AddNew Rs("Codigo de Relacionamento") = Me.CodigoIndice Rs("Data") = Time() Rs("Operador") = Forms!Main!Operador Rs("Dados") = DlookUp("[Campo]", "Tabela", "[CodigoIndice] =" & Me.CodigoIndice) & ", " & Me.Campo Rs.Update Db.Close Set Db = Nothing Set Rs = Nothing não testei, adeque ao seu BD e veja como fica.. não esquecendo que nessa tabela você tem que adicionar um campo de relacionamento pr acada outra tabela que quiser monitorar. assim você pode colocar um botao que chame o historico somente pr adeterminada tabela sacou? e ai MrMALJ gostou dessa ideia né? abraços
  17. ATENCAO modifiquei a engine desse app.. agora não é mais necessária nenhuma configuração de object library, ou seja, deve rodar sem problemas em qualquer versao do access a partir do XP. link do download foi alterado pra ultima versão.. divirtam-se abraços
  18. o seu erro está no me. me significa formulario atual de onde o codigo esta rodando.. o teu form MAIN não é o atual.. então não tem me. use forms!MAIN!operador
  19. olha isso me lembrou a trabalheira que tive pra criar um sistema de controle de usuario.. tive que fazer ele completo, pois o do access é muito fraco se quiserem posso depois postar um BD de exemplo de sistema de login e alguns exemplos de aplicação dele nas propriedades dos forms e relatorios.. inclusive com log de atividades. mas tenha em mente que isso abarrota o BD com informacoes hehe.. pra ter ideia, até quando alguém deleta algo, na verdade não deleta, mas transfere conteudo para uma especie de lixeia indicando quem criou e quem deletou abraços
  20. entendo.. se for o caso você pode fazer um codigo na propriedade "após atualizar" que altere o valor do campo para 0 ou 1 de acordo com yes/no ou true/false tipo: if me.seu_campo_nao_acoplado = yes then me.seucampo = "1" else me.seucampo = "0" end if abraços
  21. Humm

    Sobre 'expressao'

    não, na verdade o calculo do saldo atual é: todos as [entradas] - [todas as saidas] é só você criar uma consulta que faça isso pra obter o atual. não se usa um campo de saldo.. o saldo é um campo calculado, ou seja não armazena, só exibe um resultado de um calculo. to falando por experiencia propria, armazenar resultado de calculos gera dores de cabeça futuras. pois se você resolver editar um registro anterior, depois tem que atualizar todos os saldos posteriores.. é braba. abraços
  22. ou talvez resolva usando subrelatorio ligando duas consultas ou tabelas pelos campos indice de relacao
  23. vamos tomar por exemplo, numa das opcoes você fez como? você colocou uma caixa de opcoes no form e fez o q? na tabela que se refere a ela, está setad acomo Sim/Não ?
  24. oi amigo, não entendi.. da pra explicar melhor?
×
×
  • Criar Novo...