Avatar billede excel_desperado Nybegynder
02. juli 2007 - 16:13 Der 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?

MVH
Avatar billede excel_desperado Nybegynder
02. juli 2007 - 16:46 #1
Det hører måske lige med at det er en udvælgelses-forespørgsel
Avatar billede moba Nybegynder
03. juli 2007 - 09:32 #2
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?

Ikke flere råd herfra.

M
Avatar billede excel_desperado Nybegynder
03. juli 2007 - 10:21 #3
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...
Avatar billede moba Nybegynder
03. juli 2007 - 10:33 #4
Du kan så vidt jeg husker godt anvende en promt i din forespørgsel som spørger efter et id. Men for god ordensskyld, kunne du jo forsøge uden!
Avatar billede excel_desperado Nybegynder
03. juli 2007 - 11:07 #5
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
Avatar billede excel_desperado Nybegynder
03. juli 2007 - 11:38 #6
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" :-)
Avatar billede moba Nybegynder
03. juli 2007 - 11:59 #7
Kunne tyde på , at du skal have databasen åben samtidig med at du arbejder med brevfletning i word. Prøv det!
Avatar billede excel_desperado Nybegynder
03. juli 2007 - 12:25 #8
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
Avatar billede moba Nybegynder
03. juli 2007 - 12:32 #9
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.

Mvh

Morten
Avatar billede excel_desperado Nybegynder
03. juli 2007 - 13:12 #10
[Forms]![frmstartholdmenu]![txtsupervisor]
og [Forms]![frmstartholdmenu]![txtansdato]

er de to kriterier der er på forespørgslen...
Avatar billede weaponx Nybegynder
10. juli 2007 - 14:14 #11
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
Avatar billede excel_desperado Nybegynder
10. juli 2007 - 14:35 #12
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!
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester