none
VBA - Importar valores do excel 2003 para o access 2003 como faço? RRS feed

  • Pergunta

  • Olá pessoal,

    Eu estou tentando fazer um script em VBA no qual eu importo determinados valores de celulas (Strings) no Excel para meu banco de dados Access. Tive dificuldade para achar esse tipo de codigo... e consegui um que chega proximo do que eu quero, mas nesse codigo ele busca por referencia a nomes de celulas no Excel (não tenho certeza). Vi também que existem comandos como Range("").Value e Cells(1,1).Value que fazem exatamente o que eu preciso... mas eu infelizmente não sei como aplica-los no meu codigo. Segue meu codigo :

    Function CargaImpact()


    Set fs = Application.FileSearch
    Dim strQry As String
    Dim myRec As DAO.Recordset
    Dim dbExcel As DAO.Database
    Dim rsExcel As DAO.Recordset
    Set myRec = CurrentDb.OpenRecordset("Pesquisa")
    fs.LookIn = "C:\Documents and Settings\galves\My Documents\Projeto Office\Pesquisas"
    fs.Execute
    fs.FileName = "*.*"
    MsgBox fs.FoundFiles.Count

    For i = 1 To fs.FoundFiles.Count
    Set dbExcel = OpenDatabase(fs.FoundFiles(i), False, True, "Excel 8.0; HDR=YES;")
    Set rsExcel = dbExcel.OpenRecordset("Sheet1$")
    Do While Not rsExcel.EOF
    myRec.AddNew

    myRec.Fields("Incident ID") = rsExcel.Fields("Incident ID")
    myRec.Fields("day") = Day(rsExcel.Fields("Open Time"))
    myRec.Fields("month") = Month(rsExcel.Fields("Open Time"))
    myRec.Fields("hour") = Hour(rsExcel.Fields("Open Time"))
    myRec.Fields("Contact") = rsExcel.Fields("Contact")
    myRec.Fields("Location") = rsExcel.Fields("Location")
    myRec.Fields("Description") = Left(rsExcel.Fields("Brief Description"), 254)
    myRec.Fields("Opened By") = rsExcel.Fields("Opened By")
    myRec.Fields("CI") = rsExcel.Fields("CI Name")
    myRec.Fields("auto") = rsExcel.Fields("Automated (excl Resolved)")
    myRec.Fields("Problem Status") = rsExcel.Fields("Problem Status")
    myRec.Fields("Status") = rsExcel.Fields("Status")
    myRec.Fields("file") = fs.FoundFiles(i)
    myRec.Update

    'Read records and process data
    rsExcel.MoveNext
    Loop

    Next i
    End Function


    Obrigado desde já pela atenção,

    Aguardo Respostas.
    quarta-feira, 29 de setembro de 2010 01:19

Todas as Respostas