Avatar billede Jan Vittrup Nybegynder
08. februar 2005 - 20:39 Der er 15 kommentarer og
1 løsning

Kopiere post til ny post, i fortløbende formular.

Når der er lavet en post i en fortløbende formular vil jeg gerne have en knap der ved tryk tager en kopi af posten, og derefter sætter de samme data ind i en ny post, hvordan gøres det?
Jeg prøvede at generere en knap der kopierer posten, men den den kopierer kun tomme felter, uden data i.
Hvis det kun er visse felter der skal kopieres, hvordan gøres det, der skal vel så defineres de feltnavne som skal kopieres?

På forhånd tak.

Jan
Avatar billede sjap Praktikant
08. februar 2005 - 20:58 #1
Prøv evt. at læse Microsofts beskrivelse her:

http://support.microsoft.com/kb/q210236/

Men det er nok bedre at se deres eksempel i deres sample forms datavase, der kan hentes her:

http://support.microsoft.com/kb/233324
08. februar 2005 - 22:07 #2
Sad lige og legede:

Sæt egenskaben "Mærke" (Tag) til "Kopier" på de felter, som du ønsker skal kopieres.

Læg herefter denne kode på en knap:

    Dim rs As DAO.Recordset
    Dim Ctrl As Control
    Dim ID As Long
   
    ID = Me![Medlemsnr]
    DoCmd.GoToRecord , , acNewRec
   
    Set rs = Me.RecordsetClone
    rs.FindFirst "[Medlemsnr] = " & ID
    For Each Ctrl In Me
      If Ctrl.Tag = "Kopier" Then
          Ctrl = rs(Ctrl.ControlSource)
      End If
    Next

2 steder skal koden tilpasses din database: de 2 steder, hvor der står "Medlemsnr" skal du indsætte dit eget nøglefelt.
Avatar billede Jan Vittrup Nybegynder
08. februar 2005 - 22:48 #3
Til Sjap:
Jeg kan ikke få det database eksempel til at virke. der mangler vist et modul:
basAutoFillNewRecords.
Men ellers et guldkorn...

Til thomasjepsen:
Det med "Sæt egenskaben "Mærke" (Tag) til "Kopier" på de felter, som du ønsker skal kopieres" må du gerne skære ud i pap, hvis du gider.
Hvis det hjælper dig kan jeg fortælle at mit nøglefelt hedder "IssueID" og felterne der skal kopieres hedder: "produktID" og "Indlæsrecept"
Som sagt er formularen fortløbende, og er bygget ud fra tre tabeller, hvor "produktID" stammer fra den ene, og er comboboks i formularen.

På forhånd tak

Jan
08. februar 2005 - 23:24 #4
Du sætter "mærke" ved at kigge i egenskaben for hvert af de ønskede felter på formularen. Denne sættes altså til "Kopier" for de felter, som skal kopieres.

    Dim rs As DAO.Recordset
    Dim Ctrl As Control
    Dim ID As Long
   
    ID = Me![IssueID]
    DoCmd.GoToRecord , , acNewRec
   
    Set rs = Me.RecordsetClone
    rs.FindFirst "[IssueID] = " & ID
    For Each Ctrl In Me
      If Ctrl.Tag = "Kopier" Then
          Ctrl = rs(Ctrl.ControlSource)
      End If
    Next


Jeg ved ikke helt hvordan knappen vil virke, når din forespørgsel er baseret på 3 tabeller. Men hvis du kan oprette posten manuelt i formularen, skulle det også virke med koden.
Avatar billede sjap Praktikant
08. februar 2005 - 23:51 #5
jn2300
Jeg kan køre eksemplerne uden problemer, og jeg kan ikke finde det modul du nævner. Det findes ikke i eksempeldatabasen, så vidt jeg kan se.

På den førstnævnte hjemmeside kan jeg dog se, at der er lavet et eksempel, hvor de bl.a. skriver en funktion, der hedder AutoFillNewRecord. Måske er det den du søger.
Avatar billede Jan Vittrup Nybegynder
09. februar 2005 - 18:11 #6
Hej thomasjepsen..

Jeg kan ikke gennemskue den
Jeg får svaret:
compile error
user-defined type not defined.
og en opmærkning af
Private Sub Kopier_Click() i gult...

På "mærke" i de to felter jeg vil bruge, har jeg bare skrevet: kopier
Er det rigtigt?

Jan
09. februar 2005 - 18:23 #7
Det ser rigtigt ud.

Prøv at gå i menuen Tools->references og kontroller, at du har en reference til "Microsoft DAO 3.x Object Library"
Avatar billede Jan Vittrup Nybegynder
09. februar 2005 - 19:07 #8
Desværre kan jeg ikke finde "Microsoft DAO 3.x Object Library"
Hvad gør jeg så?
Avatar billede sjap Praktikant
09. februar 2005 - 19:10 #9
Den skal blot Starte med "Microsoft DAO" og slutte med "Object Library" - nummeret er (næsten) ligegyldigt. Den skulle være på listen.
Avatar billede Jan Vittrup Nybegynder
09. februar 2005 - 21:08 #10
Desværre jeg kan ikke finde den, hverken under Aktive X objekter eller under funktionen Tilpas og ActiveX kontroller i værktøjslinien.
Kan man hente den hos MS?
Jeg har Access 2003
Avatar billede sjap Praktikant
09. februar 2005 - 21:49 #11
Du skal ind i VBA editoren - altså der hvor du kan redigere i koden. Så skal du op i menuen Tools/References og her skal du så finde den...
Avatar billede Jan Vittrup Nybegynder
10. februar 2005 - 19:28 #12
BRAVO! det var jo der den skulle findes! tak sjap!

Men den kode som jeg prøver fra thomasjepsen kommer nu op med:
"Runtime error 3348
poster kan ikke tilføjes fordi joinnøglen til tabellen "tblIssues" ikke er i postsættet."
Kan det være fordi formularen jeg vil kopiere, og derfor skrive i er filtreret?

Jan
10. februar 2005 - 20:10 #13
Det, som fejlen siger, er at det felt, som du joiner med i tblIssues i forespørgslen mangler.
Hvis du f.eks. joiener på ID, skal du have ID fra tblIssues med i forespørgslen.
Avatar billede Jan Vittrup Nybegynder
11. februar 2005 - 13:07 #14
Det virker! men kun i enkeltformular, men det må jeg prøve at finde ud af.
Jeg vender tilbage ;-)
Tak for hjælpen

Jan
11. februar 2005 - 13:10 #15
Selv tak - og ja, du vender bare tilbage :o)

Jeg forstår dog ikke, at det kun virker i enkeltformular!!? Hmm....lad mig vide, hvis du finder en løsning/forklaring.

God weekend til Jer begge :)
Avatar billede Jan Vittrup Nybegynder
11. februar 2005 - 13:34 #16
Nu er jeg ny her i eksperten, fik du point Thomas?
Forklaringen tror jeg, er at formularen er bundet til et anlægsID, på den pågældende computer, og kun viser anlæggets opgaver, og sorterer også på et andet felt så der kun vises visse emner. det gør tilsyneladende at formularen ikke umiddelbart bare kan tilføjes nye poster.. jeg får ikke lov til at skrive noget fra start, men må omkring en anden formular, indtaste noget der, lukke den og så opdateres den anden og så kan jeg udfylde resten... Nemt ikke? :-)
Det virker men jeg kunne godt tænke det enklere, af hensyn til brugerne

Også god weekend herfra

Jan
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