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

    [Resolvido]Importar dados de Excel para Access (um campo em access recebe valor de dois campos do excel)

    avatar
    Maçom
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 42
    Registrado : 06/02/2010

    [Resolvido]Importar dados de Excel para Access (um campo em access recebe valor de dois campos do excel) Empty [Resolvido]Importar dados de Excel para Access (um campo em access recebe valor de dois campos do excel)

    Mensagem  Maçom 16/2/2014, 23:55

    Tenho uma tabela Pontos em access com os seguintes campos

    [Nº ORD]   [CCusto]      [DataInicio]       [DataFim]      [%Imput]
        1230   147008952     22-01-2014      23-01-2014         50%
        1230        9405         22-01-2014      23-01-2014         50%


    A tabela em Excel tem mais um campo

    [Nº pess.]   [Elemento PEP]         [Centro cst]       [Início]             [Fim]               [%]
        1230        147008952                                  22-01-2014      23-01-2014         50%
        1230                                         9405          22-01-2014      23-01-2014         50%

    O que pretendo é fazer um procedimento que quando importo osdados do Excel para o Access, elimina os dados da tabela Pontos em access e substitui pela do Excel, mas como a tabela do excel tem mais um campo, quando o campo [Elemento PEP] está vazio, este ficaria com o valor do campo [Centro cst] e quando o campo [Centro cst] está vazio, ficaria com o valor do campo [Elemento PEP]

    ou seja na tabela Pontos do accesso o campo [CCusto], recebe os valores dos campos [Elemento PEP] e [Centro cst] da tabela em Excel

    Se alguem tiver uma idei como fazer o código, agradeço

    Grato
    avatar
    Maçom
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 42
    Registrado : 06/02/2010

    [Resolvido]Importar dados de Excel para Access (um campo em access recebe valor de dois campos do excel) Empty Importar dados de Excel para Access (um campo em access recebe valor de dois campos do excel)

    Mensagem  Maçom 19/2/2014, 18:23

    aqui está!.. resolvido com ajuda fora deste forum

    fica o resultado para estudo

    Dim db As DAO.Database
    Dim livroExcel As Object
    Dim folhaExcel As Object

    Sub limparTabela(nomeTabela As String)

    Set db = CurrentDb

    db.Execute ("DELETE FROM " & nomeTabela)

    db.Close

    End Sub

    Sub processarSFT(path As String)


    Set db = CurrentDb

    ' ler dados Excel
    Set livroExcel = getAllExcelData(path)
    Set folhaExcel = livroExcel.Sheets(1)

    numLinha = 2
    texto = ""

    While (folhaExcel.Cells(numLinha, 1).Value <> "" Or folhaExcel.Cells(numLinha, 1).Value = Null)

       nPess = folhaExcel.Cells(numLinha, 1).Value
       
       centro = folhaExcel.Cells(numLinha, 2).Value
       If (centro = "" Or centro = Null) Then
               centro = folhaExcel.Cells(numLinha, 3).Value
       End If

       percent = folhaExcel.Cells(numLinha, 4).Value
       inicio = Replace(folhaExcel.Cells(numLinha, 5).Value, ".", "-")
       fim = Replace(folhaExcel.Cells(numLinha, 6).Value, ".", "-")
       
       sqlString = "INSERT INTO PONTOS "
       sqlString = sqlString + "([Nº ORD], [CCusto], [DataInicio], [DataFim], [%Imput]) "
       sqlString = sqlString + "VALUES "
       sqlString = sqlString + "(" & nPess & ", " & centro & ", '" & inicio & "', '" & fim & "', " & percent & ")"
       
       db.Execute (sqlString)

       numLinha = numLinha + 1
       
    Wend

    db.Close

    Call fecharLivroXls

    MsgBox ("Operação concluída!")

    End Sub

    Function getAllExcelData(caminho As String) As Object


    Dim objExcelApp As Object

    Set objExcelApp = CreateObject("Excel.Application")

    Set getAllExcelData = objExcelApp.Workbooks.Open(caminho)


    End Function

    Sub fecharLivroXls()


    'Close the workbook
    livroExcel.Close
    Set livroExcel = Nothing

    ' ***************************************** <-----------------!
    'DoCmd.RunCommand acCmdAppMaximize

    End Sub

      Data/hora atual: 27/1/2023, 04:51