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


    Exportar uma linha (row) do Excel para o Access.

    avatar
    MRui
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11
    Registrado : 15/04/2012

    Exportar uma linha (row) do Excel  para o Access. Empty Exportar uma linha (row) do Excel para o Access.

    Mensagem  MRui 2/1/2013, 23:29

    Quem me poderá ajudar,

    Pretendo colocar um comando numa folha Excel (Office 2010)para exportar automaticamente para o Access os dados de apenas uma linha podendo no entanto ter várias colunas. A outra condição será de a mesma DB por cada registo que receba do Excel mo coloque numa nova linha (não apagando os anteriores. A macro vba será executada a partir da folha de Excel.

    Como sou muito, muito básico em vba, procurei na web um script que pudesse atender à minha necessidade, acabando por encontrar um que, no entanto me dá um erro na linha abaixo sinalizada a vermelho.

    Se alguém me puder ajudar agradecia.
    Desde já obrigado e um Bom ano de 2013 para todos

    Outros elementos a considerar:

    office Porfissional plus 2010
    Windows 7, 32 bits
    a BD a abrir chama-se: Obspreventivas.accdb
    A Sheet do excel onde está a linha chama-se: OBSP
    O file Excel onde está a Sheet anterior chama-se: ObsPrev.xlsm
    Na foto podem ver as referências do projeto VBA que estão abertas
    Instalei o o Microsoft DataBase Engine 2012

    Aqui vai o script:

    Sub ExcelToAccess()

    'Declare variables

    Dim dbConnection As ADODB.Connection
    Dim dbFileName As String
    Dim dbRecordset As ADODB.Recordset
    Dim xRow As Long, xColumn As Long
    Dim LastRow As Long

    'Go to the worksheet containing the records you want to transfer.

    Worksheets("OBSP").Activate

    'Determine the last row of data based on column A.

    LastRow = Cells(Rows.Count, 1).End(xlUp).Row

    'Create the connection to the database.

    Set dbConnection = New ADODB.Connection

    'Define the database file name

    dbFileName = "E:\Documentos Pai\Central Cervejas\ObservPreventivas\Obspreventivas.accdb"

    'Define the Provider and open the connection.

    With dbConnection
    .Provider = "Microsoft.ACE.OLEDB.12.0;Data Source=" & dbFileName & _
    ";Persist Security Info=False;"
    .Open dbFileName
    End With

    'Create the recordset

    Set dbRecordset = New ADODB.Recordset
    dbRecordset.CursorLocation = adUseServer
    dbRecordset.Open Source:="Tabela1", _
    ActiveConnection:=dbConnection, _
    CursorType:=adOpenDynamic, _
    LockType:=adLockOptimistic, _
    Options:=adCmdTable

    'Loop thru rows & columns to load records from Excel to Access.
    'Assume row 1 is the header row, so start at row 2.


    For xRow = 2 To 2 'LastRow
    dbRecordset.AddNew

    'Assume this is an 8-column (field) table starting with column A.

    For xColumn = 1 To 8
    dbRecordset(Cells(1, xColumn).Value) = Cells(xRow, xColumn).Value ' o script pára aqui nesta linha. Abre a BD mas não inicia a cópia das células

    Next xColumn
    dbRecordset.Update
    Next xRow

    'Close the connections.

    dbRecordset.Close
    dbConnection.Close

    'Release Object variable memory.

    Set dbRecordset = Nothing
    Set dbConnection = Nothing

    'Optional:
    'Clear the range of data (the records) you just transferred.
    'Range("A2:H" & LastRow).ClearContents
    End Sub

      Data/hora atual: 2/5/2024, 00:18