21. marts 2002 - 13:37Der er
13 kommentarer og 2 løsninger
Indsætte dokument i objectramme.
Det er ikke noget problem at indsætte/redigere et worddokument i objektrammen. Problemet er at få dtabasen til selv at hente et specielt (formular) dokument når man klikker på feltet og feltet er tomt i forvejen.
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.
Hvorfor dog hente Word-dokumentet ind i Access? Lav en henvisning til Word, og når du vil se det tilhørende Word-dokument trykker du blot på en kommandoknap, der så åbner Word, og viser det dokument der svarer til posten i Access. Det er dog nødvendigt, at Access indeholder en primær nøgle der svarer til dokumentets navn for at tingene kan hænge sammen.
læg din email hvis du vil have et eksempel tilsendt. (Er på arbejde til LØR morgen - så lidt tålmodighed).
Jeg vil også være med. Følgende kode henter et Word-dokument afhængig af Access-formularens data:
On Error GoTo err_open Dim docname As String Dim objword As Word.Application Dim objdoc As Word.Document Const dir As String = "C:\opskrifter\" Const ext As String = ".doc" docname = dir & Me.Nr & ext On Error Resume Next Set objword = GetObject(, "Word.Application") Err.Clear On Error GoTo err_open If objword Is Nothing Then Set objword = GetObject("", "Word.Application") End If objword.Visible = True AppActivate "Microsoft Word" objword.Documents.Open docname Exit Sub err_open: MsgBox "fejlkode: " & Err.Number
Det forudsætter: - at dokumentet er lagret på c-drevet (Const dir as String) - at Access indeholder det primære nøglefelt Nr og word-dokumentet hedder det samme som Nr (docname = dir & Me.Nr & ext)
Koden placeres på en kommandoknap, hvor du evt kan benytte den efter en søgning efter den korrekte post i Access.
Godmorgen. >> Thomas, du har ganske ret. Det jeg ønsker er at dokumentet bliver gemt i den bundne ramme. Sagen er at dokumentet der bliver hentet ind er en formular der skal udfyldes og som hører sammen med en masse andre oplysninger der ligger i den enkelte post.
Formularen består af tomme felter som skal udfyldes forskelligt for hver post der oprettes i databasen. Jeg er bange for det ikke er godt nok at linke til et dokument, fordi det ikke kan styres efterfølgende, hvorimod hvis dokumentet er gemt i rammen vil det altid følge den enkelte post.
ps. Jeg forhøjer point, når vi er færdige, fordi det ser da ud som om det ikke er helt lige til.
Hvis du vil embedde (gemme fysisk i tabellen) så ser koden således ud: Me!OLE.Class = "Word.Document" ' Set class name. Me!OLE.OLETypeAllowed = acOLEEmbedded Me!OLE.SourceDoc = "C:\Dokumenter\MitDokument.doc" Me!OLE.SourceItem = "" Me!OLE.Action = acOLECreateEmbed Me!OLE.SizeMode = acOLESizeZoom
Jeg bruger koden på mit arbejde, hvor jeg også skal have en formular udfyldt med data der eksisterer i min db. Når jeg har udfyldt skærmen med relevante data, hentes dokumentet med disse koder, og overfører data til Worddokumentet. (Det er vist en af dine genistreger Thomas):
Dim objword As New Word.Application Dim WordDoc As New Word.Document Set WordDoc = objword.Documents.Add("C:\Programmer\Microsoft Office\Skabeloner\Opskrift.doc") Call InsertAtBookmark(WordDoc, "Opskrift", Me!Opskrift) Call InsertAtBookmark(WordDoc, "Nr", Me!Nr) Call InsertAtBookmark(WordDoc, "Krydderi", Me!Krydderi) Call InsertAtBookmark(WordDoc, "Dato", Me!Dato) Call InsertAtBookmark(WordDoc, "MType", Me!MType) Call InsertAtBookmark(WordDoc, "Personer", Me!Personer) objword.Visible = True DoCmd.Hourglass False End Sub Function InsertAtBookmark(objWordDoc As Word.Document, strBookmark As String, strText As String) As Boolean With objWordDoc.Bookmarks If .Exists(strBookmark) Then .Item(strBookmark).Range.Text = strText InsertAtBookmark = True End If End With End Function
Når jeg er færdig med Word-dokumentet lagres i det bibliotek jeg har angivet i mit svar. Posten i Access gemmes så der kan søges efter posten, og når det er gjort trykkes på en kommandoknap, og Access henter det word-dokument der hører til den aktuelles post.
Jeg har gjort det på denne måde, for ikke at db skal vokse for meget med OLE-objekter indlagt.
Dokumentet blive fint sat ind, men når jeg vil fortsætte til de andre felter i posten er jeg låst fast.
Dokumentet skal også kun indsættes hvis der ikke er et i forvejen?
Synes godt om
Slettet bruger
07. januar 2005 - 08:24#15
Der er én god grund til at gemme Word-dokumenter i en tabel: Sikkerheden. Hvis du laver applikationer, der skal opfylde registerlovens krav om beskyttede personoplysninger, må disse oplysninger ikke ligge tilgængeligt direkte i filsystemet. Typisk anvendes Word dokumenter til journaler, kontinuitetesark o.lign. inden for specialundervisning og andre sociale institutioner.
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.