MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


3 participantes

    Tempo de Conexão

    avatar
    wesleymeim
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 47
    Registrado : 20/08/2014

    Tempo de Conexão Empty Tempo de Conexão

    Mensagem  wesleymeim 21/10/2014, 13:05

    Bom dia!

    Gostaria de daber se alguém saberia me tirar a seguinte dúvida?

    Tenho uma tabela em SQL e quando tento ler uma tabela com 41 colunas e 3.500.000 de registros o mesmo acusa o seguinte erro:

    Erro em Tempo de Execução '-2147217915(80040e05)':
    O objeto estava aberto.


    Alguém saberia me dizer como sair desse erro?


    Obrigado.
    Marco Messa
    Marco Messa
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 291
    Registrado : 28/06/2010

    Tempo de Conexão Empty Re: Tempo de Conexão

    Mensagem  Marco Messa 21/10/2014, 14:16

    Essa aplicação é compartilhada na rede?
    Se não, tente fechar o aplicativo e depois abra-o novamente e tente ler a tabela de novo.


    .................................................................................
    Tea with me that I book your face Cool
    avatar
    wesleymeim
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 47
    Registrado : 20/08/2014

    Tempo de Conexão Empty Tempo de Conexão

    Mensagem  wesleymeim 21/10/2014, 14:41

    Tenho a aplicação em um Form na minha máquina e estou me conectando a um servidor da Rede com SQL para mostrar esses registros em um formulário de folha de dados.

    Meu código está assim:

    Private Sub Form_Load()

    Dim rss As New ADODB.Recordset
    Dim sql As String
    Dim cns As New ADODB.Connection

    cns.Provider = "SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=True;Data Source=10.131.161.32;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=DEBRBRG310F27X;Use Encryption for Data=False;Tag with column collation when possible=False;Initial Catalog=teste"

    cns.ConnectionTimeout = 0
    cns.Open

    Set rss = New ADODB.Recordset
    Set rss.ActiveConnection = cns

    sqls = "select [Divisão], [Exercício], [Períodocontábil], [Organizaçãovendas], [Canaldistribuição], [Cliente],[Setordeatividade], [Escritóriodevendas], [Material], [Nºconta], [Centro], [Centrocusto], [Centrodelucro],[Tp doc faturamento], [Tipodedocumento], [Documentodevendas], [Nºdoc referên ], [Nºdocumento], [Oper doc refer ],[Operaçãoref ], [Texto], [Qtde(KG)], [Emmoedadecontabilização], [ItemdocumentoSD], [Ctg doc ref ], [Linhasdoc ref ],[Categoriadocumento], [Linhadelançamento], [Ledger], [Tiporegistro], [Versão], [Áreacontab custos], [Empresarecept ],[CenLcr p eliminação], [Cen lucroparceiros], [Denominação], [Índiceestatístico], [Cód débito crédito], [emmoedainternadocentrodelucro],[CódigomoedaMICtrLuc ] , [CódigomoedaMoed cont ]from detr"

    rss.CursorLocation = adUseClient
    rss.Open sqls, cns, adOpenStatic, adLockBatchOptimistic

    Set Me.Recordset = rss
    Set rss.ActiveConnection = Nothing

    rss.Close
    cns.Close

    End Sub
    Marco Messa
    Marco Messa
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 291
    Registrado : 28/06/2010

    Tempo de Conexão Empty Re: Tempo de Conexão

    Mensagem  Marco Messa 21/10/2014, 16:02

    Outras aplicações usam essa mesma tabela do SQL? Porque pode ser que a tabela esteja bloqueada no dependendo do modo de leitura que a outra estaria usando, por exemplo utilizando o adLockPessimistic na chamada de um registro para edição.

    Outra coisa que também pode ser, mesmo que não tenha nada a ver com a descrição do erro, é que essa quantidade de dados seja demais para o Access.
    Já vi muitos erros estranhos em relação a isso quando o arquivo de dados ultrapassava o tamanho crítico que é de 1,5GB +/-.
    Tente importar essa tabela para a sua aplicação (ou para um outro arquivo de dados do Access) e ver o tamanho que fica, e se você consegue abrir um recordset a partir dessa tabela.


    .................................................................................
    Tea with me that I book your face Cool
    avatar
    wesleymeim
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 47
    Registrado : 20/08/2014

    Tempo de Conexão Empty Tempo de Conexão

    Mensagem  wesleymeim 21/10/2014, 16:18

    Estou fazendo a importação agora, logo do um retorno.

    Aproveitando.

    Você teria algum exemplo de barra de prograsso para a leitura de rgeistros em tabelas, em cima do exemplo de código que te mostrei acima.

    Lembrando que eu não tenho nenhuma tabela armazenada no meu Access.


    Private Sub Form_Load()

    Dim cns As New ADODB.Connection
    Dim rss As New ADODB.Recordset
    Dim rs_cliente As ADODB.Recordset
    Dim sqls As String

    cns.Provider = "SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=true;Data Source=11.111.121.19;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=DEBRBRG310F27X;Use Encryption for Data=False;Tag with column collation when possible=False;Initial Catalog=teste"
    cns.Open


    Set rss = New ADODB.Recordset
    Set rss.ActiveConnection = cns

    'sqls = "select * from cliente"
    sqls = "SELECT cod_clien, canis, oend, tati, dec_cliente, pais_clien, uf_clien, cidade_clien, test FROM cliente order by cod_clien, desc_clien"

    rss.CursorLocation = adUseClient
    rss.Open sqls, cns, adOpenForwardOnly, adLockPessimistic 'adLockPessimistic (Permitir alteração)
    Set rs_cliente = rss
    Set rss = Nothing
    Set cns = Nothing
    Set Me.Recordset = rs_cliente

    End Sub


    Muito obrigado.
    Marco Messa
    Marco Messa
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 291
    Registrado : 28/06/2010

    Tempo de Conexão Empty Re: Tempo de Conexão

    Mensagem  Marco Messa 21/10/2014, 16:36

    Acho que você poderia ter uma tela de "Carregando..." ao invés de uma de progresso, pois até onde sei, não tem como você retornar a quantidade de dados que já foi preenchida no recordset para que pudesse comparar com a quantidade total de registros, para que então funcionasse uma barra de progresso.
    Acho que até prejudicaria o desempenho.


    .................................................................................
    Tea with me that I book your face Cool
    avatar
    wesleymeim
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 47
    Registrado : 20/08/2014

    Tempo de Conexão Empty Tempo de execução

    Mensagem  wesleymeim 21/10/2014, 18:03

    Sabe me dizer como eu poderia adptar essa tela de carregando no meu código?

    Obrigado.
    Marco Messa
    Marco Messa
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 291
    Registrado : 28/06/2010

    Tempo de Conexão Empty Re: Tempo de Conexão

    Mensagem  Marco Messa 21/10/2014, 18:34

    Só criar um formulário com a propriedade popup definida como sim, com o layout que você deseja, colocando gif ou mensagem simples mesmo. Então abrir o formulário em qualquer lugar antes do trecho:

    Código:
    rss.Open sqls, cns, adOpenStatic, adLockBatchOptimistic

    E fechá-lo ao final de todo o procedimento.


    .................................................................................
    Tea with me that I book your face Cool
    Marco Messa
    Marco Messa
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 291
    Registrado : 28/06/2010

    Tempo de Conexão Empty Re: Tempo de Conexão

    Mensagem  Marco Messa 21/10/2014, 18:36

    Outra coisa que só vi agora. Você colocou o adLockPessimistic no lugar do adLockBatchOptimistic, e isso não é a solução.
    Eu disse que caso alguma outra aplicação que acessa a mesma tabela que você está tentando acessar use esse tipo de acesso, ela irá impedir a sua leitura até que finalize o processo.


    .................................................................................
    Tea with me that I book your face Cool
    Avelino João
    Avelino João
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Angola
    Mensagens : 316
    Registrado : 10/03/2012

    Tempo de Conexão Empty Re: Tempo de Conexão

    Mensagem  Avelino João 22/10/2014, 11:23

    Marco Messa quando se trabalha com SQL SERVER o "Driver = {SQL Server Native Client 10.0}" é mais parido para se trabalhar.


    .................................................................................
    Proaccess - Angola
    avatar
    wesleymeim
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 47
    Registrado : 20/08/2014

    Tempo de Conexão Empty Tela Carregando

    Mensagem  wesleymeim 22/10/2014, 12:03

    Bom dia Marco,

    Sabe me dizer como eu poderia colocar um gif animado nesse formulário de carregando, procurei e encontrei a solução de uma dll mas não funcionou creio que é pelo fato e eu está trabalhando com a versão 2001 do access.

    Saberia me dizer como posso fazer o gif animado rodar dentro desse formulário?


    Muito obrigado.
    Marco Messa
    Marco Messa
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 291
    Registrado : 28/06/2010

    Tempo de Conexão Empty Re: Tempo de Conexão

    Mensagem  Marco Messa 22/10/2014, 14:36

    Versão 2001? Shocked


    .................................................................................
    Tea with me that I book your face Cool
    Marco Messa
    Marco Messa
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 291
    Registrado : 28/06/2010

    Tempo de Conexão Empty Re: Tempo de Conexão

    Mensagem  Marco Messa 22/10/2014, 14:38

    A propósito, seu problema inicial foi resolvido? Se sim você deve informar aqui no tópico para que outros que tenham o mesmo problema possam consultar caso surja a mesma situação.

    Seria legal abrir um novo tópico para a tela de carregando, assim aumenta a visibilidade para que outros participantes do fórum possam ajudar também.

    Abs


    .................................................................................
    Tea with me that I book your face Cool
    avatar
    wesleymeim
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 47
    Registrado : 20/08/2014

    Tempo de Conexão Empty Desculpe

    Mensagem  wesleymeim 22/10/2014, 14:45

    Desculpe 2010....

    Mais já achei como fazer.

    Mais preciso de outra ajuda se você puder:

    Ao dar duplo clique no formulário que vai ler os registros eu gostaria que entrasse o form carregado que eu criei e ao sair ele seria fechado, mais a questão é que não estou conseguindo fazer isso acontecer:

    De uma olhada como eu estou fazendo o código:

    Private Sub Form_Load()

    DoCmd.OpenForm "frm_carregando_registros"

    Dim cns As New ADODB.Connection
    Dim rss As New ADODB.Recordset
    Dim rs_cliente As ADODB.Recordset
    Dim sqls As String

    cns.Provider = "SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=true;Data Source=11.111.111.19;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=DEBRBRG310F27X;Use Encryption for Data=False;Tag with column collation when possible=False;Initial Catalog=teste"
    cns.Open


    Set rss = New ADODB.Recordset
    Set rss.ActiveConnection = cns

    sqls = "SELECT cod_clien, canis, orend, seti, desc_clien, pais_clien, uf_clien, cidade_clien, teste FROM cliente order by cod_clien, desc_clien"

    rss.CursorLocation = adUseClient

    rss.Open sqls, cns, adOpenForwardOnly, adLockPessimistic 'adLockPessimistic (Permitir alteração)

    Set rs_cliente = rss
    Set rss = Nothing
    Set cns = Nothing
    Set Me.Recordset = rs_cliente
       

    DoCmd.Close acForm, "frm_carregando_registros", acSaveYes


    End Sub


    Mais se eu coloco o código assim o mesmo funciona, mais aí eu que tenho que dá um clique no ok do msgbox para tirá-lo da tela.

    Private Sub Form_Load()



    Dim cns As New ADODB.Connection
    Dim rss As New ADODB.Recordset
    Dim rs_cliente As ADODB.Recordset
    Dim sqls As String

    cns.Provider = "SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=true;Data Source=11.111.111.19;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=DEBRBRG310F27X;Use Encryption for Data=False;Tag with column collation when possible=False;Initial Catalog=teste"
    cns.Open

    DoCmd.OpenForm "frm_carregando_registros"

    msgbox ""

    Set rss = New ADODB.Recordset
    Set rss.ActiveConnection = cns


    sqls = "SELECT cod_clien, canis, orend, seti, desc_clien, pais_clien, uf_clien, cidade_clien, teste FROM cliente order by cod_clien, desc_clien"

    rss.CursorLocation = adUseClient

    rss.Open sqls, cns, adOpenForwardOnly, adLockPessimistic 'adLockPessimistic (Permitir alteração)

    Set rs_cliente = rss
    Set rss = Nothing
    Set cns = Nothing
    Set Me.Recordset = rs_cliente
       

    DoCmd.Close acForm, "frm_carregando_registros", acSaveYes

    End Sub
    Marco Messa
    Marco Messa
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 291
    Registrado : 28/06/2010

    Tempo de Conexão Empty Re: Tempo de Conexão

    Mensagem  Marco Messa 22/10/2014, 15:58

    Ao postar um código, use o botão de formatação de código, melhora a visualização.

    Só pra entender a diferença, você simplesmente colocou um msgbox e o formulário aparece? Ou foi porque você mudou o DoCmd.OpenForm de lugar?
    O formulário de carregando está como popup e como janela restrita (modal)?


    .................................................................................
    Tea with me that I book your face Cool
    avatar
    wesleymeim
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 47
    Registrado : 20/08/2014

    Tempo de Conexão Empty Re: Tempo de Conexão

    Mensagem  wesleymeim 22/10/2014, 16:12

    Você simplesmente colocou um msgbox e o formulário aparece?
    Sim
    Ou foi porque você mudou o DoCmd.OpenForm de lugar?
    Não, para quando eu coloco a msgbox, aí ele aparece.
    O formulário de carregando está como popup e como janela restrita (modal)?

    Popup = sim
    janela restrita = sim

    Marco Messa
    Marco Messa
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 291
    Registrado : 28/06/2010

    Tempo de Conexão Empty Re: Tempo de Conexão

    Mensagem  Marco Messa 22/10/2014, 16:17

    Tente o método Repaint do formulário logo após enviar o comando de abrir a tela de carregando.

    http://msdn.microsoft.com/pt-br/library/office/ff834494(v=office.15).aspx


    .................................................................................
    Tea with me that I book your face Cool
    avatar
    wesleymeim
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 47
    Registrado : 20/08/2014

    Tempo de Conexão Empty Abrir Form

    Mensagem  wesleymeim 22/10/2014, 16:41

    É não funcionou.

    Conteúdo patrocinado


    Tempo de Conexão Empty Re: Tempo de Conexão

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 22/11/2024, 20:07