03. maj 2004 - 12:57Der er
8 kommentarer og 2 løsninger
DoCmd.TransferSpreadsheet skriv i ark der findes
hvordan får jeg DoCmd.TransferSpreadsheet til at skrive i et ark der allerede er i excel (fx "ark1")
den kommer ikke med nogle fejl men ligger datane i et andet ark selv om jeg prøver: DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, fors, sti, False, "Ark1" eller DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, fors, sti, -1, "Ark!A1:B10"
hvordan får jeg den til at ligge datane i fx ark1?
as far as I know you can NOT transfer the data into an existing speadsheet. Take a look at help and you will see that the Range parameter is only valid when importing
Range Optional Variant. A string expression that's a valid range of cells or the name of a range in the spreadsheet. This argument applies only to importing. Leave this argument blank to import the entire spreadsheet. When you export to a spreadsheet, you must leave this argument blank. If you enter a range, the export will fail.
Hvis du har mod på det kan du gøre det ved at åbne dit eksisterende ark og så tilføje data række for række, hvor du selv bestemmer placeringen. :c)
Noget i retning af:
Dim Exl As New Excel.Application Dim WrkBook As Excel.Workbook Dim rs As DAO.Recordset
Set WrkBook = Exl.Workbooks.Open("C:\Stien til din Excel fil") Set rs = CurrentDb.OpenRecordset(strSQL) ' Open a Database Recordset
' Export Recordset Data to Excel Row by Row For i = 1 To rs.RecordCount For j = 1 To rs.Fields.Count - 1 WrkBook.Sheets(1).Cells(i + 2, j).Value = rs.Fields(j) Next j rs.MoveNext Next i
hubs har prøvet den metode men problemet er at jeg skal skrive en query ud og hvis jeg tager sqlen ud af min query bliver den ikke rigtig kun med TransferSpreadsheet ??
Jamen kan du så ikke bare bruge QueryDef, jeg bruger selv følgende:
strSQL = "SELECT * FROM [Table] WHERE X = '" & Me.Name & "' ORDER BY Date DESC" Set qdf = CurrentDb.CreateQueryDef("ExcelExport", strSQL) ' Define and Creat a Query ExportToExcel CurrentDb.QueryDefs("ExcelExport").SQL ' Initiate ExportToExcel Function DoCmd.DeleteObject acQuery, "ExcelExport" ' Delete Query
Public Function ExportToExcel(strSQL As String) On Error GoTo Err_ExportToExcel ' Export Data to Excel Based on Previously Defined Query
Screen.MousePointer = 11 ' Set Cursor Type to 'Busy' (hourglass)
' Prepare Excel Sheet Dim Exl As New Excel.Application Dim WrkBook As Excel.Workbook Dim rs As DAO.Recordset Dim i As Integer, j As Integer
Set WrkBook = Exl.Workbooks.Add Set rs = CurrentDb.OpenRecordset(strSQL) ' Open Database Recordset
If rs.EOF And rs.BOF Then GoTo Exit_ExportToExcel rs.MoveLast rs.MoveFirst ' Set Pointer at Start of Recordset
' Insert Default Field Names in Excel and Define Column Width For j = 1 To rs.Fields.Count - 1 WrkBook.Sheets(1).Cells(1, j).Value = rs.Fields(j).Name strVAR = Len(rs.Fields(j).Name) + 2 If strVAR < 6 Then strVAR = 6 End If WrkBook.Sheets(1).Cells(1, j).ColumnWidth = strVAR Next j WrkBook.Sheets(1).Cells(1, 1).ColumnWidth = strVAR + 10 ...
får en fejl med: Dim Exl As New Excel.Application (fejl: User-defined type not defined) sys også din start ser underlig ud jeg skal tage CurrentDb.QueryDefs("ExcelExport").SQL direkte fra en query der er blevet designet i access query design og derfor får jeg en masse underlige fejl som firkanter i min sql streng?
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.