Ir para conteúdo
Fórum Script Brasil

brunohjoia

Membros
  • Total de itens

    121
  • Registro em

  • Última visita

Sobre brunohjoia

brunohjoia's Achievements

0

Reputação

  1. puts cara, sem saber programação fica meio complicado cara
  2. brunohjoia

    Dados Da Web

    Cara, eu acho que pelo que voce disse estar precisando nem precisa manjar muito de VB. Bom... primeiro voce precisa ter seu banco de dados hospedado na internet. Depois, crie uma nova tabela vinculada.... quando ele pedir pra voce dizer onde esta o caminho do bd com as tabelas, digite o caminho do seu banco de dados na internet... acho que isso basta
  3. brunohjoia

    Dados Da Web

    Não tenho certeza, mas acho que dá para fazer isso usando o conceito de tabelas vinculadas. Ou seja, você tem um arquivo de banco de dados na WEB e varios arquivos de bqanco de dados com os varios usuarios... Nesses bds dos usuarios você pode criar, além das tabelaspróprias desse bd, tabelas vinculadas ao seu banco de dados na WEB. Assim toda alteração que eles fizerem nessa tabela vinculada se refletirá na tabela do seu banco de dados na Web. Tente isso e me conte se deu certo!
  4. Existe uma função chamada datediff. Ela calcula a diferença em dias, meses, semanas ou anos entre duas datas especificadas. Basta que você use como parametros a data atual, a data de vencimento da conta e no terceiro parametro "d", que especifica que você quer o resultado em dias, que ela te retorna quantos dias faltam para o vencimento da conta... Você pode saber mais sobre essa função no site do MSDN: msdn.microsoft.com
  5. brunohjoia

    Progressbar

    Para adicionar uma progressbar basta que, na hora de desenha seu formulario access, vá em 'mais controles' (um botaozinho que fica na mesma barra de ferramentas dos demais controles do access) e procurar e selecionar a progressbar
  6. Deixar tudo update? como assim? Eu não conheço o método update para formulários. Eu já experimentei comentar essa linha para que ela não seja executada e quando eu faço isso o erro não acontece. O problema é que essa linha me.requery é quase que indispensável pois ela é que atualiza os registro que são exibidos na tela do formulário! Eu também já tentei fazer de outro jeito... Ao invés de usar o me.requery, eu tentei usar duas linhas de comando, uma que fechava o formulário, e outra que o abria novamente imediatamente após ser fechado, mas quando a linha que fecha o formulário (docmd.close) é executada, o erro também acontece. E o mais estranho é que tem vezes (na minoria das vezes) que o erro não acontece.
  7. Oi Pessoal! Eu desenvolvi um sistema bem complexo em access e inclusive já implementei o sistema aqui na empresa onde trabalho. O problema é que ao executar algumas rotinas a partir de um botão de formulário, o meu sistema em access fecha sozinho! Apesar de eu já ter identificado a linha de comando em que esse erro ocorre e ter feito varios testes eu não encontrei erro no código e também não entendo o porque dessa maluquice! Se eu não solucionar esse problema meu projeto inteiro vai pro espaço! Eu inclusive já criei um novo arquivo access, importei todos os objetos e tive o trabalho de atribuir as permissões de acesso a todos os objetos novamente, mas não sei porque raios depois de alguns dias de uso este problema volta a aparecer. Enfim, A rotina onde ocorre o erro é enorme e estou colocando ela prara vocês no final do post. Trata-se de uma rotina com a funcionalidade de extornar um lançamento contabil efetuado no caixa através do fluxo de caixa. Mas o erro ocorre numa linha de código no final da rotina (Me.Requery, que está logo abaixo do comentário 'Ultimos procedimentos') Alguém pode me ajudar e dizer porque o access está fechando sozinho e como solucionar este problema? Obrigado! Private Sub cmdExtornarMov_Click() On Error GoTo trataerro Dim rs As DAO.Recordset Dim DataRetroativa As Boolean 'Utilizada para determinar se o usuário está tentando extornar um lançamento que não seja o ultimo que foi realizado Dim stMsgDeAlerta As String 'String usada no texto da caixa de mensagem Dim ExtornoDeInicializacao As Boolean 'Utilizada para 'avisar' que a inicialização do caixa está sendo extornada 'Verifica se é extorno com data retroativa ou se o usuário está tentando extornar a inicialização do caixa Set rs = CurrentDb.QueryDefs("conCaixa").OpenRecordset rs.MoveLast If Me.Dia_Mov <= VBA.Date - 7 Then MsgBox "Por motivos de segurança, não é permitido extornar um movimento lançado há mais de 7 dias.", vbExclamation, "Atenção" Exit Sub ElseIf Me.Referente_a = "Inicialização do Caixa" Then stMsgDeAlerta = "Você tem certeza de que deseja extornar o lançamento de inicialização do caixa? Este procedimento irá reinicializar o caixa, apagando todos os registros de lançamentos efetuados até o momento." ExtornoDeInicializacao = True ElseIf (Me.Dia_Mov < rs!Dia_Mov) Or (Me.Dia_Mov = rs!Dia_Mov And Me.Hora_Mov < rs!Hora_Mov) Then stMsgDeAlerta = "Você está prestes a extornar um lançamento que não foi o último a ser efetuado. Todos os lançamentos efetuados com data após " & Me.Dia_Mov & " - " & Me.Hora_Mov & " serão reajustados. Tem certeza de que deseja extornar este lançamento?" DataRetroativa = True Else stMsgDeAlerta = "Tem certeza de que deseja extornar o último lançamento efetuado?" End If '***************************************************************** If MsgBox(stMsgDeAlerta _ & vbCrLf & vbCrLf & "Valor: " & Format(Me.Valor_Mov, "Currency") & vbCrLf & "Referente a: " & Me.Referente_a _ & vbCrLf & "Tipo Movimento: " & Me.Tipo_Mov & vbCrLf & "Recebido de/Pago a: " & Me.Nome_Indiv_Empresa _ & vbCrLf & "Descrição: " & Me.Descricao, vbYesNo + vbQuestion, "Atenção!") = vbYes Then Dim MotivoExtorno As String If Not ExtornoDeInicializacao = True Then MotivoExtorno = InputBox("Qual o motivo do extorno? (Opcional - Máximo 100 caracteres)", "Extornar Movimentação") End If 'Extorna movimento na tabela Caixa_DetalhesDiarios_Referentea Set rs = CurrentDb.QueryDefs("conCaixa_DetalhesDiarios_Referentea").OpenRecordset If ExtornoDeInicializacao = True Then 'Apaga todos os registros da tabela Caixa_DetalhesDiarios_Referentea rs.MoveFirst Do While Not rs.EOF rs.Delete rs.MoveNext Loop rs.Requery '*********************************************************************** Else rs.FindFirst "DIA =#" & Format(Me.Dia_Mov, "mm/dd/yyyy") & "# AND Referente_a LIKE '" & Me.Referente_a & "'" rs.Edit If Me.Tipo_Mov = "Saída" Then rs!Total_Saidas = rs!Total_Saidas - Me.Valor_Mov ElseIf Me.Tipo_Mov = "Entrada" Then rs!Total_Entradas = rs!Total_Entradas - Me.Valor_Mov End If rs.Update End If '************************************************************ 'Extorna movimento na tabela Caixa_DetalhesDiarios Set rs = CurrentDb.QueryDefs("conCaixa_DetalhesDiarios").OpenRecordset If ExtornoDeInicializacao = True Then 'Apaga todos os registros da tabela Caixa_DetalhesDiarios rs.MoveFirst Do While Not rs.EOF rs.Delete rs.MoveNext Loop rs.Requery '*********************************************************************** Else rs.FindFirst "DIA =#" & Format(Me.Dia_Mov, "mm/dd/yyyy") & "#" rs.Edit If Me.Tipo_Mov = "Saída" Then rs!Total_Saidas = rs!Total_Saidas - Me.Valor_Mov rs!Saldo_Final = rs!Saldo_Final + Me.Valor_Mov ElseIf Me.Tipo_Mov = "Entrada" Then rs!Total_Entradas = rs!Total_Entradas - Me.Valor_Mov rs!Saldo_Final = rs!Saldo_Final - Me.Valor_Mov End If rs.Update 'Se for data retroativa, ajusta os campos Saldo_Inicial e Saldo_Final de todos os registros de lançamento posteriores If DataRetroativa = True Then rs.FindFirst "DIA =#" & Format(Me.Dia_Mov, "mm/dd/yyyy") & "#" rs.MoveNext Do While Not rs.EOF rs.Edit If Me.Tipo_Mov = "Saída" Then rs!Saldo_Inicial = rs!Saldo_Inicial + Me.Valor_Mov rs!Saldo_Final = rs!Saldo_Final + Me.Valor_Mov ElseIf Me.Tipo_Mov = "Entrada" Then rs!Saldo_Inicial = rs!Saldo_Inicial - Me.Valor_Mov rs!Saldo_Final = rs!Saldo_Final - Me.Valor_Mov End If rs.Update rs.MoveNext Loop End If '******************************************************************************* End If '********************************************************************** 'Cria um registro na tabela Extornos para o extorno realizado se não for extorno de inicialização do caixa, 'ou exclui todos os registros da tabela Extornos se for extorno de inicialização do caixa Set rs = CurrentDb.TableDefs("Extornos").OpenRecordset If ExtornoDeInicializacao = True Then If rs.RecordCount > 0 Then rs.MoveFirst Do While Not rs.EOF rs.Delete rs.MoveNext Loop rs.Requery End If Else rs.AddNew rs!Efetuado_Por = Me.Efetuado_Por rs!Dia_Mov = Me.Dia_Mov rs!Valor_Mov = Me.Valor_Mov rs!Tipo_Mov = Me.Tipo_Mov rs!Referente_a = Me.Referente_a rs!Descricao = Me.Descricao rs!Dia_Extorno = VBA.Date rs!Hora_Extorno = VBA.Time rs!Extornado_Por = CurrentUser rs!Motivo = MotivoExtorno rs.Update End If '********************************************************************* 'Extorna o movimento na tabela Caixa Set rs = CurrentDb.QueryDefs("conCaixa").OpenRecordset If ExtornoDeInicializacao = True Then rs.MoveFirst Do While Not rs.EOF rs.Delete rs.MoveNext Loop rs.Requery Else 'Reajusta os registros de lançamentos posteriores If DataRetroativa = True Then rs.FindFirst "Cod_Mov =" & Me.Cod_Mov rs.MoveNext Do While Not rs.EOF rs.Edit If Me.Tipo_Mov = "Saída" Then rs!Saldo_Atual = rs!Saldo_Atual + Me.Valor_Mov 'rs!Saldo_Final = rs!Saldo_Final + Me.Valor_Mov ElseIf Me.Tipo_Mov = "Entrada" Then rs!Saldo_Atual = rs!Saldo_Atual - Me.Valor_Mov 'rs!Saldo_Final = rs!Saldo_Final - Me.Valor_Mov End If rs.Update rs.MoveNext Loop End If '*********************************************************** 'Exclui o lançamento que está sendo extornado rs.FindFirst "Cod_Mov =" & Me.Cod_Mov rs.Delete '************************************************************ End If '********************************************************************************** MsgBox "Extorno realizado com sucesso.", vbExclamation, "Sucesso" 'Ultimos procedimentos Me.RecordSource = "SELECT Caixa.* FROM Caixa ORDER BY [Caixa].[Dia_Mov] DESC , [Caixa].[Hora_Mov] DESC , [Caixa].[Cod_Mov] DESC; " Me.Requery Set rs = Me.RecordsetClone If rs.RecordCount = 0 Then MsgBox "Não há registros de movimentação no caixa. O Formulário será fechado", vbExclamation, "Atenção" DoCmd.Close Else 'Ajusta o valor da lblSaldoCaixa, que exibe o saldo atual do caixa lblSaldoCaixa.Caption = Format(Me.Saldo_Atual, "Currency") '****************************************************************** End If Set rs = Nothing '********************************************************** End If Exit Sub trataerro: MsgBox Err & ": " & Err.Description End Sub
  8. Estou usando o login do próprio access. Eu usei o assistente de segurança do access para gerar o arquivo do grupo de trabalho. E o sistema é dividido em frontends e um backend. O q realmente acontece é que, como há varios frontends ligados ao mesmo backend (cada frontend em um terminal da rede), quando o mesmo usuário tenta logar em doisfrontends ao mesmo tempo aparece uma msg de erro imdeiatamente após a tentativa de login! A minha duvida é: Esse erro é inevitável, pois essa limitação é própria do access, ou tem como contornar esse problema? Se tiver comom contornoar, como devo proceder? obrigado!
  9. Olá Pessoal! Eu gostaria de saber se é uma característica do access negar que o mesmo usuário do meu WorkGroup acesse o banco de dados em dois frontends diferentes ou se isso que está acontecendo comigo é um problema mesmo! Se for um problema, qual é a razão dele? Obrigado!
  10. Olá Pessoal. Surgiu um problema aqui na empresa onde trabalho. Temos aqui um arquivo de banco de dados central localizado no servidor, que é acessado por formulários de vários outros arquivos mde da rede via tabelas vinculadas (Backend e frontend). O problema é que quando eu, que estou aqui no meu terminal (frontend 1), cadastro um novo cliente, para que seja possível que meu amigo veja o novo cadastro no seu respectivo terminal (frontend 2) ele precisa fechar o aplicativo o formulário e abrí-lo novamente novamente!!!! Não alguma maneira de essa atualização de registros seja percebida instantaneamente, de forma dinamica? Obrigado!
  11. Será que ninguém tem alguma idéia do que possa estar acontecendo????
  12. HAuahua, que simples!! E eu me matei pra escrever esse post anterior! Pleo menos eu tenho criatividade não é?? hhauahua! vlw!
  13. A única solução que vejo é meio trabalhosa mas se você fizer tudo certinho vai funcionar. Vamos a ela: Primeiro você deve, por motivos de segurança, criar uma cópia de sua tabela nesse mesmo arquivo do access (chamaremos essa tabela de TabelaCopia). Depois abra a TabelaCopia no modo estrutura e mude o campo autonumeração para número. Dessa forma você poderá definir manualmente o valor da chave primária. Então crie um registro fictício e coloque no campo de chave primária o valor 79453. Agora exporte os dados dessa tabela para um arquivo do excel - você pode fazer isso com o próprio assistente de exportação do access. Agora crie um novo arquivo do access e importe para ele a TabelaCopia no modo Somente Definição para que os dados não sejam importados junto com a tabela (chamaremos essa tabela de TabelaCopia2). Agora mude o campo número da TabelaCopia2 para autonumeração. Agora importe os dados do excel que você havia exportado anteriormente para a TabelaCopia2. Perceba que agora você pode adicionar registros com o contador da chave primária a partir do valor 79454 como você queria. Agora importe para o seu bd original a TabelaCopia2 (definição e dados) e chame-a de TabelaCopia3. Certifique-se de que após este processo a TabelaCopia3 não tenha perdido nenhum registro em relação a sua tabela original. Exclua o registro fictício 79453 da TabelaCopia3. Agora faça os relacionamentos da TabelaCopia3 com as demais tabelas de seu bd. Os relacionamentos devem estar iguais ao de sua tabela original com as demais tabelas. Agora você pode excluir sua tabela original e passar a usar a TabelaCopia3 como se fosse a tabela original e ela estará com o contador da chave primária no 79454!!! Ufa!
  14. Aew povo! Tah acontecendo o seguinte: fiz uma aplicação em Access com várias tabelas, formulários, relatórios, além de muito código em VBA e segurança em nível de usuário. Mas um recurso simples do próprio access parece que foi desabilitado! Quando estou num form e aperto ALT+E, ou ALT+L (todos esses atalhos de menu padrão q ajudam bastante pra quem não gosta de mouse) ele simplesmente não chama o menu (mesmo quando o usuário logado na aplicação é o Administrador)! O único jeito é Apertar e soltar ALT, e depois apertar E. O estranho é que quando vim fazer o teste em casa, criei um novo bd access, fiz o teste e funcionou! O que será que aconteceu com a minha aplicação que não aceita mais esses atalhos do teclado? Obrigado
×
×
  • Criar Novo...