Avatar billede bredan1977 Nybegynder
17. januar 2005 - 12:04 Der er 4 kommentarer og
1 løsning

Hjælp til import fra Excel til Access?

Jeg har det her lille problem! Den virker fint hvis der allerede findes et recordset der matcher i Access Databasen. Men hvis der ikke gør, skal den addnew og så hoppe videre til næste i Excel arket....

Her er min kode:


Private Sub ImporterPriser()
Dim xlApp As Excel.Application
Dim xlWb As Excel.Workbook
Dim xlWs As Excel.Worksheet
Dim rsImportPriser As Recordset
Dim Import_Varenummer As String
Dim Import_Priser As String

Set xlApp = Excel.Application
xlApp.Workbooks.Open ValgAfImportFil
xlApp.Visible = True
       
For X = 0 To 5000
   
    If xlApp.ActiveWorkbook.ActiveSheet.Range("A1").Offset(X, 0) = "" Then
    MsgBox ("The Import of the Product are Complete")
    Exit Sub
    Else
        Import_Varenummer = xlApp.ActiveWorkbook.ActiveSheet.Range("A1").Offset(X, 0)
       
        Set datDB = DBEngine.Workspaces(0).OpenDatabase(FRM_Start.SHB_DatabaseSti.Text)
        strSQL = "Select * from kundevarenummer WHERE varenummer Like '*" & Import_Varenummer & "*'"
        Set rsImportPriser = datDB.OpenRecordset(strSQL)
       
        If rsImportPriser("varenummer") <> "" Then
            rsImportPriser.Edit
            rsImportPriser("varenavn") = xlApp.ActiveWorkbook.ActiveSheet.Range("B1").Offset(X, 0)
            rsImportPriser("Disponent") = xlApp.ActiveWorkbook.ActiveSheet.Range("C1").Offset(X, 0)
            rsImportPriser("Kundefelt1") = xlApp.ActiveWorkbook.ActiveSheet.Range("D1").Offset(X, 0)
            rsImportPriser("dwg") = xlApp.ActiveWorkbook.ActiveSheet.Range("E1").Offset(X, 0)
            rsImportPriser("Kundefelt2") = xlApp.ActiveWorkbook.ActiveSheet.Range("F1").Offset(X, 0)
            rsImportPriser("mat") = xlApp.ActiveWorkbook.ActiveSheet.Range("G1").Offset(X, 0)
            rsImportPriser("pris") = xlApp.ActiveWorkbook.ActiveSheet.Range("H1").Offset(X, 0)
           
            rsImportPriser.Update
            xlApp.ActiveWorkbook.ActiveSheet.Range("A1").Offset(X, 0).Font.Color = vbBlue
        Else
            rsImportPriser.AddNew
            rsImportPriser("varenummer") = xlApp.ActiveWorkbook.ActiveSheet.Range("A1").Offset(X, 0)
            rsImportPriser("varenavn") = xlApp.ActiveWorkbook.ActiveSheet.Range("B1").Offset(X, 0)
            rsImportPriser("Disponent") = xlApp.ActiveWorkbook.ActiveSheet.Range("C1").Offset(X, 0)
            rsImportPriser("Kundefelt1") = xlApp.ActiveWorkbook.ActiveSheet.Range("D1").Offset(X, 0)
            rsImportPriser("dwg") = xlApp.ActiveWorkbook.ActiveSheet.Range("E1").Offset(X, 0)
            rsImportPriser("Kundefelt2") = xlApp.ActiveWorkbook.ActiveSheet.Range("F1").Offset(X, 0)
            rsImportPriser("mat") = xlApp.ActiveWorkbook.ActiveSheet.Range("G1").Offset(X, 0)
            rsImportPriser("pris") = xlApp.ActiveWorkbook.ActiveSheet.Range("H1").Offset(X, 0)
           
            rsImportPriser.Update
            xlApp.ActiveWorkbook.ActiveSheet.Range("A1").Offset(X, 0).Font.Color = vbBlue
        End If
    End If
Next X

rsImportPriser.Close
End Sub
Avatar billede bredan1977 Nybegynder
17. januar 2005 - 12:06 #1
Meningen er at den skal se hvad der står i eks Cell A1 og så kigge efter den i DB'en, hvis den er der, skal den EDIT og ellers skal den ADDNEW....
Avatar billede jobless Nybegynder
17. januar 2005 - 12:15 #2
Prøv:

Private Sub ImporterPriser()
Dim xlApp As Excel.Application
Dim xlWb As Excel.Workbook
Dim xlWs As Excel.Worksheet
Dim rsImportPriser As Recordset
Dim Import_Varenummer As String
Dim Import_Priser As String

Set xlApp = Excel.Application
xlApp.Workbooks.Open ValgAfImportFil
xlApp.Visible = True
       
For X = 0 To 5000
   
    If xlApp.ActiveWorkbook.ActiveSheet.Range("A1").Offset(X, 0) = "" Then
    MsgBox ("The Import of the Product are Complete")
    Exit Sub
    Else
        Import_Varenummer = xlApp.ActiveWorkbook.ActiveSheet.Range("A1").Offset(X, 0)
       
        Set datDB = DBEngine.Workspaces(0).OpenDatabase(FRM_Start.SHB_DatabaseSti.Text)
        strSQL = "Select * from kundevarenummer WHERE varenummer Like '*" & Import_Varenummer & "*'"
        Set rsImportPriser = datDB.OpenRecordset(strSQL)
       
        If not rsImportPriser.eof Then
            rsImportPriser.Edit
            rsImportPriser("varenavn") = xlApp.ActiveWorkbook.ActiveSheet.Range("B1").Offset(X, 0)
            rsImportPriser("Disponent") = xlApp.ActiveWorkbook.ActiveSheet.Range("C1").Offset(X, 0)
            rsImportPriser("Kundefelt1") = xlApp.ActiveWorkbook.ActiveSheet.Range("D1").Offset(X, 0)
            rsImportPriser("dwg") = xlApp.ActiveWorkbook.ActiveSheet.Range("E1").Offset(X, 0)
            rsImportPriser("Kundefelt2") = xlApp.ActiveWorkbook.ActiveSheet.Range("F1").Offset(X, 0)
            rsImportPriser("mat") = xlApp.ActiveWorkbook.ActiveSheet.Range("G1").Offset(X, 0)
            rsImportPriser("pris") = xlApp.ActiveWorkbook.ActiveSheet.Range("H1").Offset(X, 0)
           
            rsImportPriser.Update
            xlApp.ActiveWorkbook.ActiveSheet.Range("A1").Offset(X, 0).Font.Color = vbBlue
        Else
            rsImportPriser.AddNew
            rsImportPriser("varenummer") = xlApp.ActiveWorkbook.ActiveSheet.Range("A1").Offset(X, 0)
            rsImportPriser("varenavn") = xlApp.ActiveWorkbook.ActiveSheet.Range("B1").Offset(X, 0)
            rsImportPriser("Disponent") = xlApp.ActiveWorkbook.ActiveSheet.Range("C1").Offset(X, 0)
            rsImportPriser("Kundefelt1") = xlApp.ActiveWorkbook.ActiveSheet.Range("D1").Offset(X, 0)
            rsImportPriser("dwg") = xlApp.ActiveWorkbook.ActiveSheet.Range("E1").Offset(X, 0)
            rsImportPriser("Kundefelt2") = xlApp.ActiveWorkbook.ActiveSheet.Range("F1").Offset(X, 0)
            rsImportPriser("mat") = xlApp.ActiveWorkbook.ActiveSheet.Range("G1").Offset(X, 0)
            rsImportPriser("pris") = xlApp.ActiveWorkbook.ActiveSheet.Range("H1").Offset(X, 0)
           
            rsImportPriser.Update
            xlApp.ActiveWorkbook.ActiveSheet.Range("A1").Offset(X, 0).Font.Color = vbBlue
        End If
    End If
Next X

rsImportPriser.Close
End Sub
Avatar billede terry Ekspert
17. januar 2005 - 13:36 #3
bredan1977 can you give some feedback on this question please otherwise it isnteasy to help!
http://www.eksperten.dk/spm/580376
Avatar billede bredan1977 Nybegynder
18. januar 2005 - 10:14 #4
Jepper... den kører!
Avatar billede terry Ekspert
18. januar 2005 - 10:36 #5
bredan1977>Kan du ikke kigge på din anden spørgsmål, eller kan vi ikke hjælpe!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester