02. juli 2007 - 16:13Der er
11 kommentarer og 1 løsning
brevflette i word med acces forespørgsel
Jeg prøver at brevflette mit word-dokument op mod en bestemt forespørgsel oprettet i en acces database. Problemet er at når jeg i word åbner datakilden til brevfletning og finder databasen; så kan jeg ikke finde lige præcis den forespørgsel jeg skal bruge. Til gengæld kan jeg godt finde andre forespørgsler og tabeller. Så den pågældende forespørgsel er altså usynlig i word. Dvs. jeg kan flette med nogen men ikke alle forespørgsler i min acces database...Synes det er underligt jeg ikke engang kan se den pågældende fra word... Nogen der har nogen erfaring med dette?
Hvis det er en normal udvælgeses forespørgsel, burde det ikke give problemer. Kan du afvikle forespørgslen fra access? Adskiller denne forespørgsel sig fra de andre - evt en speciel navngivning eller lign.? Hvis du netop har oprettet forespørgslen kunne du måske prøve at lukke ned for access - tror dog ikke det gør forskel. Du er sikker på du har fat i den rigtige DB ikke?
Forespørgslen afviger idet den spørger efter et id når den åbnes. Kan det være det der er galt?
Som jeg ser det så åbner jeg datakilde i word, finder databasen men kan ikke se lige præcis den forespørgsel jeg skal bruge. Til gengæld kan jeg godt se andre...
Hvis jeg fjerner promptet på forespørgslen så kan jeg pludselig finde den via word's datakilde fkt... Problemet er at promptet jo netop sørger for at jeg kun får de specifikke data ud jeg skal bruge, fra en lang tabel
Nu har jeg så prøvet at fjerne promptet, referere til tabellen i worddokumentet, hvorefter jeg lukkede word og genindførte promptet i forespørgslen. Det resulterer så i at word tilsyneladende refererer til rette forespørgsel, men kommer så med en fejlmelding om at "funktionen ikke kan udføres pga en fejl i en dialogboks eller databaseprogram. Prøv igen senere" :-)
Det er når databasen er åben at den siger ovenstående. Det er egentlig meningen at word dokumentet skal åbnes via et link i databasen nemlig. Hvis jeg lukker db og åbner word "manuelt" siger den så det samme fandt jeg lige ud af
Vis mig lige hvad du skriver i din query for at prompten kommer frem.
En løsning på dit problem kan være, at oprettet en form med en liste et tekstfelt, og en knap. I listen vises alle de worddokumenter du har (opret en tabel med et id, worddokumentnavn, sti og brug den i din liste) i tesktfeltet angiver du så dit kriterie. I din forespørgsel som ligger til grund bytter du din prompt ud med tekstfeltet (forms!dinform!dittekstfelt). Knappen kan du så kode således den åbner det valgte dokument fra listen. Dette burde virke.
Du kan også vælge at kickstarte den fra access og brevflette vha. bogmærker. Det er efter min erfaring en mere fleksibel og stabil løsning.
Lav en skabelon i word og push den med ud til brugerne. Lav så nogle bogmærker hvor du vil indsætte tekst og brug en funktion til at åbne skabelonen og indsætte teksten hvor dine bogmærker er sat.
Sub WordEksempel() Dim strSkabelon as String Dim strMacro as String strSkabelon = "c:\test.doc" 'fuld sti til dokumentet strMacro = "macronavnword" 'navn på macro som skal kaldes i word dokumentet 'skabelonen er et word dokument If strDoctype = "word" Then Set WordDoc = objword.Documents.Add(strSkabelon) Call InsertAtBookmark(WordDoc, "bogmærkenavn", "tekst der skal indsættes") objword.Visible = True ' With WordDoc ' .Protect wdAllowOnlyFormFields ' End With If strMacro = "" Then ' MsgBox "fandt ikke en macro", vbOKOnly Else ' MsgBox "fandt en macro", vbOKOnly objword.Run (strMacro) End If Set objword = Nothing End If 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
Jeg fandt yderligere ud af at der i word under funktioner_indstillinger_generel er et felt "bekræft konvertering ved åbning" som der skal flueben i. I så fald når brevfletningen åbner de mulige tabeller og forespørgsler i databasen, spørges hvilken type datakilde der skal benyttes. Default er åbenbart OLE DB database og her kan man ikke se forespørgsler med kriterier. Vælg derfor DDE, så kan alle tabeller og forespørgsler ses og vælges!
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.