Avatar billede proc Nybegynder
11. februar 2009 - 13:21 Der er 3 kommentarer

Kopiere formular med underformular

Hejsa...

Jeg har en formular (faktura) med en underformular (varelinier). Nu kunne jeg godt tænke mig at lave en kopi af formularen, komplet med alle posterne i underformularen.

Det burde jo være poc at kopiere først hovedformularen til en ny post i tabellen, og derefter posterne i underformularen. Men jeg kan sq ikke lige overskue, hvordan jeg får de nye poster i tabellen bag underformularen til at høre til den nye post i tabellen bag hovedformularen...min hjerne er åbenbart allerede nået til fredag over middag ;-)

Har vi en Terry, en Mugs eller en anden, som lige kan "klaske" en snas kode sammen? Ikke nødvendigvis en færdig løsning, men blot et eller andet som inspiration?
Avatar billede mugs Novice
11. februar 2009 - 16:08 #1
Du kan kopiere og indsætte den aktuelle post med denne:

Private Sub Kommandoknap19_Click()
DoCmd.RunCommand acCmdSelectRecord
DoCmd.RunCommand acCmdCopy
DoCmd.GoToRecord acForm, "Form1", acNewRec
DoCmd.RunCommand acCmdSelectRecord
DoCmd.RunCommand acCmdPaste
End Sub

For at kopiere posterne i din subform, skal du først sætte fokus på subformen og derefter kopiere. M.h.t at sammenkæde posterne skal du vælge overordnede og underordnede poster. Men det ligger jo i selve formularens design, så det burde ikke være nødvendigt at ændre på det.

Men jeg forstår ikke hvorfor du vil have "dobbelte poster". Hvad vil du opnå?
Avatar billede proc Nybegynder
11. februar 2009 - 16:19 #2
Hej Mugs...og foreløbig tak for hjælpen.

Hvad jeg vil opnå med "dobbelte poster"?

Forestil dig, at en sælger laver et tilbud på ti forskellige varer.
Det bliver solgt, dog skal kunden kun bruge tre af vare nummer ote, og ikke vare nummer tre...
...nu åbner sælger tilbudet, trykker på knappen "kopier til ny(t) og vælger ordre. Så retter han antallet af vare otte og sletter vare tre. Så trykker han "ekspedér", og der sendes/printes en ordrebekræftelse til kunden og en bestilling til leverandøren. Endnu et tryk på "kopier til ny(t), og en faktura er genereret...
På kundens oversigt optræder nu et tilbud, en ændret ordre og en faktura. Get the point?

Din løsning har jeg sådan set været ude i. Men dels er den langsom, dels foregår den i formularvinduet, hvorfor der meget let går noget galt, og dels løses problemet med sammenbindingen af varelinierne til det nye dokumentnummer ikke.

Kunne det ikke løses med noget kode/forespørgsel "bagved"?
Min tanke var noget med en udvælgelsesforespørgsel, som finder data til en tilføjelsesforespørgsel. Eller måske en "simpel" SQL-sætning?
Avatar billede mugs Novice
11. februar 2009 - 16:31 #3
Got the point, bortset fra hvad der kan gå galt i formularen.

Feltet "dokumentnummer" skal således binde posterne sammen. Det nye dokumentnr må således blive genereret i mainform. Kan du sp ikke i din kopiering referere til dette nye dokumentnr. No istil med dette:

If Me.Newrecord = true then
Me.Dokumentnr = Me.Parentform.Dokumentnr
end if
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