22. december 2007 - 12:33Der er
14 kommentarer og 1 løsning
Nu post i Formular
Af forskellige årsager har jeg behov for at kunne placere en knap på formularen med hvilken jeg opretter en ny post i den tabel der knyttes til formularen.
Det virker delvist. Jeg er nød til efter: DoCmd.GoToRecord , , acNewRec DoCmd.GoToControl "FELTNAV" at lave en refresh Forms![Tilbud].Refresh for hoved og underformular. Herved "skrider" den nye record væk. Hvordan fastholdes den ny records plads?
Private Sub Kommandoknap222_Click() Dim VARa As Long DoCmd.GoToRecord , , acNewRec DoCmd.GoToControl "TilbudId" (Virker kun når den er synlig!) VARa = Me.Id (Mælder fejl her) Me.Requery Forms![Tilbud].Refresh DoCmd.FindRecord VARa, acEntire, False, , True, acCurrent, True DoCmd.GoToControl "Leverandør"
Dim VARa As Long DoCmd.GoToRecord , , acNewRec DoCmd.GoToControl "TilbudId" VARa = Me.TilbudId Me.Requery Forms![Tilbud].Refresh DoCmd.FindRecord VARa, acEntire, False, , True, acCurrent, True DoCmd.GoToControl "Leverandør"
Jeg har opgivet at lave det. Nu får jeg godt nok en ny record men så mælder sig nye fejl fra overliggende Underforme der er tilknyttet. Jeg prøver at stille opgaven på en anden måde. Dette må være en MEGET almindelig opsætning:
Jeg har en underform der "trækker" en anden relateret underform. Denne trækker den relaterede underform "Tilbud_Dataark" som et Dataark. Da der er mange indtastninger heri har jeg lavet det så recorden lægges på en ny underform "Tilbud_Enkelformular" som en enkelformular. De to skal altså kommunikere så et truk på en record på "Tilbud_Dataark" viser recorden på "Tilbud_Enkelformular". Det virker også fint. Jeg kan også lave en nyrecord fra "Tilbud_Dataark" men jeg ønsker at have en knap på "Tilbud_Enkelformular" der laver en ny record. Hvordan gør man det?
Det er IKKE en meget almindelig opsætning. Som jeg forstår dig, har du et hieraki bestående af en mainform med en tilknyttet subform. Denne subform har så en anden tilknyttet subform. Det er noget rod!
Du skal tænke på dine forms som objekter på lige fod med felter. Hvis vi f.eks tager feltet Tilbudid, som jeg gætter på er tabellens primære nøgle, skal denne værdi eksistere i alle 3 forms inden du kan foretage dig noget andet.
Den helt overordnede form er din mainform (Parentform). Denne har så tilknyttet en childform (childform1). Hvis ikke Tilbudid eksisterer i begge går det galt. Din childform1 har så en anden childform2 tilknyttet. Derved bliver childform1 til en mainform og dermed Parentform til childform2. Det vil jo sige, at du skal opdatere 3 formularer inden ændringen slår igennem i tabellen!!
Bemærk udtrykke Parentform og Childform. Det er ikke noget jeg har fundet på. Det er faktisk en korrekt betegnelse i Access og giver måske et mere klart billede af brugen af underformularer end blot at skrive "subform".
Så jeg vil tro, at du skal requery Childform2 og dennes Parentform (Childform1) og igen dennes Parentform.
Det er og bliver noget rod hvis man ikke har helt styr på objekthierakiet.
Helt overordnet - Kan man ikke have en tabel som dataark der relaterer til den samme tabel som Enkelformular hvor der er god plads til indtastning på en (1) valgt record fra dataarket? Det er hvad min bruger ønsker.
Det vil jeg tro er muligt - Men brugen af subforms volder altid problemer fordi brugerne ikke forstår sammenhængen mellem childforms og parentforms og objekthierakiet.
Der er ikke noget til hinder for det du prøver, men arbejdet med disse objekter kræver en større forståelse af hierakiet - Beklager at skulle sige det, men det er ærlig snak.
Hvis du har pladsproblemer i dine formularer, skulle du måske se på at oprette en side 2 i din formular i stedet for at arbejde med subforms i flere niveauer.
Tak for hjælpen - den ledte mig frem til løsningen som ligger lige for i 2007 versionen: Prøv at læsse fra Access 2007 Hjælp: En delt formular er en ny funktion i Microsoft Office Access 2007, som giver dig to visninger af dataene samtidig: en formularvisning og en dataarkvisning. De to visninger har samme datakilde og synkroniseres konstant med hinanden. Hvis du markerer et felt i den ene del af formularen, markeres det samme felt i den anden del. Du kan tilføje, redigere eller slette data i enhver af de to dele (hvis postkilden kan opdateres, og du ikke har konfigureret formularen til at forhindre disse handlinger).
Hvis du arbejder med delte formularer, får du fordelene ved begge typer formularer i en enkelt formular. Du kan f.eks. bruge dataarkdelen til hurtigt at finde en post og derefter bruge formulardelen til at se eller redigere posten. Formulardelen kan fungere som en pæn og funktionel overskrift til dataarkdelen. Denne teknik bruges i mange af de skabelondatabaser, der findes til Office Access 2007.
Tak for point - Det får mig igen til at pointere, at det er vigtigt at brugerne noterer hvilken version der benyttes
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.