olona Skrevet 26. august 2005 Del Skrevet 26. august 2005 Hei. Jeg holder på med en access database, men siden jeg bruker VBA så prøver jeg her. Har et OLE object i en access database som jeg ønsker å lagre på disk. Hvordan? O. Lenke til kommentar
aadnk Skrevet 26. august 2005 Del Skrevet 26. august 2005 Dette varierer nok fra objekt til objekt, men jeg vil tro du kun behøver å hente ut informasjonen fra objektet og dernest flytte det over i en fil således: Dim Free As Long ' Hent ledig filoperasjonspeker Free = FreeFile ' Åpne fil som tekst Open "C:\Test.txt" For Output As #Free ' Skriv forskjellige linjer til filen Print #Free, "Testverdi: Hallo verden" Print #Free, "Tester ..." Print #Free, "Slutt." ' Lukk fil Close #Free Lenke til kommentar
olona Skrevet 26. august 2005 Forfatter Del Skrevet 26. august 2005 (endret) ville tro at det skulle være en enklere måte å gjøre det på....objOle.save ... for eksempel...det var jo så enkelt å få det inn i basen, hvorfor ikke enkelt å få det ut? edit: men, takk for svar :-) Det jeg egentlit skal gjøre er fra access å åpne et word dokument basert på en mal jeg har lagret i databasen. ideer? O. Endret 26. august 2005 av olona Lenke til kommentar
aadnk Skrevet 26. august 2005 Del Skrevet 26. august 2005 Du kan vel lage et Word-objekt via CreateObject og flytte informasjonen fra malen over der? Da burde all informasjon befinne seg i et Word-dokument etter overføringen: Dim Word As Object, Document As Object ' Initialiser Word-objektet Set Word = CreateObject("Word.Application") ' Vis applikasjon Word.Visible = True ' Lag et nytt dokument (her kan du evt. spesifisere en mal) Set Document = Word.Documents.Add ' Sett dokumentets tekst Document.Range().Text = "Hallo verden!" ' Lagre dokument Document.SaveAs "C:\Test.doc" ' Lukk dokument og applikasjon Document.Close Word.Quit ' Rydd opp (svært vesentlig) Set Document = Nothing Set Word = Nothing Lenke til kommentar
olona Skrevet 26. august 2005 Forfatter Del Skrevet 26. august 2005 (endret) Igjen, takk forsvar. Den delen får jeg til. Det er hva som skjer forut, å "hente" ole objectet til Word Eksempel: "Fil" er mitt navn på OLE object. Dim obj As Object Set obj = Me.Fil.Object.Application.WordBasic Me.Fil.Action = acOLEActivate Da har jeg et word dokument aktivert. Når jeg da vil lagre dette, tenkte jeg at man kunne gjøre: obj.activeDocument.SaveAs "c:\ny.doc" Men da får jeg feilmelding: "The remote server machine does not exist or is unavailable" Det jeg tenker jeg må gjøre er å åpne filen med en mal, som er basert på mitt ole object, og så lagre dette. Jeg klarer å få opp word dokumentet men endringene jeg gjør da vil påvirke ole objected. O. Endret 26. august 2005 av olona Lenke til kommentar
olona Skrevet 27. august 2005 Forfatter Del Skrevet 27. august 2005 (endret) Har funnet en løsning som fungerer sånn tålig: Dim obj As Object 'Just a reference. Dim Filnavn As String Filnavn = "c:\test.doc" ' Her åpner jeg word dokumentet og lagrer det som ny.doc Me.Fil.Locked = True Me.Fil.Verb = acOLEVerbOpen Me.Fil.Action = acOLEActivate ' aktiverer Me.Fil.Verb = acOLEVerbHide ' burde skjule word applikasjon. Me.Fil.Object.Application.ActiveDocument.SaveAs (Filnavn) ' lagrer filen Me.Fil.Object.Application.ActiveDocument.Close ' lukker filen ' Åpner en word fil 'Set obj = CreateObject("Word.application") Set obj = GetObject(, "Word.application") obj.Documents.Open (Filnavn) obj.Visible = True Hvis noen kan se noen feil eller eller ting jeg ikke burde ha med, si ifra... Slik den fungerer nå så åpner den malen jeg har i ole objektet, viser dette i et sekund eller to. lukker det, og så åpner word dokumentet slik at bruker kan redigere dette... O. Endret 27. august 2005 av olona Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå