03. december 2004 - 21:07Der er
21 kommentarer og 2 løsninger
kunde db med flere tabeller - formularstyret - nybegynder!
Hejsa folkens
Jeg er helt ny i formularer men har brugt access til internettet så kender da lidt til programmet.
Jeg prøver at lave en formlar / program til min bror hvor han kan indtaste oplysninger om sine kunder, som så bagefter skal flettes med word og udskrives, eller udskrives med det samme - hvad der nu er muligt.
Jeg har forstillet mig at formularen skulle være bygget om af en hovedformular og en række underformularer som jeg kalder vha. en knap - ved ikke om det er den rette måde at gøre det på
men mit problem, sikkert blandt mange, er, at jeg har lavet en knap med "ny post" hvilket får hovedformularen til at slette al tekst og gemme en ny post - fint nok, men min underformular "hænger" stadig fast i den gamle post...
Its always best to design your tables first and then go on to forms and reports etc.
Once youhave your tables in palce try using the form wizard. Here you can choose one or more tables and if they are related it will automatically make a main form /sub form for you.
Åbn db i databasevinduet > Marker den forespørgsel / tabel der skal levere data > På menulinien finder du ikonet der ligner en lille formular med et lyn > Lad markøren glide henover ikonet og tipteksten skal være "Nyt objekt, Autoformular" > Klik på autoformular. Access vil nyu generere en ny formular.
Vedr. subform kan du trække den ind på din parentform fra værktøjskassen og det vil starte guiden.
For at få sub- og parentform til at "følges ad", skal du se på subformens egenskab "Overordnede / underordnede felter", og sætte disse til et unikt felt.
Hvis du ikke er velbevandret i Access, skal du passe på med subforms. De driller ofte begyndere.
Hej Mugs Jeg er så småt ved at få styr på dataerne mellem de forskellige tabeller i formularen - men en hel anden ting jeg mangler at få mere styr på er hvordan jeg fletter et givent opslag med et givent word dokument -
Ja - altså brevflette, men på så nem en måde som muligt... Jeg tænker på blot at knytte en knap til et bestemt word dokument som så fletter med den åbne post i formularen...
On Error GoTo err_open Dim docname As String Dim objword As Word.Application Dim objdoc As Word.Document Const dir As String = "D:\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 End Sub
Denne linie:
docname = dir & Me.Nr & ext
Giver hele stien til dokumentet. Me.Nr et et unikt felt i formularen og samtidig navnet på dit worddokument. Husk at lave en reference til Word i VBA-editoren > Tools > References.
Det er ved at være sengetid, har du problemer, må du lige vende tilbage.
Men ovennævnte overfører ikke formularens data til Word. Det er lidt mere omstændigt. Denne overfører data til et Worddokument:
Dim objword As New Word.Application Dim WordDoc As New Word.Document Set WordDoc = objword.Documents.Add("D:\Opskrifter\Opskrift.doc") Call InsertAtBookmark(WordDoc, "Opskrift", Me!Opskrift) objword.Visible = True DoCmd.Hourglass False
Du indsætter ligeledes denne funktion:
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
Du skal først have lavet bogmærker i Word. Denne linie refererer til bogmærket "opskrift" i word og sender indholdet af formularens felt Me!Opskrift til funktionen InsertAtBookmark, som sender data til Word
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: If Err.Number = 5981 Then Resume Next End If MsgBox "fejlkode: " & Err.Number & Err.Description 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 kommer desværre ikke til en computer igen før søndag, så før kan jeg nok ikke vende tilbage...
jeg kan kun finde ud af at køre formularen fra access og når den "kører" og fejlen er kommet kan jeg ikke trykke på debug i Microsoft Visual Basic ... Jeg kører office 2003 hvis det betyder noget...
thanks Daniel, great to hear you got it working :o)
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.