25. marts 2003 - 10:41Der er
30 kommentarer og 1 løsning
MEGA problem med eksport.... haster
Jeg kører access 97 med et tilbagevendende problem. I denne køres en kode der laver et output til excel fra en query på 22000 records samt 30 kolonner. Dette i sig selv er jo ikke en excel begrænsning Men...
access kommer med flg. fejlkode : Run-time error '2306': There are too many rows to output, based on the limitation specified by the output format or by Microsoft Access.
koden der bruges er :
DoCmd.OutputTo acOutputQuery, "PIM med manglende lagerførte i PIM_subform_Niller", acFormatXLS, "", False, ""
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Nope.... Fejlmed. kommer uden den genererer noget output.
På statusindikatoren kan man se den outputter objectet med den tænker meget når den er ca. 75 % i mål. da kommer fejlmedd. med mulighed for debug eller END. Ved debug kommer man bare ind på linien hvor koden står.
Ja jeg har prøvet Docmd.Transferspreadsheet. den store ulempe i denne er at man ikke får mulighed for navngivning samt lokation for filens ønskede placering.
Er der de samme limits på access - xls i access 2K ?
terry>> Det var i output øjemed jeg mente... ved transfer skal du i scriptet have defineret din 'sti' Denne er valgbar som en 'save as' når der benyttes 'output'
'XP (og '2000) har mange nye gode fasciliteter i forhold til '97.
Access 97 var dog nok en af de mest stabile versioner af Access (sammen med version 2.0 (!)). Jeg oplever generelt lidt flere driftsproblemer i de nyere versioner hos mine kunder - skræmmende, ikke sandt?!!
Hej, ikke fordi dette løser dit problem, men måske en forklaring. Jeg er selv stødt på samme problem, ikke kun ved eksport fra Access, men i diverse dataoverførsler fra bla. AS400. Excel 97 har i disse tilfælde en begrænsning på 16383 records. Årsagen tror jeg vi bliver nødsaget til at spørge "Bill" om.
Jeg plejer at bruge denne function: den virker både i 2000 og 97
Function tilExcell(strSQL As String) On Error GoTo eHandler
Screen.MousePointer = 11
Dim objXlApp As New Excel.Application Dim objXlWrkBook As Excel.Workbook
Set objXlWrkBook = objXlApp.Workbooks.Add
Dim rs As DAO.Recordset Dim i As Integer, j As Integer
Set rs = CurrentDb.OpenRecordset(strSQL)
If rs.EOF And rs.BOF Then GoTo ExitHer rs.MoveLast rs.MoveFirst For j = 0 To rs.Fields.Count - 1 objXlWrkBook.Sheets(1).Cells(1, j + 2).Value = rs.Fields(j).Name Next j
For i = 1 To rs.RecordCount For j = 0 To rs.Fields.Count - 1 objXlWrkBook.Sheets(1).Cells(i + 2, j + 2).Value = rs.Fields(j) Next j rs.MoveNext Next i
objXlApp.Visible = True
rs.Close Set rs = Nothing Set objXlWrkBook = Nothing Set objXlApp = Nothing
Jeg arbejder samme sted som Hnto og er den der har brug for koden.
Når jeg bruger nedenstående modul fejler den på:
linien: Set rs = CurrentDb.OpenRecordset(strSQL)
fejl: Too few parameters. Expected <number>. (Error 3061)
This parameter query requires the specified number of parameters, which you didn't supply. Provide the expected number of parameters, and run the query again. In some cases, this message is generated when unknown field names or expressions are interpreted as query parameters. Be sure to enclose field names containing spaces or punctuation with square brackets [ ].
hvordan får jeg rettet i koden, således at den også tillader "null" værdier som nogle gange består af 2-3 spaces
Det er muligvis fejlen?? eller er der andre forslag til hvorfor den fejler
ps. jeg forsøger at gemme 12 kolonner og 10 rækker
--------------------------------------
Function tilExcell(strSQL As String) On Error GoTo eHandler
Screen.MousePointer = 11
Dim objXlApp As New Excel.Application Dim objXlWrkBook As Excel.Workbook
Set objXlWrkBook = objXlApp.Workbooks.Add
Dim rs As DAO.Recordset Dim i As Integer, j As Integer
Set rs = CurrentDb.OpenRecordset(strSQL)
If rs.EOF And rs.BOF Then GoTo ExitHer rs.MoveLast rs.MoveFirst For j = 0 To rs.Fields.Count - 1 objXlWrkBook.Sheets(1).Cells(1, j + 2).Value = rs.Fields(j).Name Next j
For i = 1 To rs.RecordCount For j = 0 To rs.Fields.Count - 1 objXlWrkBook.Sheets(1).Cells(i + 2, j + 2).Value = rs.Fields(j) Next j rs.MoveNext Next i
objXlApp.Visible = True
rs.Close Set rs = Nothing Set objXlWrkBook = Nothing Set objXlApp = Nothing
Dim i As Integer, j As Integer til Dim i As long, j As long
Synes godt om
Ny brugerNybegynder
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.