22. januar 2013 - 17:14Der 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)
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
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.
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.
Sub SearchRecord(v as Variant) DoCmd.Subform1.SetFocus Docmd.TilbudId.SetFocus DoCmd.FindRecord v, acEntire, , acSearchAll, , acCurrent end sub
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.