L.s.,
Ik heb de volgende VB code voor het exporteren van bepaalde velden per record naar een excel sheet.
Dit functioneert naarbehoren op het moment dat de template file 'open' staat. Als deze gesloten is gebeurd er niets.
Hiernaast vraagt hij na het exporteren onder welke naam ik hem wil opslaan. Hierbij slaat hij de file niet op met de opgegeven naam.
Kan een van jullie VB experts een kijken wat hier fout in de code staat (access en excel 2003)
Many many thanks,
Ik heb de volgende VB code voor het exporteren van bepaalde velden per record naar een excel sheet.
Dit functioneert naarbehoren op het moment dat de template file 'open' staat. Als deze gesloten is gebeurd er niets.
Hiernaast vraagt hij na het exporteren onder welke naam ik hem wil opslaan. Hierbij slaat hij de file niet op met de opgegeven naam.
Kan een van jullie VB experts een kijken wat hier fout in de code staat (access en excel 2003)
Many many thanks,
Code:
Public Function ExportToExcel()
On Error GoTo ErrorHandler
Dim dbs As DAO.Database
Dim rst As DAO.Recordset
Dim strWorksheetPath As String
Dim appExcel As Excel.Application
Dim strTemplatePath As String
Dim bks As Excel.Workbooks
Dim rng As Excel.Range
Dim rngStart As Excel.Range
Dim strTemplateFile As String
Dim wkb As Excel.Workbook
Dim wks As Excel.Worksheet
Dim lngCount As Long
Dim strPrompt As String
Dim strTitle As String
Dim strTemplateFileAndPath As String
Dim prps As Object
Dim strSaveName As String
Dim strTestFile As String
Dim strDefault As String
Set appExcel = GetObject(, "Excel.Application")
strTemplatePath = GetWorksheetTemplatesPath
strTemplateFile = "c:\export.xlt"
strTemplateFileAndPath = strTemplatePath & strTemplateFile
strTestFile = Nz(Dir(strTemplateFileAndPath))
Debug.Print "Test file: " & strTestFile
If strTestFile = "" Then
MsgBox strTemplateFileAndPath & " Export.xls niet gevonden; " & "Kan Exel export hierdoor niet maken"
GoTo ErrorHandler
End If
strWorksheetPath = GetWorksheetsPath
Debug.Print "Worksheet; template And Path: " & strTemplateFileAndPath
Set bks = appExcel.Workbooks
Set wkb = bks.Add(strTemplateFileAndPath)
Set wks = wkb.Sheets(1)
wks.Activate
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("query PO2 klein", dbOpenDynaset)
rst.MoveLast
rst.MoveFirst
lngCount = rst.RecordCount
If lngCount = 0 Then
MsgBox "Geen Records aanwezig"
GoTo ErrorHandler
Else
strPrompt = "Exporteren van " & lngCount & " records naar Excel"
strTitle = "Exporteren"
MsgBox strPrompt, vbInformation + vbOKOnly, strTitle
End If
Set rngStart = wks.Range("A3")
rngStart.Activate
With rst
Do Until .EOF
rngStart.Activate
rngStart.Value = Nz(![Project])
Set rng = appExcel.ActiveCell.Offset(columnoffset:=1)
rng.Value = Nz(![OpstelpuntId])
Set rng = appExcel.ActiveCell.Offset(columnoffset:=2)
rng.Value = Nz(![Site type])
Set rng = appExcel.ActiveCell.Offset(columnoffset:=3)
rng.Value = Nz(![Plaats])
Set rng = appExcel.ActiveCell.Offset(columnoffset:=4)
rngStart.Activate
Set rngStart = appExcel.ActiveCell.Offset(rowoffset:=1)
.MoveNext
Loop
End With
MsgBox "Alle Records zijn geëxporteerd"
Set prps = appExcel.ActiveWorkbook.BuiltinDocumentProperties
strSaveName = strWorksheetPath & prps("Title") & "Export Klein-" & Format(Date, "dd-mm-yy")
Debug.Print "Worksheet save name: " & strSaveName
On Error Resume Next
Kill strSaveName
On Error GoTo ErrorHandler
strPrompt = "Geef de file een naam"
strTitle = "Opslaan"
strDefault = strSaveName
strSaveName = InputBox(prompt:=strPrompt, Title:=strTitle, Default:=strDefault)
wkb.SaveAs FileName:=strSaveName, FileFormat:=xlsWorkbookDefault
appExcel.Visible = True
ErrorHandler:
Exit Function
If Err = 429 Then
Set appExcel = CreateObject("Excel.Application")
Resume Next
Else
MsgBox "error No: " & Err.Number & "; description: " & Err.Description
Resume ErrorHandler
End If
End Function
Laatst bewerkt door een moderator: