VBA compileerfout bij gebruik voorbeeld DB om documenten te linken aan formulierknop

Status
Niet open voor verdere reacties.

stefcar

Gebruiker
Lid geworden
12 jul 2010
Berichten
7
Ik heb enige tijd het voorbeeld van een db gevonden om de opdracht uit te voeren dat een knop in een formulier een ander bestand opent (bijv. een PDF file).
Door in de VBA formulering aanpassingen aan te brengen in functie van mijn database (Access 2003), hoopte ik dat het geheel zou werken. Nu geeft de VBA een compileerfout aan en staat de eerste regel in het geel: "Een door de gebruiker gedefinieerd gegevenstype is niet gedefinieerd

Ik ken niets van VBA programmering en vraag hierbij dat iemand mij stap voor stap kan aangeven hoe ik deze compileerfout kan verbeteren. Dit is de VBA formulering:

Private Sub KNO_DOC_Click()
'Declare a variable as a FileDialog object.
Dim fd As FileDialog (STAAT BLOK GEBLOKT)

'Create a FileDialog object as a File Picker dialog box.
Set fd = Application.FileDialog(msoFileDialogFilePicker)

'Declare a variable to contain the path
'of each selected item. Even though the path is a String,
'the variable must be a Variant because For Each...Next
'routines only work with Variants and Objects.
Dim vrtSelectedItem As Variant

'Use a With...End With block to reference the FileDialog object.
With fd
If IsNull(Me.lijst_documentlocatie) Or Me.lijst_documentlocatie = "" Then
MsgBox ("Voer eerst de locatie van de documenten in!"), vbInformation, "Let op!"
Me.lijst_documentlocatie.SetFocus
Exit Sub
Else
.InitialFileName = Forms!Frm_projectdocumenten![Frm_documenten]!lijst_documentlocatie.Column(1)
.Filters.Add "Documenten", "*.xls; *.pdf; *.rtf; *.png; *.ppt; *.doc; *.msg", 1
.Filters.Add "Alle bestanden", "*.*", 2
End If
'Use the Show method to display the File Picker dialog box and return the user's action.
'The user pressed the action button.
If .Show = -1 Then

'Step through each string in the FileDialogSelectedItems collection.
For Each vrtSelectedItem In .SelectedItems

'vrtSelectedItem is a string that contains the path of each selected item.
'You can use any file I/O functions that you want to work with this path.
'This example simply displays the path in a message box.
Me.Documentnaam = ""
Me.Documentnaam = vrtSelectedItem

Next vrtSelectedItem
'The user pressed Cancel.
Else
End If
End With

'Set the object variable to nothing.
Set fd = Nothing

End Sub



thanks bij voorbaat
 
Om te beginnen, zeker als je zo'n grote lap code post: zet 'm in de Code tag, dan is-tie wat leesbaarder, en hou je de totale hoogte van de tekst binnen de perken. Dus graag aanpassen straks!
Waarschijnlijk moet je nog een bibliotheek laden in het VBA scherm. Zo uit mijn hoofd, is dat de Microsoft Office # Object Library, waarbij het # voor een getal staat. Kan 10 zijn, 11, 12 etc.
Als je die bibliotheek hebt geladen, zou het project moeten werken. Kijk anders in de db waar je 'm uit hebt gehaald, want daar staat de juiste verwijzing wel in.
 
Om te beginnen, zeker als je zo'n grote lap code post: zet 'm in de Code tag, dan is-tie wat leesbaarder, en hou je de totale hoogte van de tekst binnen de perken. Dus graag aanpassen straks!
Waarschijnlijk moet je nog een bibliotheek laden in het VBA scherm. Zo uit mijn hoofd, is dat de Microsoft Office # Object Library, waarbij het # voor een getal staat. Kan 10 zijn, 11, 12 etc.
Als je die bibliotheek hebt geladen, zou het project moeten werken. Kijk anders in de db waar je 'm uit hebt gehaald, want daar staat de juiste verwijzing wel in.
 
Bedankt voor het advies maar waar is deze bibliotheek te vinden - moet ik daarvoor terecht in de modules???.
In bijlage heb ik het oorspronkelijk DB-document toegevoegd. Kan u achterhalen waar, van waar en wat ik moet toevoegen, dan kan mijn DB werken en ben ik de gelukkigste mens.
 

Bijlagen

Vanuit elk VBA scherm kun je dat regelen, dus vanuit de geopende db op <Alt>+<F11> drukken, en dan naar <Extra>, <Verwijzingen>. Het gaat overigens om de bibliotheek [Microsoft Scripting Runtime], die het dialoogvenster aanstuurt. In bijgaande db zitten de goede instellingen.
 
Beste Octafish,


wellicht heb je al veel mensen gelukkig gemaakt,
voor mij geldt dit: YOU'VE MADE MY DAY :d:d

voor mij is het nu duidelijk: vergelijk de <Verwijzingen> van de beide DB's en het marcheert. :thumb::thumb:
 
Michel,

De bijlage is het voorbeeld bestandje (heb ik ooit geplaatst). Daarin zijn alle verwijzingen al aanwezig. Je posting met de verwijzing naar de office lib was al voldoende. Deze zal TS aan zijn db moeten toevoegen. De scripting runtime is niet nodig.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan