Avatar billede per2edb Praktikant
22. december 2007 - 12:33 Der 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.

Har i et eksempel på koderne?
Avatar billede epimetheus Nybegynder
22. december 2007 - 12:45 #1
Kan det her bruges?

Private Sub cmdNyPost_Click()
  DoCmd.GoToRecord , , acNewRec
End Sub
Avatar billede mugs Novice
22. december 2007 - 12:52 #2
DoCmd.GoToRecord , , acNewRec
DoCmd.GoToControl "FELTNAV"

Vil gå til en ny record og til det angivne felt, f.eks det der er først i tabulatorrækkefølgen
Avatar billede per2edb Praktikant
22. december 2007 - 17:13 #3
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?
Avatar billede mugs Novice
22. december 2007 - 17:28 #4
Dim VARa As Long
DoCmd.GoToControl "id"
VARa = Me.id
Me.Requery
DoCmd.FindRecord VARa, acEntire, False, , True, acCurrent, True

Hvor feltet ID er navnet på taberllen primære nøgle.
Avatar billede per2edb Praktikant
22. december 2007 - 18:43 #5
Hej.
Det melder fejl

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"

End Sub
Avatar billede mugs Novice
22. december 2007 - 18:46 #6
Har du ændret dine feltnavne til de aktuelle:

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"
Avatar billede mugs Novice
22. december 2007 - 18:47 #7
En Refresh opdaterer allerede eksisterende poster, men tilføjer ikke nye. Dertil skal du bruge en Requery!
Avatar billede per2edb Praktikant
22. december 2007 - 19:34 #8
Jeg får fejlen:

VARa = Me.TilbudId  <=  Invalid use of null

Jeg kan se Feltet TilbudId er [new] ved debug når fejlen opstår?
Det er som om DoCmd.GoToRecord , , acNewRec ikke genererer en ny record?
Avatar billede mugs Novice
22. december 2007 - 19:49 #9
Feltet Tilbudid skal tildeles en værdi inden du kan sætte VARa = Tilbudid. Du kan ikke sætte VARa = en tom streng.

Selvom feltet er et autonummerfelt, skal du skrive noget i et andet felt før feltet får en værdi.
Avatar billede per2edb Praktikant
23. december 2007 - 12:46 #10
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?
Avatar billede mugs Novice
23. december 2007 - 15:15 #11
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.
Avatar billede per2edb Praktikant
23. december 2007 - 16:43 #12
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.
Avatar billede mugs Novice
23. december 2007 - 16:58 #13
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.
Avatar billede per2edb Praktikant
27. december 2007 - 12:12 #14
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.
Avatar billede mugs Novice
27. december 2007 - 12:21 #15
Tak for point - Det får mig igen til at pointere, at det er vigtigt at brugerne noterer hvilken version der benyttes
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