[ srdrazic @ 06.02.2012. 21:52 ] @
Kako iz access baze podataka iz report-a izvesti podatke u word dokument tako da ih, u već gotov wordov dokument, rasporedi na određene stranice? |
[ srdrazic @ 06.02.2012. 21:52 ] @
[ esasa @ 07.02.2012. 07:14 ] @
Za takvo sto moras napraviti word teplate *.dot, te bi iz accessa samo pozvao teplate a on bi startajuc se vukao podatke iz baze.
Komplikovano, nekada sam poceo to da radim i nikada nisam završio :( [ srdrazic @ 07.02.2012. 16:35 ] @
U redu bi bilo sa praznim template, ali ako on ima u sebi tekst i treba ga na određeno mesto smestiti to je problem?
Ja sam nekako iz worda uvlačio i ažurirao neke podatke iz tabela accessa ali iz reporta jedino export u *.rtf iako ta *.rtf extenzija dosta osakati kasnije formatiranje tabela u wordu. [ oJee @ 08.02.2012. 10:58 ] @
Sličan (isti?) problem sam rješavao i ja prije dosta vremene, tako da spominjem čega se sjećam.
- Našao sam par načina i uglavnom svi se svode na rad sa predlošcima (template). Ja sam na kraju završio posao sa "Bookmarks"-ima gledajući i modifikujuć primjer koji sam našao kod Helen Feddema. - Mislim da predložak treba da ima ekstenziju .dotm ako je file format od ms 2007-2010 (makroi omogućeni). - U template postaviš bookmarkse i daš im nazive te snimiš template. - U accessu otvaraš taj template i preko imena bookmarksa ga popunjavaš sa vrijednostima i snimiš u datoteku pod nekim imenom. NAPOMENA: u ovakvom slučaju za svaki 'record' dobiješ jednu datoteku što je meni i odgovaralo pa nisam nešto puno ni tražio dalje. Mislim da je to išlo nekako ovako: NAPOMENA2: u referencama za kod mora se uključiti "Microsoft Word XX Object Library" i "OLE Automation". Predložak traži u direktoriju gdje je i datoteka baze, a tu smješta i izvještaj. Code: On Error GoTo ErrorHandler Dim strWordTemplate As String Dim strDocsPath As String Dim strSaveName As String strWordTemplate = "NazivPredloska.dot" Set pappWord = GetObject(, "Word.Application") strDocsPath = CurrentProject.Path & "\" strWordTemplate = strDocsPath & strWordTemplate strTestFile = Nz(Dir(strWordTemplate)) Debug.Print "Provjera datoteke: " & strTestFile If strTestFile = "" Then MsgBox strWordTemplate & " predložak nije pronađen; ne mogu uraditi izvoz" GoTo ErrorHandlerExit End If pappWord.Documents.Add strWordTemplate With pappWord.Selection .GoTo What:=wdGoToBookmark, Name:="NazivBookmarka1" .TypeText Text:=Nz("Vrijednost1", "") .GoTo What:=wdGoToBookmark, Name:="NazivBookmarka2" .TypeText Text:=Nz("Vrijednos2", "") '.... '.... End With On Error GoTo ErrorHandler strSaveName = "NazivIzvještaj.doc" strSaveName = strDocsPath & strSaveName With pappWord .Selection.WholeStory .Selection.Fields.Update .Selection.HomeKey Unit:=wdStory .ActiveDocument.SaveAs strSaveName End With With pappWord .ActiveWindow.WindowState = 0 .Quit End With ErrorHandlerExit: Set pappWord = Nothing Exit Sub ErrorHandler: 'Word nije pokrenut; otvori Word sa CreateObject If Err.Number = 429 Then Set pappWord = CreateObject("Word.Application") Resume Next Else MsgBox "Greška broj: " & Err.Number & "; Opis greške: " & Err.Description Resume ErrorHandlerExit End If Izmjenjeno tako da kod radi samo sa copy-paste. Za probu se može napraviti forma samo sa jednim dugmetom na čijem događaju 'OnClick' se ubaci gornji kod. U dodatku poruci je spomenuti predložak kao primjer. PS - pročitati NAPOMENU2. [Ovu poruku je menjao oJee dana 08.02.2012. u 15:29 GMT+1] [Ovu poruku je menjao oJee dana 08.02.2012. u 15:32 GMT+1] [Ovu poruku je menjao oJee dana 09.02.2012. u 07:54 GMT+1] [ srdrazic @ 08.02.2012. 12:48 ] @
Hvala, pokušaću.
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|