Koppelen van MSWord document aan record in Access

Status
Niet open voor verdere reacties.

ACollijn

Gebruiker
Lid geworden
11 apr 2007
Berichten
28
Hallo allemaal,

Ik heb deze vraag ook al eens op een engelstalig forum gesteld maar ik kom er toch niet helemaal uit. Misschien dat een van jullie mij kan helpen?

Voor mijn werk ben ik bezig met een database met daarin personeelsgegevens. Nu moet er bij elk record ook het rooster van de betreffende medewerker bij komen te staan. Deze roosters zijn allemaal apart opgeslagen in MSWord documenten.

Wat ik nodig heb ik een knop waarmee voor de invoerder de mogelijkheid wordt geboden om te bladeren in de computer en zo het juiste MSWord document te koppelen aan het record. Ook heb ik een knop nodig waarmee het juiste MSWord document voor de gebruiker van de database geopend word.

Kan iemand mij hier mee helpen? Voor de rest kom ik er wel goed uit. Dit is het enige wat me niet lukt (samen met mijn andere vraag :) ). Waarschijnlijk moet ik in VBA wat doen maar ik weet niet precies wat en in allerlei boeken over Access heb ik de oplossing voor mijn probleem ook niet gevonden. Als iemand weet in welk boek dit probleem beschreven staat ben ik ook al erg geholpen.

Groeten,

Annemarie Collijn
 
Probeer zo eens.

Code:
Private Sub Knop192_Click()
On Error GoTo Err_Knop192_Click

    Dim wrdobj As Word.Application
    Dim strBestand As String
  
  strBestand = "c:\Het pad waar het document zich bevind" 'formuliernaam
     
  Set wrdobj = CreateObject("Word.Application")   'Activeer het programma Word

    wrdobj.Visible = True   'Toon de word-applicatie

    wrdobj.Documents.Open (strBestand)  'Open het bestand

    wrdobj.Activate   'Activeer Word met het geopende bestand


Exit_Knop192_Click:
    Exit Sub

Err_Knop192_Click:
    MsgBox Err.Description
    Resume Exit_Knop192_Click
    
End Sub
 
Laatst bewerkt door een moderator:
Ziet er logisch uit en ik ga het ook zeker proberen, maar werkt dit ook als je aan elk record een ander worddocument moet koppelen? Ze zitten wel allemaal in dezelfde map op de computer opgeslagen....

Annemarie
 
Niet gelukt

Beste Rudi (of iemand anders),

Bedankt voor je reactie.

Het is alweer een tijd geleden dat ik mijn vraag gesteld heb maar ik ben eerder helaas niet in de gelegenheid geweest om de geboden oplossing te gebruiken. :eek: Ik denk dat ik te weinig weet van Access om dit voor elkaar te krijgen.

Rudi, ik heb geprobeerd wat je voorstelde maar helaas kom ik er niet uit. Access herkend wrdobj niet en hij herkend Word.Application ook niet helaas. Ik weet niet precies waar dat aan ligt maar hierdoor liep ik meteen bij de eerste regel al vast.

Als iemand een andere oplossing heeft, hoor ik het graag.

Het punt is dat de database al in gebruik is genomen zoals hij was. Het enige dat nog ontbrak was de mogelijkheid om per record een ander worddocument toe te voegen. Dit zou het makkelijkst zijn als er een soort "Bladeren..." knop in het formulier zat. Ik weet niet of dat mogelijk is maar ik hoop het wel.

Het grootste probleem is dat dus bij elk record een ander document moet worden toegevoegd.

Eventueel zou een laatste optie nog zijn om de informatie uit het worddocument in access in te voeren maar dat wordt ook lastig denk ik. Het gaat namelijk om weekroosters. Hierop staat aangegeven hoeveel uur men per week werkt, en welke uren, over een periode van 6 weken.

Ik hoop dat iemand mij nog kan helpen. Deze keer zal ik wel snel ermee aan de slag gaan.

Alvast heel erg bedankt!

Groeten,

Annemarie
 
Dag Annemarie,

Als ik het goed begrijp, wil je het volgende. Er zijn losse Word-documenten gemaakt, die je via een druk op een knop op een Access-formulier wilt koppelen aan een record in je database. Als je dat formulier weer opent, wil je door het klikken op die knop, dat specifieke Word-document weer openen.

Als ik je dus goed begrijp, wil je een soort document-volgsysteem. Je wilt losse Word-documenten koppelen aan je Access-database.

Dat is niet zo moeilijk te realiseren binnen Access. Access heeft namelijk OLE-velden, waarin je andere bestanden kunt opslaan (niet aan te raden), of waarin je een link naar een andere bestand kunt op nemen. Om zo iets te maken moet je het volgende doen.

1. Maak een tabel met een OLE-veld, en zet dat dat veld op een formulier.
2. Onder de dblClick-event zet je code als: docmd.runcommand acCmdInsertObject. Dat roept als het ware een menu-keuze op, waarmee je ook een object in een OLE-veld kunt plaatsen.
3. Als je dan dus dubbelklikt op dat veld op je formulier, open je een serie dialoogvensters, waarin je kunt bepalen: a. wat je wilt doen, en b. welk bestand je wilt koppelen.
4. Als je eenmaal een document in het veld hebt opgeslagen, wil je natuurlijk dat de volgende keer het Word-document alleen wordt geopend; niet dat je nog een keer een Word-document moet gaan selecteren. Daarom moet je in je code onder de double-click event Access laten controleren of het veld al gevuld is. Als het nog niet gevuld is: document gaan selecteren; als het wel gevuld is, vragen of een ander document moet worden gekozen, of het bestand moet worden geopend.
De code:

Code:
Private Sub oleDocument_DblClick(Cancel As Integer)
On Error GoTo err_oleDocument_DblClick

    'Toevoegen OLE-object als veld nog leeg is.
    'Als veld als gevuld is, moet gebruiker mogelijk foutieve invoer kunnen corrigeren.
    'De gebruiker moet er wel op gewezen worden, dat het veld al is gevuld.
    If IsNull(Me.oleDocument) Then
        DoCmd.RunCommand acCmdInsertObject
    Else
        If MsgBox("Wilt u een ander document gaan linken?", vbQuestion + vbYesNo) = vbYes Then
            DoCmd.RunCommand acCmdInsertObject
        End If
    End If
    
err_oleDocument_DblClick:
    If Err.Number = 2501 Then
        Resume Next
    End If

End Sub


Dit voorbeeld is afkomstig van de site van Access.Power, pagina Gemak - OLE.

Succes,
Ndt
 
Laatst bewerkt door een moderator:
Als je koppelingen tussen access en andere microsoft toepassingen wilt maken (bijvoorbeeld MS Word) dan is er maar één plek waar je hoeft te kijken: de site van Helen Feddema.
Ze is ook nog eens zo vriendelijk om een hele buslading code voorbeelden beschikbaar te stellen: http://www.helenfeddema.com/CodeSamples.htm
 
Bedankt!

Ontzettend bedankt allemaal voor de hulp. Het is gelukt.

Ik heb een handleiding gemaakt voor de gebruikers van de database over het toevoegen van een document en zij kunnen hiermee aan de slag.

Groeten,

Annemarie Collijn
 
Beste ...

Ik kan het bestand nu even niet vinden. Ik zal mijn collega voor wie ik het gemaakt heb vragen of die het nog heeft. We zijn inmiddels al lang klaar met het invoeren van de bestanden dus ik ben hier al een hele tijd niet meer mee bezig geweest. Mocht ik het nog vinden dan zal ik het hier posten.

Met vriendelijke groet,

Annemarie
 
bestandje

mocht je het nog vinden, dan mag je het ook mailen hoor...maar dan hebben de anderen er niks aan, maar zou hartstikke mooi zijn, kan mij weer veel werk schelen :)

groet sander
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan