Dim appExcel As Excel.Application

Status
Niet open voor verdere reacties.

epetzen

Gebruiker
Lid geworden
24 nov 2007
Berichten
73
In een modele welke een export Excel creeert geeft hij steeds de melding:

"een door een gebruiker gedefinieerd gegevenstype is niet gedefinieerd"

Bij de regel Dim appExcel As Excel.application.

De code is:

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 = “Access Contacts.xltx”
strTemplateFileAndPath

Wat moet ik doen om dit te verhelpen.

Thanks,

Peter
 
De opdracht "Dim appExcel As Excel.application" heet 'Early Binding' in vaktermen (i.t.t. 'Late Binding'; zoek maar eens op internet...).
Wat waarschijnlijk aan de hand is, is dat er geen referentie is gemaakt naar een Excel object. Dat moet namelijk bij Early Binding wel.

Maken referentie:
  • Ga in de VB-omgeving naar de menuoptie Tools > References.
  • Zoek dan het object "Microsoft Office 11.0 Object Library" op (oid: zie verderop) en vink die aan.
Let op, afhankelijk van je Office versie moet je een andere referentie kiezen:
- Microsoft Office 10.0 Object Library is MS Office 2002/XP
- Microsoft Office 11.0 Object Library is MS Office 2003
- Microsoft Office 12.0 Object Library is MS Office 2007

Succes!
 
Zonder referentie

Je kunt ook zonder referentie werken. Je moet dan de variabele als object deklararen en dan kun je de functie createobject gebruiken:
Dim appExcel as Object
Set appExcel = CreateObject(“Excel.Application”)
 
Je kunt ook zonder referentie werken. Je moet dan de variabele als object deklararen en dan kun je de functie createobject gebruiken:
Dim appExcel as Object
Set appExcel = CreateObject(“Excel.Application”)

Klopt! Zou ik ook in een latere fase zeker doen, want dan hoef je niet te refereren naar een speciale versie van MS Office. :thumb:

Als je aan het debuggen bent is Early Binding wel zo handig want dan zie je welke Excel objecten, properties en methods je ter beschikking hebt voor elk Excel object.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan