Patricia Nascimento
-
Total de itens
9 -
Registro em
-
Última visita
Posts postados por Patricia Nascimento
-
-
Boa tarde,
A solução dada ao problema deste tópico foi a seguinte:
No form de Fichas foi retirado os codigos dos controles de ao receber foco e perder foco que apenas transformavam os dados dos campos em maiusculas "UCASE", substituimos:
[color="#0000ff"]If DLookup("Tipo", "Usuario", "Tipo ='" & Form_Main.xxx & "' ") = "Atendimento" Then [/color]
Por sSql = "" sSql = sSql & "SELECT login, tipo FROM Usuario WHERE login= '" & Form_Main.xxx & "';" Set rst_sql = CurrentDb.OpenRecordset(sSql) If rst_sql.EOF = True Then Exit Sub If rst_sql(1) = "atendimento" Then
e o problema foi solucionado.
att,
-
Boa tarde,
Quando voce diz que o usuario colocou tudo vinculado no computador dele voce quer dizer que ele separou a base de dados do front end?
onde está a base de dados?
se a base estiver em um local em rede que todos tem acesso e copie o front end dela para uma outra maquina e faça um teste.
como exite mais de uma pessoa acessando o sistema isto significa que a base está em um local comum a todos e só descobrir onde a base esta e apontar as tabelas para a base.
Para descobrir para onde a base foi mudada e só posicionar o ponteiro do mouse sobre uma das tabelas vinculadas e o access irá mostra o caminho da base.
o comando para desvincular tabelas e esse;
DoCmd.DeleteObject acTable, nome_da_tabela 'para vincular use este DoCmd.TransferDatabase acLink, "Microsoft Access", "caminho_completo_e_nome_do_banco_de_dados", acTable, "nome_da_tabela_origem", "nome_tabela_destino", False
Como funciona o código
DoCmd.TransferDatabase (comando para importar, neste caso vincular)
acLink (O tipo de transferência que você deseja fazer. Selecione Importação, Exportação ou Vínculo )
"Microsoft Access" (O tipo de banco de dados a ser importado, exportado ou vinculado. Você pode selecionar o Microsoft Access ou um dos vários outros tipos de banco de dados)
"caminho_completo_e_nome_do_banco_de_dados" (O nome do banco de dados a ser importado, exportado ou vinculado. Inclui o caminho completo. Esse é um argumento obrigatório)
acTable (O tipo de objeto a ser importado ou exportado. Se você selecionar Microsoft Access do argumento Tipo de Banco de Dados, poderá marcar Tabela, Consulta, Formulário, Relatório, Macro, Módulo, Página de Acesso a Dados, Modo de Exibição do Servidor, Diagrama, Procedimento Armazenado ou Função )
"nome_da_tabela_origem" (O nome da tabela, da consulta seleção ou do objeto do Access que você deseja importar, exportar ou vincular. Para alguns tipos de banco de dados, como FoxPro, Paradox ou dBASE, é um nome de arquivo. Inclua a extensão do nome de arquivo (como .dbf) no nome de arquivo. Esse é um argumento obrigatório.)
"nome_tabela_destino" (O nome da tabela, da consulta seleção ou do objeto do Access que você deseja importar, exportar ou vincular. Para alguns tipos de banco de dados, como FoxPro, Paradox ou dBASE, é nome de arquivo. Inclua a extensão do nome de arquivo (como .dbf) no nome de arquivo. Esse é um argumento obrigatório. )
False (Especifica se deve ser importada ou exportada somente a estrutura de uma tabela do banco de dados sem nenhum dado. O padrão é False.)
Existem funções que fazem esta vinculação automatica sempre que o banco é aberto.
não pesquisei mas creio que no proprio site http://scriptbrasil.com.br voce pode encontrala.
Att,
-
Bom dia a todos,
Ouço muita gente falar que o Access é para pequenas aplicações devido a sua limitação de tamanho por banco de dados que é de 2 GBytes, mas a limitação se torna inexistente quando se faz um estudo aprofundado do sistema que se quer construir.
Recentemente tivemos um grande desafio em um cliente. Este tem 17 lojas de materiais de construção, necessitava de um sistema para levantamento de créditos de ICMS, mas onde esta o problema?
Bom, teríamos que fazer um sistema em Access para recuperar os créditos de ICMS a partir do ano de 2005.
Durante o levantamento descobrimos o seguinte:
Cada loja por ano gera em média 2,6 milhões de registros por 93 colunas, gerando pouco mais de 2,3 GB de informações.
Cálculo simples 17 lojas x 4 anos x 2,3 GB por ano = 156,4 GB.
Para efeito de comparação os resultados devem ser calculados com tributos de dois períodos diferentes.
As informações estão em banco Oracle e a empresa não quer que o Oracle seja responsável pelos cálculos, pois iria onerar em muito o banco de dados e as lojas iriam ficar com o sistema lento.
Ainda mais, o usuário deveria ter a possibilidade de executar testes de cálculos como se estivesse no Excel, mas com uma interface gráfica, onde apenas com um clique selecionando os campos desejados, seriam apresentados os cálculos. Também deveria ter a opção de fazer fórmulas avançadas como o Excel (Funções como, por exemplo: SE(), SomaSE(), ProcV() entre outras centenas de formulas).
A solução dada para o cliente foi a seguinte:
O Oracle gera os arquivos textos consolidando as informações das duas tabelas de tributos e o Access efetua a importação distribuindo os dados entre as tabelas, separando-as em uma árvore de pastas da seguinte forma: Filial e Ano.
Na pasta "Ano" serão criadas automaticamente 24 tabelas representando 12 meses com informações geradas com os tributos do primeiro período e mais 12 tabelas com informações geradas com os tributos do segundo período. Assim, não sobrecarregamos o Access com cálculos para exibir resultados dos períodos diferentes, no entanto os 156,4 GB se tornam 312,8 GB divididos em 1.632 arquivos.
Para gerenciar os dados, utilizamos vinculação dinâmica em tempo de execução para que o usuário nem perceba que esta utilizando milhares de bases de dados. Por exemplo, o usuário seleciona a filial 1 e o ano de 2007, automaticamente o sistema vincula as tabelas da referida loja e ano, e poderá usá-las para efetuar seus cálculos "o tempo para vincular as tabelas é em media de 5 segundos.
Mais uma vez vamos aos números:
17 lojas
4 anos por loja
12 meses utilizando valores de tributos período 1
12 meses utilizando valores de tributos período 2
196 MB de informações por mês/loja
Resultado final:
17 * 4 * 24 = 1.632 Arquivos
1632 * 196 MB = 319.872 MB (312,375 GB )
Ainda há quem diz que o Access e um Bando de dados.
Em breve estarei disponibilizando este banco de dados em nosso site.
att,
-
Bom dia,
Faça o seguinte teste;
faça uma copia do banco;
entre no codigo vba do form "Cadastro_Fichas" delete todo o codigo dele;
cole o codigo que te mandei no procedimento evento "ao abrir"
Private Sub Form_Open(Cancel As Integer)
'cole o codigo aqui
End Sub
abra o vba e coloque um ponto de interrupção no inicio do codigo
If DLookup("Tipo", "Usuario", "Tipo ='" & Form_Main.xxx & "' ") = "Atendimento" Then
para isso e só posicionar na linha mensionada acima e apertar a tecla F9
depois execute o seu programa normalmente e carregue a tela form "Cadastro_Fichas"
assim que aparecer na tela do vba a linha com ponto de interrupção em amarelo faça o seguinte:
aperte CTRL+G para abrir a janela imediata para fazer-mos o teste
dentro da janela imediata digite
?Form_Main.xxx e tecle enter
neste instante tem que aparecer o valor do campo do formulario e não "nulo"
se aparecer nulo digite
Form_Main.xxx = "Atendimento"
e depois aperte enter
faça o teste novamente
?Form_Main.xxx e tecle enter
caso apareça na linha
?Form_Main.xxx
Atendimento
aperte a tecla F8 e veja se da o erro novamente; caso o erro persista me fale que te mando o seu banco com os acertos para voce.
"no meu micro esta funcionando perfeitamente"
so falta adptar o tipo no form main
att,
-
Chamando uma função atravez de uma consulta:
Chame a fução SemAcentos passando o parametro endereço e todos os registros da tabela acentuados irão aparecer sem acentos.
SELECT SemAcentos(Endereco) AS Endereço FROM tb_Endereco WHERE tb_Endereco.[ENDERECO] Is Not Null;
Crie a função em um modulo.Function SemAcentos(sString As String) Dim x As Integer Dim sStringFinal As String Dim letra() As String For x = 0 To Len(sString) - 1 ReDim Preserve letra(x) letra(x) = Mid(sString, x + 1, 1) If Asc(letra(x)) >= 192 Then 'Acentuados tem código >=192 Select Case letra(x) Case "ã", "á" letra(x) = "a" Case "é", "ê" letra(x) = "e" Case "í" letra(x) = "i" Case "ó", "ô", "õ" letra(x) = "o" Case "ü", "ú" letra(x) = "u" Case "ç" letra(x) = "c" Case Else End Select End If Next x For x = 0 To Len(sString) - 1 sStringFinal = sStringFinal + letra(x) Next x SemAcentos = sStringFinal End Function
-
com o runtime voce só não consegue alterar a estrutura dos objetos, o resto continua como se você estivesse rodado o access FULL
Att,
-
boa noite,
Voce pode usar o agendador de tarefas do windows para abrir o access e executar a sua tarefa.
Outra opção é criar uma função que verifica se está na hora de enviar os e-mails, para isso utilize o timer do formulário como descrito abaixo:
Private Sub Form_Timer()
If Time = "22:00:00" Then'no intervalo do cronometro informe 1000 "verifica se chegou a hora de segundo em segundo'insira aqui a chamada de sua função para enviar e-mailCall nomefuncao 'função' ao final deligue o microShell "C:WINDOWSsystem32rundll32.exe C:WINDOWSSystem32shell32.dll,SHExitWindowsEx 1"End IfEnd Sub
Não sei se voce já tem o modulo de envio de e-mail caso tenha e so colocara chamada da função no local indicado, se não tem entre em contato.
att,
-
Ola, Boa noite!
Gostei muito do layout do seu sistema. bom mas vamos a solução do seu problema.
O campo xxx do seu form main está nulo.
para sanar o problema do xxx nulo insira a linha destacada na cor azul no seu form main
If user = xlogin And pass = xsenha And Not IsNull(Me.user) Then
Form_Main.xxx.Value = xlogin ' atualiza o campo xxx do form mainusuario = xnomeForm_Main.frameMain.SourceObject = "Main_BemVindo"Form_Main.combMenu.Locked = FalseForm_Main.labTitulo.Caption = Form_Cadastro_Licenca.moduloForm_Main.operador.Value = usuarioForm_Main.Caption = usuario + " - " + sistemaElse
MsgBox "Acesso negado. Verifique se os dados estão corretos e tente outra vez.", vbCriticalForm_Main.frameMain.SourceObject = "Main_Acesso"End If
substitua no form "Cadastro_Fichas"
If DLookup("[Tipo]", "Usuario", "[Tipo] =" & Forms!Main![xxx]) = "Atendimento" Then
por
If DLookup("Tipo", "Usuario", "Tipo ='" & Form_Main.xxx & "' ") = "Atendimento" Then
altere todos os dlookps do seu codigo pelo modelo acima mudando apenas o final
Mas o ideal seria você utilizar a função:
Select Case Form_Main.xxx.Value
Case Is = LCase("Atendimento")
Me.AllowAdditions = FalseMe.AllowDeletions = FalseMe.AllowEdits = FalseMe.Combinação50.Enabled = FalseMe.Comando32.Enabled = FalseMe.Comando33.Enabled = FalseMe.Comando34.Enabled = FalseMe.Comando43.Enabled = FalseMe.Comando32.Enabled = FalseMe.Comando33.Enabled = FalseMe.Comando34.Enabled = FalseMe.Comando43.Enabled = FalseCase Is = LCase("Supervisor")
Me.AllowEdits = FalseMe.AllowAdditions = FalseMe.AllowDeletions = FalseMe.AllowEdits = FalseMe.Combinação50.Enabled = FalseMe.Comando32.Enabled = FalseMe.Comando33.Enabled = FalseMe.Comando34.Enabled = FalseMe.Comando43.Enabled = FalseMe.Comando32.Enabled = FalseMe.Comando33.Enabled = FalseMe.Comando34.Enabled = FalseMe.Comando43.Enabled = FalseCase Is = LCase("Processo")
Me.AllowDeletions = FalseMe.Comando33.Enabled = FalseCase Is = LCase("Administrado")
Me.AllowEdits = TrueMe.AllowAdditions = TrueMe.AllowDeletions = TrueMe.AllowEdits = TrueEnd Select
End Function
Att,
REALTORIO COM NUMERACAO AUTOMATICA SEQUENCIAL
em Access
Postado
Boa noite,
Crie uma tabela de controle de emissão de relatorios com os campos que voce deseja, ex:
Tabela--> Relatorios
Campos
Relatorio | Id | Data_Imp | Usuario
Clientes 1 18/05/2008 Jose.Souza
Tabela Preços 1 18/05/2008 Jose.Souza
Clientes 2 18/05/2008 Patricia.nascimento
Clientes 3 19/05/2008 Patricia.nascimento
Clientes 4 19/05/2008 Patricia.nascimento
Tabela Preços 2 19/05/2008 Wedson.Silva
nos relatorios e formularios exitem uma propriedade chamada de "marca" ou Tag nas versões em ingles. nesta propiedade coloque o nome desejado para o Relatório, no meu exmplo eu tenho um relatorio chamado de rel_clientes e defini a "marca" como Clientes.
no botão imprimir deste relatorio cole o seguinte código
disponibilizei no meu o arquivo em flash para voce acompanhar como fazer.
http://www.suportevba.com/contador.html
o arquivo é um pouco grande 3 MB mas vale a pena dar uma olhada
att,