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 participantes

    Inserir novo registro em subform em linha intermediária(item) reposicionando as demais linhas subsequentes

    avatar
    Convidado
    Convidado


    Inserir novo registro em subform em linha intermediária(item) reposicionando as demais linhas subsequentes Empty Inserir novo registro em subform em linha intermediária(item) reposicionando as demais linhas subsequentes

    Mensagem  Convidado Qua 04 Set 2013, 22:04

    >> Este exemplo insere registro em branco no subform em posição intermediária (podendo selecionar a linha) reposicionando as linhas subsequentes.
    >> Ao adicionar novo registro diretamente no subform numera o ítem com o próximo número ou aproveitando o número vago caso algum registro intermediário tenha sido excluído.

    >> Utiliza código de numeração sequencial confeccionado pelo Mestre Alexandre Neves.

    Código para inserir linha intermediária:

    Dim IntItem As Integer
    Dim Rs As DAO.Recordset
    Dim strSQL As String
    Dim i As Integer, iLast As Integer, IntFor As Integer
    Dim X As Integer
    '---------------------------------
    'SQL da tabela
    '---------------------------------
    strSQL = "SELECT * FROM DetPedido"
    '---------------------------------
    'Abre o recordset baseado na SQL
    '---------------------------------
    Set Rs = CurrentDb.OpenRecordset(strSQL)
    '------------------------------------------------------------------------------------------------
    'Carrega a variável com o número de registros da tabela para utilização no procedimento com o For
    '------------------------------------------------------------------------------------------------
    i = DCount("*", "DetPedido", "IdPedido =  " & Forms!Pedido.IDPedido & "")
    '-------------------------------------------------------------
    'Carrega a variável com o número da linha digitada na ImputBox
    '-------------------------------------------------------------
    IntItem = InputBox("Informe a linha para inserir:", "Atenção!")
    '-----------------------------------------------------------------------------------------------------------------------------------
    'Carrega na variável o valor máximo do campo item. Este valor diminuído da variácel IntItem servirá para a quantidade de loops
    'realizados com o for. Este procedimento percorrerá a quantidade de linhas restante a partir do número da linha inserido na imputBox
    '-----------------------------------------------------------------------------------------------------------------------------------
    iLast = DMax("Item", "DetPedido", "IdPedido =  " & Forms!Pedido.IDPedido & "")
    '---------------------------------------------------------------------------------------------
    'De acordo com a explicação acima diminui iLast de IntItem para utilização no Procedimento For
    '---------------------------------------------------------------------------------------------
    IntFor = iLast - IntItem
    '-----------------------------------------------------------------------------------------------------------------
    'Procedimento com For... Filtrará o recordset de acordo com o número na variável IntItem para en seguida alterá-lo
    'adicionando 1 ao mesmo...Seguidamente incrementa a variável IntItem e encontrará o próximo registro no recordset
    'para ir alterando os registros subsequentes, deixando o número digitado na ImputBox vago
    '-----------------------------------------------------------------------------------------------------------------
    For X = 1 To (IntFor + 1)
        Rs.FindFirst "Item = " & IntItem & ""
        IntItem = IntItem + 1
        Rs.Edit
        Rs!Item = IntItem
        Rs.Update
        Me.PedidoSubform.Requery
    Next X
    '--------------------------------------------------------------------------------
    'Adiciona o registro com número vago na tabela, justamente o digitado na ImputBox
    '--------------------------------------------------------------------------------
    Rs.AddNew
    Rs!Item = NumeroLivreVago("Item", "DetPedido")
    Rs!IDPedido = Forms!Pedido.IDPedido
    Rs.Update
    Me.PedidoSubform.Requery



    Enjoy!!!

    *****************************************************************************************************************



    Repositório de Exemplos Ms Access
    Sala destinada à colocação de exemplos em Ms Access (Código aberto) de e para todos os Utilizadores Cadastrados.
    Não tirar duvidas nesta sala.
    Cláudio Machado
    Cláudio Machado
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1636
    Registrado : 17/03/2011

    Inserir novo registro em subform em linha intermediária(item) reposicionando as demais linhas subsequentes Empty Re: Inserir novo registro em subform em linha intermediária(item) reposicionando as demais linhas subsequentes

    Mensagem  Cláudio Machado Qui 26 Dez 2013, 16:19

    Muito bom !
    E eu que achava que não dava pra inserir um registro em branco depois de já lançado os itens.
    Já vou usar.
    Valeu Piloto.  cheers 


    .................................................................................
    " Nunca cruze os braços diante de qualquer problema ou dificuldade, pois o maior homem do mundo Jesus,  morreu de braços abertos."

    Agradeça e feche o tópico clicando no botão Resolvido. Se não sabe como, veja  AQUI.
    Não esqueça de clicar no Joinha Inserir novo registro em subform em linha intermediária(item) reposicionando as demais linhas subsequentes 90dssg para agradecer a dica que solucionou seu problema.
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1743
    Registrado : 11/11/2009

    Inserir novo registro em subform em linha intermediária(item) reposicionando as demais linhas subsequentes Empty Re: Inserir novo registro em subform em linha intermediária(item) reposicionando as demais linhas subsequentes

    Mensagem  Dilson Qui 26 Dez 2013, 17:01

    Isso dá pra implementar uma série de coisas. Excelente!

    Conteúdo patrocinado


    Inserir novo registro em subform em linha intermediária(item) reposicionando as demais linhas subsequentes Empty Re: Inserir novo registro em subform em linha intermediária(item) reposicionando as demais linhas subsequentes

    Mensagem  Conteúdo patrocinado


      Data/hora atual: Qui 07 Nov 2024, 20:43