none
Transferir dados para banco access em lote RRS feed

  • Pergunta

  • Caros,

    Utilizo a macro abaixo para transferir os dados da planilha para o access.

    Mas a planilha tem mais de 10000 linhas e a macro vai lendo linha a linha

    tem como mudar o código para que ele transfira tudo de uma vez.

    Sub Imp_PA()

    Dim CX As New MinhaConexao

    Dim cn As ADODB.Connection
    Dim rs As ADODB.Recordset
    Dim r As Long

    CX.Conectando

    Set Dados = New ADODB.Recordset

    Dados.Open "Cad_P", CX.conn, adOpenKeyset, adLockOptimistic, adCmdTable

    Sheets("Base_dados").Select
    r = 4

    Do While Len(Range("x" & r).Formula) > 0

    With Dados
    .AddNew
    .Fields("P_Cod") = Range("X" & r).Value
    .Fields("P_OP") = Range("Y" & r).Value
    .Fields("P_ID") = Range("Z" & r).Value
    .Fields("P_Nome") = Range("AA" & r).Value
    .Fields("P_Turno") = Range("AD" & r).Value
    .Fields("P_Obs") = Range("AE" & r).Value
    .Update
    End With

    r = r + 1
    Loop

    CX.Desconectando

    Set rs = Nothing
    End Sub


    quarta-feira, 7 de março de 2018 22:22

Todas as Respostas

  • Abra o access e na aba "Dados Externos" tem uma opção para importar planilha do excel.

    Não sei se existe essa opção utilizando VBA no excel, mas você pode aumentar a velocidade do código fazendo um loop em uma array no lugar de range.

    quinta-feira, 8 de março de 2018 16:40