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

    [Resolvido]Erro 3078 em uma função

    avatar
    esabbag
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 33
    Registrado : 27/07/2010

    [Resolvido]Erro 3078 em uma função Empty Erro 3078 em uma função

    Mensagem  esabbag 27/1/2011, 19:57

    Boa tarde.

    Tenho a seguinte função:

    Public Function AtualizaTotSaldo()

    Dim tb As Recordset
    Set tb = CurrentDb.OpenRecordset("SELECT controle, CodContrib, ddata, MES, CFOP, NumEnt, QdeEnt, VlrtotBCSTEnt, NumSai, QdeSai, VlrUnitSai, VlrBCSTSai, QdeSaldo, QdeSaldoAnt, VlrUnitSaldo, VlrUnitSaldoAnt, TotalSaldo, TotalSaldoAnt FROM tbcontroledeestoque ORDER BY CodContrib, ddata, cfop, NumEnt, NumSai;")

    Dim prod As String
    Dim tsaldo As Double
    Dim vlus As Double
    Dim vbcs As Double
    Dim VlrUnitSaldo As Double
    Dim controle As String
    Dim CodContrib As String

    Forms!FrmImportar1!txtMensagem = "Atualizando Total Saldo.............."
    Do While Not tb.EOF
    prod = tb!CodContrib
    tsaldo = Nz(tb!TotalSaldoAnt)
    vlus = Nz(tb!VlrUnitSaldoAnt)
    vbcs = 0
    Do While tb!CodContrib = prod
    tb.Edit
    tb!VlrBCSTSai = tb!QdeSai * vlus
    tb!TotalSaldo = tsaldo Nz(tb!VlrtotBCSTEnt, 0) - Nz(tb!VlrBCSTSai, 0)
    If tb!QdeSaldo <> 0 Then
    tb!VlrUnitSaldo = tb!TotalSaldo / tb!QdeSaldo
    Else: tb!VlrUnitSaldo = 0
    End If
    tb!VlrUnitSai = vlus
    tb.Update
    tsaldo = tb!TotalSaldo
    vlus = DLookup("[VlrUnitSaldo]", "[tb]", "[controle] >='" & [controle] & "'") ' o erro é aqui
    tb.MoveNext
    If tb.EOF Then Exit Do
    Loop
    Loop
    tb.Close

    Forms!FrmImportar1!txtMensagem = "Atualizada tbcontroledeestoque "

    End Function

    Quando mando executar dá o seguinte erro:

    Erro em tempo de execução '3078':
    O mecanismo de banco de dados do Microsoft Acess não pode
    localizar a tabela de entrada ou consulta 'tb'. Verifique se ela existe e
    se o nome foi digitado corretamente.


    Quando mando depurar ela realça a linha
    vlus = DLookup("[VlrUnitSaldo]", "[tb]", "[controle] >='" & [controle] & "'") '

    Esse valor é o valor do registro anterior do campo VlrUnitSaldo e tb é a consulta criada no inicio da função.
    Por favor alguém poderia me dar uma ajuda nesse problema, ou se houver uma outra maneira de eu pegar esse valor por favor
    me ensinem
    Grato
    Elias
    vieirasoft
    vieirasoft
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7304
    Registrado : 11/05/2010

    [Resolvido]Erro 3078 em uma função Empty Re: [Resolvido]Erro 3078 em uma função

    Mensagem  vieirasoft 27/1/2011, 20:20

    vlus = DLookup("[VlrUnitSaldo]", "[tb]", "[controle] >='" & [controle] & "'") ' o erro é aqui

    qual o nome da tabela?
    vieirasoft
    vieirasoft
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7304
    Registrado : 11/05/2010

    [Resolvido]Erro 3078 em uma função Empty Re: [Resolvido]Erro 3078 em uma função

    Mensagem  vieirasoft 27/1/2011, 20:30

    tente assim:
    DLookup("[VlrUnitSaldo]", "tb", "[controle] >='" & [controle] & "'")
    avatar
    esabbag
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 33
    Registrado : 27/07/2010

    [Resolvido]Erro 3078 em uma função Empty Re: [Resolvido]Erro 3078 em uma função

    Mensagem  esabbag 28/1/2011, 11:32

    Bom dia, Vieira.

    Ja tentei e continua dando o mesmo erro.
    Estou achando que o problema é que a consulta tb é a que esta aberta na instrução Do While.

    Fiz uma nova tentativa colocando uma consulta que tenho no BD e esta dando o seguinte erro:
    Erro em tempo de execução "3075" :
    Erro de sintaxe (operador faltando) na expressão de consulta
    "[controle]<= And [CodContrib] ='"
    A linha agora está assim:
    vlus = DLookup("[VlrUnitSaldo]", "CópiadeQryControledeEstoque", "[controle] <= " & [controle] & " And [CodContrib] ='" & [CodContrib] & "'")

    Obrigado
    vieirasoft
    vieirasoft
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7304
    Registrado : 11/05/2010

    [Resolvido]Erro 3078 em uma função Empty Re: [Resolvido]Erro 3078 em uma função

    Mensagem  vieirasoft 28/1/2011, 12:01

    Veja a término da instrução SQL e teste

    DLookup("[VlrUnitSaldo]", "CópiadeQryControledeEstoque", "[controle] <= " & [controle] & " And [CodContrib] ='" & [CodContrib] & "');"
    avatar
    esabbag
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 33
    Registrado : 27/07/2010

    [Resolvido]Erro 3078 em uma função Empty Re: [Resolvido]Erro 3078 em uma função

    Mensagem  esabbag 28/1/2011, 12:13

    Vieira
    Agora esta dando o seguinte erro:

    Era esperado separador de lista ou )

    vieirasoft
    vieirasoft
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7304
    Registrado : 11/05/2010

    [Resolvido]Erro 3078 em uma função Empty Re: [Resolvido]Erro 3078 em uma função

    Mensagem  vieirasoft 28/1/2011, 12:56

    os erros que detectei já corrigi, vamos ver se agora dá certo

    DLookup("[VlrUnitSaldo]", "CópiadeQryControledeEstoque", "[controle] <= "' & [controle] & " And [CodContrib] ='" & [CodContrib] & "'")
    avatar
    esabbag
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 33
    Registrado : 27/07/2010

    [Resolvido]Erro 3078 em uma função Empty Re: [Resolvido]Erro 3078 em uma função

    Mensagem  esabbag 28/1/2011, 13:44

    Vieira, boa tarde.

    Não funcionou, agora esta dando:

    Erro de compilação:
    Erro de sintaxe



    vieirasoft
    vieirasoft
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7304
    Registrado : 11/05/2010

    [Resolvido]Erro 3078 em uma função Empty Re: [Resolvido]Erro 3078 em uma função

    Mensagem  vieirasoft 28/1/2011, 13:58

    Diabos

    Se agora não funcionar, alguma coisa está mal internamente ou algo óbvio está a escapar-nos

    DLookup("[VlrUnitSaldo]", "CópiadeQryControledeEstoque", "[controle] <= "' & [controle] & And "'[CodContrib] =" & CodContrib )

    avatar
    esabbag
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 33
    Registrado : 27/07/2010

    [Resolvido]Erro 3078 em uma função Empty Re: [Resolvido]Erro 3078 em uma função

    Mensagem  esabbag 28/1/2011, 14:07

    Vieira, não funcionou.
    Vc não conhece alguma outra ,maneira de buscar o valor de um campo de um registro anterior sem usar o DLookup?
    vieirasoft
    vieirasoft
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7304
    Registrado : 11/05/2010

    [Resolvido]Erro 3078 em uma função Empty Re: [Resolvido]Erro 3078 em uma função

    Mensagem  vieirasoft 28/1/2011, 14:35

    O problema deve estar com os apóstrofes pois o campo é texto e eu estava a fazer número


    DLookup("[VlrUnitSaldo]", "CópiadeQryControledeEstoque", "[controle] <= '" & [controle] & "' And [CodContrib] ='" & CodContrib &"'")
    vieirasoft
    vieirasoft
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7304
    Registrado : 11/05/2010

    [Resolvido]Erro 3078 em uma função Empty Re: [Resolvido]Erro 3078 em uma função

    Mensagem  vieirasoft 28/1/2011, 14:52

    Amigo deixe-me explicar melhor o que foi feito

    Você tem que verificar se os campos são número ou texto, pois nunca mais acertamos.

    Se os dados forem texto texto (Apóstrofes em bold vermelho) se numero (sem os apóstrofes)


    DLookup("[VlrUnitSaldo]", "CópiadeQryControledeEstoque", "[controle] <= '" & [controle] & "' And [CodContrib] ='" & CodContrib &"'")

    Bom trabalho


    avatar
    esabbag
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 33
    Registrado : 27/07/2010

    [Resolvido]Erro 3078 em uma função Empty Re: [Resolvido]Erro 3078 em uma função

    Mensagem  esabbag 28/1/2011, 15:09

    O campo controle é numeração automatica e o codcontrib é texto.

    Coloquei essa formula na consulta CópiadeQryControledeEstoque e ela funcionou direitinho
    DLookUp("[VlrUnitSaldo]","CópiadeQryControledeEstoque","[controle] <= " & [controle] & " And [CodContrib] ='" & [CodContrib] & "'") AS vlus



    Última edição por esabbag em 28/1/2011, 15:14, editado 1 vez(es)
    vieirasoft
    vieirasoft
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7304
    Registrado : 11/05/2010

    [Resolvido]Erro 3078 em uma função Empty Re: [Resolvido]Erro 3078 em uma função

    Mensagem  vieirasoft 28/1/2011, 15:13

    Então siga o que passei acima, a sintaxe da função está certa, o problema que estava dando e que não me apercebi era se existiam campos a número e a texto. Então adapte o que está acima às suas necessidades.
    avatar
    esabbag
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 33
    Registrado : 27/07/2010

    [Resolvido]Erro 3078 em uma função Empty Re: [Resolvido]Erro 3078 em uma função

    Mensagem  esabbag 28/1/2011, 15:46

    Vieira, a coisa ta feia, continua dando o mesmo erro.

    Coloquei essa mesma formula em um campo da consulta CópiadeQryControledeEstoque e ela funcionou direitinho, agora so preciso colocar esses valores na minha função.

    Coloquei assim na minha função: vlus = CópiadeQryControledeEstoque![vlus] e esta dando o seguinte erro:
    A variável do objeto ou a variável do bloco "with" não foi definida.


    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11016
    Registrado : 04/11/2009

    [Resolvido]Erro 3078 em uma função Empty Re: [Resolvido]Erro 3078 em uma função

    Mensagem  JPaulo 28/1/2011, 16:52

    Faça o teste;

    Public Function AtualizaTotSaldo()
    Dim prod As String
    Dim tsaldo As Double
    Dim vlus As Double
    Dim vbcs As Double
    Dim VlrUnitSaldo As Double
    Dim controle As String
    Dim CodContrib As String
    Dim tb As Recordset
    Set tb = CurrentDb.OpenRecordset("SELECT * FROM tbcontroledeestoque")

    Forms!FrmImportar1!txtMensagem = "Atualizando Total Saldo.............."

    Do While Not tb.EOF
    prod = tb!CodContrib
    tsaldo = Nz(tb!TotalSaldoAnt)
    vlus = Nz(tb!VlrUnitSaldoAnt)
    vbcs = 0

    Do While tb!CodContrib = prod
    tb.Edit
    tb!VlrBCSTSai = tb!QdeSai * vlus
    tb!TotalSaldo = Nz(tb!VlrtotBCSTEnt, 0) - Nz(tb!VlrBCSTSai, 0)
    If tb!QdeSaldo <> 0 Then
    tb!VlrUnitSaldo = tb!TotalSaldo / tb!QdeSaldo
    Else: tb!VlrUnitSaldo = 0
    End If
    tb!VlrUnitSai = vlus
    tb.Update
    tsaldo = tb!TotalSaldo
    'utilize o Me. para se referenciar ao campo do seu form, para isso a função tem de estar dentro do VBA do form
    vlus = DLookup("[VlrUnitSaldo]", "CópiadeQryControledeEstoque", "[controle] <= " & Me.controle & " And [CodContrib] ='" & Me.CodContrib & "'")
    tb.MoveNext
    If tb.EOF Then Exit Do
    Loop
    Loop
    tb.Close
    Forms!FrmImportar1!txtMensagem = "Atualizada tbcontroledeestoque "
    Forms!FrmImportar1.Requery
    End Function



    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Erro 3078 em uma função Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Erro 3078 em uma função Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Erro 3078 em uma função Folder_announce_new Instruções SQL como utilizar...
    avatar
    esabbag
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 33
    Registrado : 27/07/2010

    [Resolvido]Erro 3078 em uma função Empty Re: [Resolvido]Erro 3078 em uma função

    Mensagem  esabbag 28/1/2011, 17:23

    João Paulo, boa tarde.
    Obrigado pela sugestão, mas o meu formulário não tem os campos, só tem botões que ativam as funções.
    Vc acha que eu deveria criar um formulário com mos campos a serem atualizados?
    Se sim que tipo de formulário eu poderia criar pois meu BD tem mais de 200.000 mil itens a serem atualizados
    Abraços
    Elias
    avatar
    esabbag
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 33
    Registrado : 27/07/2010

    [Resolvido]Erro 3078 em uma função Empty Re: [Resolvido]Erro 3078 em uma função

    Mensagem  esabbag 29/1/2011, 21:18

    Obrigado pessoal.

    Consegui resolver os problemas
    vieirasoft
    vieirasoft
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7304
    Registrado : 11/05/2010

    [Resolvido]Erro 3078 em uma função Empty Re: [Resolvido]Erro 3078 em uma função

    Mensagem  vieirasoft 29/1/2011, 21:19

    obrigado pelo retorno o fórum agradece

    Conteúdo patrocinado


    [Resolvido]Erro 3078 em uma função Empty Re: [Resolvido]Erro 3078 em uma função

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 19/4/2024, 13:50