Avatar billede jensen363 Forsker
08. december 2008 - 09:09 Der er 1 løsning

Kopierer data til Excel

Nedenstående funktion benyttes til at kopiere udvalgte data til Excel.

Public Function sCopyRSToNamedRange_001()
Dim objXL As Excel.Application
Dim objWkb As Excel.Workbook
Dim objSht As Excel.Worksheet
Dim db As Database
Dim rs As Recordset

Const conMAX_ROWS = 20000
Const conSHT_NAME = "Short Term Bookings"
Const conWKB_NAME = "\\Cphfil-01\managementflash\MailReport\ManagementFlash.xls"
Const conRANGE = "A131:I159"

  Set db = CurrentDb
  Set objXL = New Excel.Application
  Set rs = db.OpenRecordset("Arrival_5_Weeks_1")
  With objXL
    .Visible = False
    Set objWkb = .Workbooks.Open(conWKB_NAME)
    On Error Resume Next
    Set objSht = objWkb.Worksheets(conSHT_NAME)
    If Not Err.Number = 0 Then
      Set objSht = objWkb.Worksheets.Add
      objSht.Name = conSHT_NAME
    End If
    Err.Clear
    On Error GoTo 0
    objSht.Range(conRANGE).CopyFromRecordset rs
   
  objWkb.Close SaveChanges:=True
  objXL.Quit
   
  End With
   
  Set objSht = Nothing
  Set objWkb = Nothing
  Set objXL = Nothing
  Set rs = Nothing
  Set db = Nothing

End Function

Const conRANGE = "A131:I159" er det område jeg forventede at blive overskrevet ved hver kopiering, men hvis mit datasæt fra Access er mindre end dette område overskrives kun det område i conRange der svarer til mit datasæt fra Access med det resultat at der kan være data fra tidligere kopieringer der ikke slettes, hvilket er meget uheldigt idet jeg efterfølgende summerer på forkerte data i Excel

Hvad kan gøres anerledes ?
Avatar billede jensen363 Forsker
08. december 2008 - 10:21 #1
objSht.Range(conRANGE).ClearContents

før

objSht.Range(conRANGE).CopyFromRecordset rs

løste problemet
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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