MaximoAccess

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

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


    [Resolvido]Importar dados de uma tabela dando sequencia na numeração dos registros

    avatar
    Chamon Consultoria
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 226
    Registrado : 31/08/2012

    [Resolvido]Importar dados de uma tabela dando sequencia na numeração dos registros Empty [Resolvido]Importar dados de uma tabela dando sequencia na numeração dos registros

    Mensagem  Chamon Consultoria em 27/11/2016, 12:44

    Bom dia!

    Bd em Access 2010.

    Estou tentando importar alguns dos dados da tabela "prod" para a tabela "tbl_Produtos", de modo a dar sequencia na numeração dos registros da "tbl_Produtos".

    Pesquisando aqui no forum encontrei dois exemplos de códigos que fazem a importação, porém não consegui fazer com que funcionassem.
    Gostaria de ajuda para resolver essa questão.
    Segue anexo bd de exemplo.

    Desde já agradeço!
    Anexos
    [Resolvido]Importar dados de uma tabela dando sequencia na numeração dos registros AttachmentIMPORTAR DADOS DE UMA TABELA PARA OUTRA.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (33 Kb) Baixado 14 vez(es)
    avatar
    Chamon Consultoria
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 226
    Registrado : 31/08/2012

    [Resolvido]Importar dados de uma tabela dando sequencia na numeração dos registros Empty Re: [Resolvido]Importar dados de uma tabela dando sequencia na numeração dos registros

    Mensagem  Chamon Consultoria em 27/11/2016, 20:01

    Solução abaixo. Créditos para Damasceno Jr.

    Dim rsOrigem As Recordset 'declaro a variável que receberá os registros da tabela origem
    Dim rsDestino As Recordset 'declaro a variável que receberá os registros da tabela destino
    Dim L As Long 'declaro a variável que me auxiliará na numeração automática do campo id Produto

    Set rsOrigem = CurrentDb.OpenRecordset("prod") 'carrego a tabela prod na memória do VBA
    Set rsDestino = CurrentDb.OpenRecordset("tbl_produtos") 'carrego a tabela tbl_produtos na memória do VBA
    L = DMax("CODPRO", "tbl_produtos") + 1 'atribuo à variável L o maior valor da coluna id Produto + 1

    While Not rsOrigem.EOF 'marco o início de uma estrutura de repetição dizendo: ENQUANTO NÃO FOR O FINAL DOS REGISTROS DA TABELA PROD
    rsDestino.AddNew 'vá para a posição de novo registro da tabela tbl_produtos
    rsDestino!CODPROFOR = rsOrigem!cProd 'caso os campos
    rsDestino!ccNomPro = rsOrigem!xProd 'caso os campos
    rsDestino!ccNCM = rsOrigem!NCM 'caso os campos
    rsDestino!ccMedida = rsOrigem!uCom 'caso os campos
    rsDestino!ccPreçoCusto = rsOrigem!vUnCom 'caso os campos
    rsDestino!CODPRO = L 'meu campo id Produto receberá o valor da variável L
    rsDestino.Update 'salvo o registro que adicionei na tabela tbl_produtos
    rsOrigem.MoveNext 'movo-me para o próximo registro da tabela prod
    L = L + 1 'adiciono + 1 à minha variável L, já que a usarei para adicionar um outro registro se necessário
    Wend 'marco o final da minha estrutura de repetição

    rsOrigem.Close 'fecho a tabela prod
    Set rsOrigem = Nothing 'e a descarrego da memória
    rsDestino.Close 'fecho a tabela tbl_produtos
    Set rsDestino = Nothing 'e a descarrego da memória

    MsgBox "Operação concluída.", vbInformation, "Informação" 'aviso sobre a conclusão da operação
    'questiono se desejo apagar os registros da tabela prod, se a resposta for não, o código não avança
    If MsgBox("Deseja excluir os registros da tabela prod?", vbYesNo + vbQuestion + vbDefaultButton1, "Excluir") = vbNo Then Exit Sub
    CurrentDb.Execute "delete from prod" 'deleto todos os registros da tabela prod

      Data/hora atual: 23/2/2020, 00:49