MaximoAccess

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

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Banco de dados dividido parou de funcionar

    Ney Santos
    Ney Santos
    Avançado
    Avançado

    Respeito às Regras 75%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 222
    Registrado : 23/05/2011

    [Resolvido]Banco de dados dividido parou de funcionar Empty [Resolvido]Banco de dados dividido parou de funcionar

    Mensagem  Ney Santos em 31/3/2020, 23:10

    Boa noite a todos!
    Mais uam vez recorroa ajuda de voces..
    Estou finalizando um projeto ..

    Bom  tudo ia bem até aeu dividir meu Bd a cerca de 20 minutos.
    Bd dividido e ai todos os meus Código de cadastramento em todos os meus forms pararamde funcionar.
    está dando erro na linha seek, as outras ainda nem sei pois o codio da ero ne linha e nao prossegue a baixo um dos exemplos:
    No caso seria do emu form para cadastar um produto..
    Erro em tempo de execução  3251 : operação não suportada para esse tipo de objeto
    eis meu código
    Private Sub BTGRAVAR_Click()

    If IsNull(Me!TXDESC) Then
           MsgBox "Informe o nome do PRODUTO", vbExclamation, "PRODUTO não informado"
           Me!TXDESC.SetFocus
           Exit Sub
           End If
           If IsNull(Me!TXCUSTO) Then
           MsgBox "Informe o custo do produto", vbExclamation, "Custo não informado"
           Me!TXCUSTO.SetFocus
           Exit Sub
    End If
    Dim rs As DAO.Recordset

    Set rs = CurrentDb.OpenRecordset("PRODUTOS")
    rs.Index = "IDPROD"
    rs.Seek "=", [TXIDPROD]
    Dim f As Variant
    f = DMax("IDPROD", "PRODUTOS")

       If IsNull(f) Then
       f = 0
      End If
       If rs.NoMatch Then

           rs.AddNew

       rs!IDPROD = (f + 1)
      ' Me.TXIDPROD = F
       rs!DESC = Me!TXDESC
       rs!CUSTO = Me!TXCUSTO
        Me.TXESTOQUE = 0
       rs!Estoque = Me.TXESTOQUE
        rs.Update
    Else
       rs.Edit
       rs!DESC = Me!TXDESC
       rs!CUSTO = Me!TXCUSTO
        rs!Estoque = Me.TXESTOQUE
     
       
       rs.Update
         End If
    rs.Close
       Set rs = Nothing
        Me!CBLISTA.Requery
        Me.BTNNOVO.SetFocus
        Me.BTGRAVAR.Enabled = False
    End Sub
    Obs não trabalho com forms vinculados a tabela...
    tados são desvinculados.
    Oque pode ter acontecido?
    ainda tinha passado por isso
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2137
    Registrado : 22/11/2016

    [Resolvido]Banco de dados dividido parou de funcionar Empty Re: [Resolvido]Banco de dados dividido parou de funcionar

    Mensagem  DamascenoJr. em 31/3/2020, 23:51

    rs.Index = "IDPROD"
    rs.Seek "=", [TXIDPROD]


    Você acha que a parte vermelha deve ser assim mesmo?
    Compare exatamente à linha anterior.


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Ney Santos
    Ney Santos
    Avançado
    Avançado

    Respeito às Regras 75%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 222
    Registrado : 23/05/2011

    [Resolvido]Banco de dados dividido parou de funcionar Empty Re: [Resolvido]Banco de dados dividido parou de funcionar

    Mensagem  Ney Santos em 1/4/2020, 01:42

    desculpe Damsceno mas não entendi oque vc quis dizer comn isso?
    comoe u expliquei o ´codigo funciona pefeitamente , mas deposi que dividi o Bd tudo da erro..
    Até fiz uma mudança tirando as aspas mas nem chega la pois na linha de cima ja da o erro
    erro 3251... a operação nao suporta esse tipod e objeto
    ao que parece como os as tabela são back end ele nao reconehece mais..
    não encontro explicação
    Ja varri o Google tentando encontar algo parecido aj procurei aqui no forum achei alguns exeplos que pesei poder em ajudar, mas os exeplos usam tabelas normais ou seja o bd nao e dividido
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2137
    Registrado : 22/11/2016

    [Resolvido]Banco de dados dividido parou de funcionar Empty Re: [Resolvido]Banco de dados dividido parou de funcionar

    Mensagem  DamascenoJr. em 1/4/2020, 01:56

    Tente alterar a linha

    rs.Seek "=", [TXIDPROD]

    para

    rs.Seek "=", Me!TXIDPROD
    ou
    rs.Seek "=", TXIDPROD


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Ney Santos
    Ney Santos
    Avançado
    Avançado

    Respeito às Regras 75%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 222
    Registrado : 23/05/2011

    [Resolvido]Banco de dados dividido parou de funcionar Empty Re: [Resolvido]Banco de dados dividido parou de funcionar

    Mensagem  Ney Santos em 1/4/2020, 02:03

    prezado damasceno o erro ja aparecxe na linha de cima
    rs.Index = "IDPROD"
    só não perdi o proejto posi tinah salavdo uam copai antes.. pois se tivesse criado o front end back end direto esteria perdido.
    como disse onde as tabelas nao estao dentro do sistema funcioana tudo..
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2137
    Registrado : 22/11/2016

    [Resolvido]Banco de dados dividido parou de funcionar Empty Re: [Resolvido]Banco de dados dividido parou de funcionar

    Mensagem  DamascenoJr. em 1/4/2020, 02:08

    Anexe seus objetos aqui. Assim eu ou outro membro podemos auxiliar melhor e achar o detalhe que está passando despercebido.


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Ney Santos
    Ney Santos
    Avançado
    Avançado

    Respeito às Regras 75%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 222
    Registrado : 23/05/2011

    [Resolvido]Banco de dados dividido parou de funcionar Empty Re: [Resolvido]Banco de dados dividido parou de funcionar

    Mensagem  Ney Santos em 1/4/2020, 02:27

    prezado daamsceno colocando o Tico e o Teco aqui para trabalhar eu me lembrei ter passado por esse problema a mais de 10 Anos
    kkk
    IA lembrei que em agum lugar tinha visto algo sobre o assunto e adivinha fui buscar numa pastinah que não abria amuito muito tempo um pequeno projeto que tinha feito olha oque encontrei num módulo...

    'Posso executar um SEEK E INDEX em tabelas vinculadas?
    'Autor: Osmar Jr. (jrosmar@yahoo.com.br )
    'Publicado: 29/07/2008
    'Visitas: 3390

    'P) Posso executar um SEEK E INDEX em tabelas vinculadas?

    '® Diretamente, NÃO. Mas a função abaixo permite que isto seja feito:

    '(Cuidado com as continuações de linhas. É uma única linha de código.)

    'CODE
    '************ Início do Código ***************
    'Este código foi escrito originalmente por Michel Walsh.
    'Não deve ser alterado ou distribuído,
    'exceto como parte de um aplicativo.
    'Use-o livremente em qualquer aplicativo,
    'mas deixe este aviso de copyright inalterado.
    '
    'Código cortesia de
    'Michel Walsh

    Public Function OpenForSeek(TableName As String) As Recordset
    ' Assume uma tabela MS-ACCESS
    Set OpenForSeek = DBEngine.Workspaces(0).OpenDatabase _
    (Mid(CurrentDb().TableDefs(TableName).Connect, _
    11), False, False, "").OpenRecordset(TableName, _
    dbOpenTable)
    End Function
    '************ Code End ***************


    'Use simplesmente:

    'Dim rst as Recordset

    'set rst=OpenForSeek("NomeDaTabela")

    'e pode usar rst.Seek e rst.Index na tabela vinculada NomeDaTabela.
    '
    Traduzido por Osmar José Correia Júnior
    'jrosmar@yahoo.com.br
    Resumido posto aqui tudo oque peguei na epoca
    o metedo seek e index passam as erem reconehcido com esse código
    set rst=OpenForSeek("NomeDaTabela")

    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2137
    Registrado : 22/11/2016

    [Resolvido]Banco de dados dividido parou de funcionar Empty Re: [Resolvido]Banco de dados dividido parou de funcionar

    Mensagem  DamascenoJr. em 1/4/2020, 03:18

    O fórum agradece o retorno. Sucesso.


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Ney Santos
    Ney Santos
    Avançado
    Avançado

    Respeito às Regras 75%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 222
    Registrado : 23/05/2011

    [Resolvido]Banco de dados dividido parou de funcionar Empty Re: [Resolvido]Banco de dados dividido parou de funcionar

    Mensagem  Ney Santos em 1/4/2020, 14:20

    Bom dia!
    Ontem tinha dado esse post como resolvido porem amedida que fui testando vi que ainda está dando problemas..
    Conforme expliquei assim que didivi o banco todas as funçoes para cadastar editar ou excuir registros davam erro na execução do código.
    A principio não reconhecia as as funçoes SEEk e INDEX. Essa foi sanada.
    Oque ocorre agora e na execuçao do código eis o exemplo num dos forms..

    Dim DB As Database
    Dim rs As DAO.Recordset
    Set DB = CurrentDb() 'defino que irei Utilizar o BD atual
    Set rs = OpenForSeek("CONTPG")
    rs.Index = "ID"
    rs.Seek "=", Me.TXIDCONTA
    Dim f As Variant
    f = DMax("IDCONTA", "CONTPG")
     If IsNull(f) Then
    f = 0
    End If

    If rs.NoMatch Then
    rs.AddNew
    rs!IDCONTA = (f + 1)
    Me!IDCONTA = rs!IDCONTA <=== Deveria mostrar o codigo gerado mas nao mostra continua com valor 0 para conferir o codigo tenho de usar o pgdow ou pg up
    rs!DESC = Me.TXDESC
    Me.IDCONTA = rs!IDCONTA
    Me.TXDESC = rs!DESC
    Else
    rs.Edit
    rs!IDCONTA = TXIDCONTA
    'Me!IDCONTA = rs!IDCONTA <==Veja que essa linha es´ta comentada
    rs!DESC = TXDESC
    'Me.IDCONTA = rs!IDCONTA <==Veja que essa linha es´ta comentada
    'Me.TXDESC = rs!DESC         <==Veja que essa linha es´ta comentada
    rs.Update <====Aqui ele apresenta erro quando vai editar o registro
    rs.Close
    End If
    End Sub
    as linhas comentadas pq ele nao reconhece o que esta sendo pedido no codigo que seria mostar o campo
    MAis uma vez solicito a juda desse forum, pois ja mexi em tudo que forma de cadastro  ecomo eu aprendi o basico do vba não sei oque mais posso fazer..
    Obrigado
    Ney Santos
    Ney Santos
    Avançado
    Avançado

    Respeito às Regras 75%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 222
    Registrado : 23/05/2011

    [Resolvido]Banco de dados dividido parou de funcionar Empty Re: [Resolvido]Banco de dados dividido parou de funcionar

    Mensagem  Ney Santos em 1/4/2020, 15:59

    tirando o post de resolvido..
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2137
    Registrado : 22/11/2016

    [Resolvido]Banco de dados dividido parou de funcionar Empty Re: [Resolvido]Banco de dados dividido parou de funcionar

    Mensagem  DamascenoJr. em 1/4/2020, 21:53

    Seria uma boa anexar seu arquivo.

    Vejo que você carrega toda a tabela na variável rs para então fazer uma pesquisa. Isso é tremendamente prejudicial ao desempenho. Se essa técnica for usada em rede para carregar uma tabela com 30 mil registros é problema na certa.


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Ney Santos
    Ney Santos
    Avançado
    Avançado

    Respeito às Regras 75%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 222
    Registrado : 23/05/2011

    [Resolvido]Banco de dados dividido parou de funcionar Empty Re: [Resolvido]Banco de dados dividido parou de funcionar

    Mensagem  Ney Santos em 2/4/2020, 03:00

    Prezado Daamsceno desculpe a demoar em responder , tem coisas que vc simpelsmente
    não encontra explicação..
    Estava pesquisando meus antigos Bds e encontrei um projeto que estava fazendo para uma pequena transporadora(infelismente não vingou)
    Ai mechamou a atenção o fato códigos que funcionavam perfeitamenet tambem apresentarem erros.
    Desisntalei o acccess ( versão 2013 ) detalhe com chave original não pirateda.
    E instalei o bome velho access 2010 resulatdo o aplicativo da trasnportadora voltou a funcionar sm emexer uam unica linha.
    Agora estou a fazer pqna alterações no meu sistema atual e... tantantan a meiad que vou fazendo essas coreções os códigos estao voltando a funcionar.
    Obs. No sistema da transporatdo wu ja utilizava o código que faz funcionar o index e o seek em forms desvinculados.
    Em resumo so não fecho o post agora pois vou testar tudo um por um.
    Caso de algum problema posto novamente.
    Vamos ver como fica...
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2137
    Registrado : 22/11/2016

    [Resolvido]Banco de dados dividido parou de funcionar Empty Re: [Resolvido]Banco de dados dividido parou de funcionar

    Mensagem  DamascenoJr. em 2/4/2020, 04:10

    Dando tudo certo ou não, não esqueça o que foi falado sobre o desempenho da aplicação!

    Ao invés de carregar toda a tabela no objeto recordset rs, você pode já trazer a tabela filtrada.

    Ou seja, ao invés disso

    Código:
    ...
    Set DB = CurrentDb() 'defino que irei Utilizar o BD atual
    Set rs = OpenForSeek("CONTPG") 'CARREGO TODA A TABELA
    ...

    ou isso
    Código:
    ...
    Set DB = CurrentDb() 'defino que irei Utilizar o BD atual
    Set rs = DB.OpenRecordset("CONTPG") 'CARREGO TODA A TABELA
    ...


    Experimente isso
    Código:
    ...
    Set DB = CurrentDb() 'defino que irei Utilizar o BD atual
    Set rs = DB.OpenRecordset("Select * From CONTPG Where ID = " & Me!TXIDCONTA) 'CARREGO A TABELA FILTRADA
    ...

    Sugiro a leitura do artigo abaixo
    usandoaccess.com.br/dicas/gerar-milhoes-registros-teste-access.asp?id=1


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Ney Santos
    Ney Santos
    Avançado
    Avançado

    Respeito às Regras 75%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 222
    Registrado : 23/05/2011

    [Resolvido]Banco de dados dividido parou de funcionar Empty Re: [Resolvido]Banco de dados dividido parou de funcionar

    Mensagem  Ney Santos em 3/4/2020, 02:26

    Como expliquei dou por resolvido..
    Instalei o acces 2010 etudo voltou a funcionar tive apenas de mudar alguams linhas
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2137
    Registrado : 22/11/2016

    [Resolvido]Banco de dados dividido parou de funcionar Empty Re: [Resolvido]Banco de dados dividido parou de funcionar

    Mensagem  DamascenoJr. em 3/4/2020, 03:02

    O fórum agradece o retorno. Sucesso.


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.

      Data/hora atual: 9/8/2020, 15:37