>> 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:
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.
>> 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.