Avatar billede daniel_d Nybegynder
03. december 2004 - 21:07 Der 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...

Hvordan får jeg den til at "følge med"

Mvh
Daniel
Avatar billede terry Ekspert
03. december 2004 - 21:17 #1
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.
Avatar billede terry Ekspert
03. december 2004 - 21:17 #2
Avatar billede terry Ekspert
03. december 2004 - 21:18 #3
find some ideas here
Avatar billede daniel_d Nybegynder
03. december 2004 - 21:47 #4
Jeg har oprettet en relation på som fremgår af denne artikel: http://activedeveloper.dk/artikler/default.asp?articleid=293

Men jeg kan ikke få den til at lave en main form / subform automatisk???
Avatar billede mugs Novice
03. december 2004 - 23:49 #5
Du laver en autoformular således:

Å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.
Avatar billede daniel_d Nybegynder
03. december 2004 - 23:53 #6
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 -

Jeg har kigget på Make-IT-Easy's eksempel på http://www.nyholm.dk/makeiteasy/Home.asp?ContentID=30

Men jeg kan sgu ikke rigtig regne den ud... Har du et forslag til det?
Avatar billede mugs Novice
03. december 2004 - 23:55 #7
Forstår ikke rigtig hvad du mener:

Vil du overføre formularens felter til et worddokument?
Avatar billede daniel_d Nybegynder
03. december 2004 - 23:57 #8
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...
Avatar billede mugs Novice
04. december 2004 - 00:05 #9
Du kan åbne et bestemt Word dokument således:

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.
Avatar billede daniel_d Nybegynder
04. december 2004 - 00:06 #10
ok tak - jeg kigger lige på det du har postet
Avatar billede mugs Novice
04. december 2004 - 00:11 #11
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


Godnat.
Avatar billede daniel_d Nybegynder
04. december 2004 - 00:14 #12
Godnat godnat...
Jeg er ikke så fortrolig med det her, men prøver... det skal lykkedes...
Avatar billede mugs Novice
04. december 2004 - 00:17 #13
Kæmp - Bare kæmp. Hvis du lægger din e-mail, kan jeg sende et eksempel imorgen tidlig inden jeg kører på arbejde.
Avatar billede daniel_d Nybegynder
04. december 2004 - 00:19 #14
Du må meget gerne sende et eks til NOSPAMDaniel@d-form.dk Fjern NOSPAM fra adressen
Mange tak...
Avatar billede mugs Novice
04. december 2004 - 00:24 #15
Sendt.
Avatar billede daniel_d Nybegynder
04. december 2004 - 02:44 #16
Jeg kan ikke helt få det eks du er kommet med her på eksperten til at virke...

JEg får en fejlkode: 13Type Mismatch

Min knap ser sådan ud:

Private Sub GemPostKnap_Click()
On Error GoTo err_open

    Dim objWord As New Word.Application
    Dim WordDoc As New Word.Document

    Set WordDoc = objWord.Documents.Add("C:\87910090.doc")

    Call InsertAtBookmark(WordDoc, "Kundenr", Me!Kundenr)
   
    objWord.Visible = True
    DoCmd.Hourglass False
   
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...
Avatar billede daniel_d Nybegynder
04. december 2004 - 02:46 #17
Tabellens feltnavn er Kundenr og det samme Kundenr for dokumentets bogmærke...
Avatar billede mugs Novice
04. december 2004 - 08:21 #18
Når du får fejlen, så tryk på Debug og kopier den linie der er markeret ind her.
Avatar billede daniel_d Nybegynder
04. december 2004 - 09:45 #19
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...
Avatar billede daniel_d Nybegynder
04. december 2004 - 09:47 #20
Jeg kan godt compile databasen uden fejl, hvis det var det du tænkte på... der kommer der ikke fejl...
Avatar billede daniel_d Nybegynder
05. december 2004 - 17:44 #21
Er det så mit word dokument den er gal med?
Avatar billede daniel_d Nybegynder
11. januar 2005 - 13:53 #22
Beklager jeg ikke har fået lukket spørgsmålet før nu - jeg har fået det til at virke nu, så jeg er utrolig glad for den hjælp jeg har fået
Avatar billede terry Ekspert
11. januar 2005 - 19:17 #23
thanks Daniel, great to hear you got it working :o)
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