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


+2
bitabit
dbragion
6 participantes

    [Resolvido]Preencher campos em branco com informações do último registro não null

    avatar
    dbragion
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12
    Registrado : 05/09/2011

    [Resolvido]Preencher campos em branco com informações do último registro não null Empty Preencher campos em branco com informações do último registro não null

    Mensagem  dbragion 5/9/2011, 13:29

    Bom dia!

    Segue aquivo anexo com minha dúvida.

    sou iniciante em vba access e preciso criar um código que faça um loop para preencher uma tabela de 200 mil linhas onde o código só existe quando é alterado. Preciso que repita em cada registro.

    Em resumo:

    Tabela Original

    Código__Campo1__Campo2__________Campo3
    3_______110202__asdfsdfsdfsdf asdfdsfsdf
    4_______________adfsfd__________sdfsdf
    5_______________sdfds___________dsf
    6_______________sd______________dsdfd
    7_______________sdf_____________sdf
    9_______220303__dfdf____________fdf
    10______________fd______________fd
    11______________df______________fd
    12______________df______________fd
    13______________df______________fd
    14______________df______________df
    15______________sddsa___________df

    quero preencher o campo1 com a última informação não nula. (são + de 200 mil linhas)

    Código__Campo1__Campo2___________Campo3
    3_______110202__asdfsdfsdfsdf____asdfdsfsdf
    4_______110202__adfsfd___________sdfsdf
    5_______110202__sdfds____________dsf
    6_______110202__sd_______________dsdfd
    7_______110202__sdf______________sdf
    9_______220303__dfdf_____________fdf
    10______220303__fd_______________fd
    11______220303__df_______________fd
    12______220303__df_______________fd
    13______230303__df_______________fd
    14______230303__df_______________df
    15______230303__sddsa____________df
    16______230303__DSFS_____________DF

    Grato pela atenção!
    se puderem postar e-mail envio o anexo, não estou conseguindo anexar aqui


    Última edição por dbragion em 6/9/2011, 12:06, editado 4 vez(es)
    bitabit
    bitabit
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 225
    Registrado : 14/07/2010

    [Resolvido]Preencher campos em branco com informações do último registro não null Empty Re: [Resolvido]Preencher campos em branco com informações do último registro não null

    Mensagem  bitabit 5/9/2011, 19:47

    onde esta o anexo?
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8443
    Registrado : 05/11/2009

    [Resolvido]Preencher campos em branco com informações do último registro não null Empty Re: [Resolvido]Preencher campos em branco com informações do último registro não null

    Mensagem  Alexandre Neves 5/9/2011, 21:17

    Não percebi o que pretende
    vieirasoft
    vieirasoft
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Preencher campos em branco com informações do último registro não null Empty Re: [Resolvido]Preencher campos em branco com informações do último registro não null

    Mensagem  vieirasoft 6/9/2011, 15:34

    Pode mandar para o meu email que eu coloco aqui

    sergiovieirasoft@gmail.com
    avatar
    dbragion
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12
    Registrado : 05/09/2011

    [Resolvido]Preencher campos em branco com informações do último registro não null Empty Prezado moderador

    Mensagem  dbragion 8/9/2011, 11:40

    enviei um e-mail com o anexo. Chegou a recebê-lo?
    Alguém tem idéia de como me ajudar?
    avatar
    Convidado
    Convidado


    [Resolvido]Preencher campos em branco com informações do último registro não null Empty Re: [Resolvido]Preencher campos em branco com informações do último registro não null

    Mensagem  Convidado 8/9/2011, 11:58

    Observem que entre o registro de numero 110202 e 220303 o campo1 está nulo...

    Ele quer preencher o campo1 nulo neste intervalo com o valor do registro imediatamente anterior ao nulo

    No caso os regs 4,5,6,e 7 seriam atualizados com o valor do reg 3: 110202


    Código__Campo1__Campo2__________Campo3
    3_______110202__asdfsdfsdfsdf asdfdsfsdf
    4_______________adfsfd__________sdfsdf
    5_______________sdfds___________dsf
    6_______________sd______________dsdfd
    7_______________sdf_____________sdf
    9_______220303__dfdf____________fdf
    avatar
    Convidado
    Convidado


    [Resolvido]Preencher campos em branco com informações do último registro não null Empty Re: [Resolvido]Preencher campos em branco com informações do último registro não null

    Mensagem  Convidado 8/9/2011, 12:02

    Nesta sua tabela, fora o campo Código e o campo 1 tem algum outro campo que possa diferenciar o que faz parte do reg 110202 e 220303?

    Informações que possam diferenciar o que'faz parte do 110202 e o que faz parte do 220303?
    avatar
    dbragion
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12
    Registrado : 05/09/2011

    [Resolvido]Preencher campos em branco com informações do último registro não null Empty Prezado Harysohn

    Mensagem  dbragion 8/9/2011, 12:18

    Na verdade não.

    Será que existe a possibilidade de criar um vba ou sql que lei a registro a registro pela ordem do código e armazene o valor do campo1 um quando ele for válido e quando ele for nulo insira-o no campo1 registro a registro (loop)

    avatar
    dbragion
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12
    Registrado : 05/09/2011

    [Resolvido]Preencher campos em branco com informações do último registro não null Empty Harysohn

    Mensagem  dbragion 8/9/2011, 13:17

    Acho q vc entendeu meu problema, existe solução no vba para isso?
    ou via consulta atualização no sql?
    avatar
    dbragion
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12
    Registrado : 05/09/2011

    [Resolvido]Preencher campos em branco com informações do último registro não null Empty um amigo me ajudou com este código em sql, só q no access não funciona, só no sql

    Mensagem  dbragion 8/9/2011, 14:06

    DECLARE @CODIGO INTEGER;
    DECLARE @CCONTA VARCHAR(10);
    DECLARE @CCUSTO VARCHAR(10);
    DECLARE @CCONTA_ANT VARCHAR(10);
    DECLARE @CCUSTO_ANT VARCHAR(10);

    DECLARE @I INTEGER;

    DECLARE T_R_CE0406_Cursor CURSOR

    FOR (
    SELECT CODIGO,
    CONTA,
    CCUSTO
    FROM T_R_CE0406(NOLOCK)
    ORDER BY CODIGO
    ) OPEN T_R_CE0406_Cursor

    FETCH NEXT FROM T_R_CE0406_Cursor INTO @CODIGO, @CCONTA, @CCUSTO

    WHILE @@FETCH_STATUS = 0
    BEGIN

    IF @CCONTA <> '' THEN
    BEGIN
    SET @CCONTA_ANT = @CCONTA
    SET @CCUSTO_ANT = @CCUSTO
    END

    IF @CCONTA = '' THEN
    BEGIN
    IF @CCONTA <> '' THEN
    BEGIN
    UPDATE T_R_CE0406 SET CCUSTO = @CCUSTO_ANT, CCONTA = @CCONTA_ANT WHERE CODIGO = @CODIGO
    END

    PRINT 'ATUALIZADO COD:'+CAST(@CODIGO AS VARCHAR)+' - CCONTA:'+@CCONTA_ANT+' - CCUSTO:'+@CCUSTO_ANT)
    END



    FETCH NEXT FROM T_R_CE0406_Cursor INTO @CODIGO, @CCONTA, @CCUSTO
    END;
    CLOSE T_R_CE0406_Cursor;
    DEALLOCATE T_R_CE0406_Cursor;
    GO
    avatar
    Convidado
    Convidado


    [Resolvido]Preencher campos em branco com informações do último registro não null Empty Re: [Resolvido]Preencher campos em branco com informações do último registro não null

    Mensagem  Convidado 8/9/2011, 17:24

    Sua Solução:


    Private Sub btnAtualizar_Click()
    Dim Db As DAO.Database 'Declaração DAO para o banco de dados
    Dim Rs As DAO.Recordset 'Declaração para o RecordSet
    Dim ws As DAO.Workspace 'Declaração para o Workspace
    Dim StrSql As String 'Variável que receberá a SQL
    Dim StrTMP As Double 'Variável que armazenará o numero que será atualizado nos proximos campos null

    Set ws = DBEngine.Workspaces(0) 'Seta o Workspace
    Set Db = ws.OpenDatabase(CurrentProject.Path & "\BDExemplo.accdb", False, False, "MS Access;PWD=senha") 'Seta o BD aplicando o caminho, observe que tem que conter o nome do banco de dados

    StrSql = "SELECT * FROM TblExemplo" 'Carrega a variável StrSql com a SQL da tabela
    Set Rs = Db.OpenRecordset(StrSql) 'Seta o recordset para abrir com a SQL

    If Rs.RecordCount = 0 Then 'Se não existe registro no recordset exibe a mensagem abaixo
    MsgBox "sem registro selecionado", vbInformation, "Atenção"
    Else 'Caso contrário prosegue o código aplicando na variável StrTMP o valor zero
    StrTMP = 0

    Do While Not Rs.EOF

    If IsNull(Rs!Campo1) = True Then 'O codigo será executado em loop's sequenciais, armazenando o valor do campo1 na variável StrTMP, caso o proximo registro seja nulo, atualiza o registro com a variável StrTMP que é justamente o registro anterior, agindo assim sucessivamente enquanto houver registros nulos, cessando quando o registro seguinte contiver nova numeração, ai carrega novamente a variável StrTMP com o valor do Campo1 e prossegue novamente, em encontrado registro nulo, atualiza.. e assim sucessivamente
    CurrentDb.Execute "UPDATE TblExemplo SET Campo1= '" & StrTMP & "' WHERE Código =" & Rs!Código & ";"
    Else
    StrTMP = Rs!Campo1 'Caso o proximo registro não seja nulo, carrega novamente a variável com o valor não nulo seguinte

    End If

    Rs.MoveNext 'Vai ao proximo registro do Recordset
    Loop 'Executa o Loop

    'Exibe mensagem ao final da atualização
    MsgBox "Atualizado com Sucesso!", vbInformation, "Atualizado"
    End If
    End Sub


    http://dl.dropbox.com/u/26441349/BDRagion_08_09_11.rar


    Abra o BD.. antes de executar.. abra a tebela e observe como está, depois execute o botão e observe novamente a tabela


    Saudações
    avatar
    dbragion
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12
    Registrado : 05/09/2011

    [Resolvido]Preencher campos em branco com informações do último registro não null Empty Obrigado Harysohn

    Mensagem  dbragion 8/9/2011, 18:19

    Funcionou perfeitamente, acabei de executar em uma tabela de mais de 200 mil linhas com 2 colunas para serem preenchidas.

    Muito Obrigado.

    Pensei em colocar uma barra de progresso pois, por serem várias linhas demorou cerca de uns 3 minutos. Achei interessante para o usuário não pensar que o access travou. vc pode me ajudar?

    Vc sabe onde posso conseguir material para estudar + sobre programação em vba para access?
    (obs: tem alguma forma de eu pontuá-lo positivamente aqui no fórum pela ajuda prestada?)

    Saudações,

    Daniel
    avatar
    Convidado
    Convidado


    [Resolvido]Preencher campos em branco com informações do último registro não null Empty Re: [Resolvido]Preencher campos em branco com informações do último registro não null

    Mensagem  Convidado 8/9/2011, 18:38

    Não há diferença entre os que ajudam amigão.. todos o fazemos de bom grado...
    O importante é que conseguimos resolver...

    Sobre barra de progresso, há exemplos aqui no fórum sobre barra de progresso...

    No tópico abaixo se não me engano na mensagem de numero 16, há um exemplo que adaptei para um colega...

    http://maximoaccess.forumeiros.com/t4151-resolvidocodigo-e-barra-de-progresso?highlight=barra+de+progresso

    No Fórum temos literatura sobre access...


    Bom estudo e Sucesso!


    So faltou colocar o resolvido ai no tópico amigão.
    Assis
    Assis
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4771
    Registrado : 06/11/2009

    [Resolvido]Preencher campos em branco com informações do último registro não null Empty Re: [Resolvido]Preencher campos em branco com informações do último registro não null

    Mensagem  Assis 8/9/2011, 18:40

    Hary

    Boa tarde

    Versão 2003 por favor...
    Obrigado


    .................................................................................
    *** Só sei que nada sei ***
    avatar
    Convidado
    Convidado


    [Resolvido]Preencher campos em branco com informações do último registro não null Empty Re: [Resolvido]Preencher campos em branco com informações do último registro não null

    Mensagem  Convidado 8/9/2011, 18:43

    Boa tarde Assis...

    2003

    http://dl.dropbox.com/u/26441349/BDRagion_2003_08_09_11.rar

    Cumprimentos.
    Assis
    Assis
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4771
    Registrado : 06/11/2009

    [Resolvido]Preencher campos em branco com informações do último registro não null Empty Re: [Resolvido]Preencher campos em branco com informações do último registro não null

    Mensagem  Assis 8/9/2011, 19:05

    Hary

    Obrigado


    .................................................................................
    *** Só sei que nada sei ***
    avatar
    dbragion
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12
    Registrado : 05/09/2011

    [Resolvido]Preencher campos em branco com informações do último registro não null Empty Hary, obrigado

    Mensagem  dbragion 8/9/2011, 22:40

    obrigado pela dica!
    avatar
    dbragion
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12
    Registrado : 05/09/2011

    [Resolvido]Preencher campos em branco com informações do último registro não null Empty Harysohn..

    Mensagem  dbragion 8/9/2011, 22:51

    vi o tópico e baixei o modelo, é realmente excelente!

    Mas pra mim existe ainda uma distância muito grande em ver pronto e conseguir copiar, será que posso contar com sua ajuda + uma vez?

    avatar
    Convidado
    Convidado


    [Resolvido]Preencher campos em branco com informações do último registro não null Empty Re: [Resolvido]Preencher campos em branco com informações do último registro não null

    Mensagem  Convidado 8/9/2011, 23:13

    Abra o tópico e fale sua duvida.. poste os dois exemplos.. não apenas eu como os demais certamente ajudarão..

    Cumprimentos
    avatar
    igor.pereira.br
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 14/01/2014

    [Resolvido]Preencher campos em branco com informações do último registro não null Empty Re: [Resolvido]Preencher campos em branco com informações do último registro não null

    Mensagem  igor.pereira.br 26/5/2014, 18:57

    Boa tarde amigos,

    Tesntei adaptar o código para minha necessidade, para isso mudei o tipo da variável StrTMP para String mas não funcionou. simplismente não atualiza os dados.

    Os amigos tem alguma sugestão?


    ID CLIENTE
    1 A
    2
    3 B
    4
    5
    6 C
    7
    Código:
    Private Sub btnAtualizar_Click()
    Dim Db As DAO.Database
    Dim Rs As DAO.Recordset
    Dim ws As DAO.Workspace
    Dim StrSql As String
    Dim StrTMP As String

    Set ws = DBEngine.Workspaces(0)
    Set Db = CurrentDb()

    StrSql = "SELECT * FROM TblExemplo"
    Set Rs = Db.OpenRecordset(StrSql)

    If Rs.RecordCount = 0 Then
            MsgBox "sem registro selecionado", vbInformation, "Atenção"
    Else
    StrTMP = "teste"
     
    Do While Not Rs.EOF

        If IsNull(Rs!CLIENTE) = True Then
            CurrentDb.Execute "UPDATE TblExemplo SET CLIENTE= '" & StrTMP & "'  WHERE ID =" & Rs!ID & ";"
        Else
            StrTMP = Rs!CLIENTE

        End If

    Rs.MoveNext
    Loop
    MsgBox "Atualizado com Sucesso!", vbInformation, "Atualizado"
    End If
    End Sub
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8443
    Registrado : 05/11/2009

    [Resolvido]Preencher campos em branco com informações do último registro não null Empty Re: [Resolvido]Preencher campos em branco com informações do último registro não null

    Mensagem  Alexandre Neves 26/5/2014, 19:11

    Boa tarde,
    Se disponibilizar dados significativos é melhor para analisar


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    igor.pereira.br
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 7
    Registrado : 14/01/2014

    [Resolvido]Preencher campos em branco com informações do último registro não null Empty Re: [Resolvido]Preencher campos em branco com informações do último registro não null

    Mensagem  igor.pereira.br 26/5/2014, 20:15

    boa tarde Alexandre,

    Acabei conseguindo adaptar agora!

    Obrigado!


    Conteúdo patrocinado


    [Resolvido]Preencher campos em branco com informações do último registro não null Empty Re: [Resolvido]Preencher campos em branco com informações do último registro não null

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 28/3/2024, 17:36