Avatar billede per2edb Praktikant
22. januar 2013 - 17:14 Der er 4 kommentarer og
1 løsning

Dataark i kaskade

1)
I Access 2007 har jeg 3 sub forme med et dataark på hver,
alle forbundet gennem under overordnet felter.
Hvis der feks er 5 record i første dataark så kaldes 2 dataark 5 gange osv. Er der en metode til at arrangere det så der kun er 1 kald?

2)
I samme dataark skal jeg søge et recordnummer TilbudId, det gør jeg således:
DoCmd.FindRecord TilbudId, acEntire, , acSearchAll, , acAll

Er der en bedre metode så der ikke søges på alle felter men kun på feltet TilbudId i dataarket (acSearchAll)
Avatar billede fdata Forsker
22. januar 2013 - 23:20 #1
ad 1)
Hvad mener du med den pudsige sætning "så kaldes 2 dataark 5 gange"?

Normalt vil man lægge en linie i stil med:
  Me.Parent.IDref=Me.ID
i subform 1's OnCurrent/VedAktuel.
Den subform 2 linkes så op mod IDref.
Ellers prøv lige at beskrive dine data lidt nærmere.

ad 2)
Flyt markøren til feltet TilbudId i dataarket inden du søger.
Altså noget i stil med (ikke testet):
  DoCmd.Subform1.SetFocus
  Docmd.TilbudId.SetFocus
  DoCmd.FindRecord TilbudId, acEntire, , acSearchAll, , acCurrent
Avatar billede per2edb Praktikant
23. januar 2013 - 11:10 #2
1) Me.Parent.IDref=Me.ID er det samme jeg har i under- overordnet felt i egenskabsark.
Benytter du den metode (eller din metode som er det samme) vil
resultatet blive Dataark 2 subform 2 i vedAktuel aktiveres lige så mange gange som der er record i Dataarket 1 på subform 1. Det giver flimmer selvom Application.Echo er benyttet.
Jeg har indlagt en tæller så der hoppes ud af dataark 2 på subform 2 efter første gennemløb. Det virker men er uprofessionelt. Har i ikke en bedre metode?. Kan det sættes i Egenskabsarket så der kun "kaldes" en gang.??

2)Sådan gør jeg i dag men håbede der var en smartere metode f.eks en DoCmd der lavede det samme på en linie. Her skal 2 ekstra linier med!. Jeg har mindst 100 stk af denne DoCmd så det fylder.
Avatar billede fdata Forsker
23. januar 2013 - 19:19 #3
You lost me!
1) Da Me.Parent.IDref=Me.ID ligger i OnCurrent/VedAktuel, køres den da kun, hvis du skifter post i Subform1?!?
- Subform1 har ingen Under/Overordnede felter, kun VBA-koden.
- Subform2 er linket op med Under/Overordnede felter
Ikke?

Jeg er stadig ikke med på, hvad du mener med "gennemløb". Er der en makro eller kode, der løber gennem posterne?

2) Hvis du har 100 ensartede forekomster, kunne det måske betale sig at skrive en lille funktion, der foretager det fornødne. Så kunne du kalde den med relevante parametre.
Avatar billede per2edb Praktikant
26. januar 2013 - 14:40 #4
Som du skriver bør jeg benytte en sub. Men hvordan får jeg passet argumentet TilbudId ???

Call SearchRecord (TilbudId)

Sub (TilbudId as ????)

    DoCmd.???????.SetFocus    ' DoCmd.Subform1.SetFocus
    Docmd.TilbudId.SetFocus
    DoCmd.FindRecord TilbudId, acEntire, , acSearchAll, , acCurrent

end sub
Avatar billede fdata Forsker
28. januar 2013 - 22:55 #5
Sub SearchRecord(v as Variant)
    DoCmd.Subform1.SetFocus
    Docmd.TilbudId.SetFocus
    DoCmd.FindRecord v, acEntire, , acSearchAll, , acCurrent
end sub
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