Opdatering af felter i formular efter ændring af forespørgsel?
Efter ændring i en forespørgsel til en formular (med godt 500 poster)har jeg nogle felter i formularen, der åbenbart ikke lader sig påvirke af ændringerne i forespørgslen. Så vidt jeg kan se, ændrer disse felter sig først, hvis jeg åbner den enkelte post i formularen og "løber" alle felter igennem. Det er nogle gamle felter der skal indeholde nye beregninger (efter princippet nyfelt1=gammelfelt1). Hvordan får jeg opdateret de godt 500 poster i formularen, uden at jeg skal ind i hver enkelt post?
"...der åbenbart ikke lader sig påvirke af ændringerne i forespørgslen"
Is the form using the query as its record source?
If you make changes to the query while the form isopen then you can close the form and open it again, or use Me.Requery in a buttons on click event to requery the form.
nissen2630 Hvad mener du med formular.refersh eller formular.update?
terry De felter der lader sig påvirke, er de felter der direkte får resultatet fra beregningerne i forespørgslen (=is using the query as its record source). De felter "der åbenbart ikke lader sig påvirke af ændringerne i forespørgslen" er de felter der får resultatet fra andre felter på formularsiden (=is not using the query as its record source).
Koden til af af felterne ser sådan ud: Private Sub glFelt1_GotFocus() [glFelt1] = [nyFelt1EfterRedigering]
I din kode kan du kalde refresh ell. update efter du har ændret dine data... Har ikke en maskine lige pt med Access men en med en ammel VB og der skulle ikke være den store forskel.
nissen2630 Du foreslår at indsætte form.upddate eller form.refresh. Betyder det, at jeg undgår at skulle åbne alle godt 500 poster i formularen, og lade curseren løbe alle felter igennem fra start til slut på formularen?
terry Jeg kan dessværre ikke sende DB´en ud af huset. Det må jeg ikke.
Jeg skal forsøge at komme med et detaljeret forklaring.
DB´en er en forholdsvis gammel database, der er revideret flere gange.
Felter der tidligere blev anvendt til inddatering af data "modtager" idag data fra andre beregnede felter. Og det er ved denne overførsel fra nye beregnede felter til de gamle inddateringsfelter problemet opstår.
Værdien fra de nye beregnede felter overføres først til de gamle inddateringsfelter når curseren har gennemløbet de gamle felter.
Så mit spørgsmål er, hvordan undgår jeg at skulle ind på hver post, for at opdatere de gamle inddateringsfelter med de nye beregninger?
Jeg anvender 2 decimaler i alle beregnede felter (Rund[mængde]*[pris];2) og det fungerer fint i alle beregninger.
Well your explanation helps a bit but still not enough. It would have been nice to see the dB.
Are the calculated fields made in the query or in the form after entering values?
Lets say you have fields A, B and C on a form.
A gets its value from B+C. So you have to first enter data into B and C before A gets its value. THis will very likley be done in code. And the code will very likley only get executed when you enter values into either fields B or C.
If on the other hand the calculated fields are made in the query then you need some code inthe forms On Current event which copies the calculated fields to the OLD fields.
But without more infromation/understanding on how things are done then its ahrd to make any suggestions.-
where do you enter values for Størrelse1 - 4, in the form?
You say "Disse 4 størrelser regnes der procentfordeling på i en forespørgsel ..."
"I en forespørgsel"? If you enter Størrelse1 - 4 in the form but the calculations are made in the query then you have to requery the form to show the new calculations.
"Derudover indtastes der en totalmængde på råvaren vi kan kalde:"
Where do you enter this value, through the form? Again, if you enter new values through the form then you MUST either requery the form so that ALL calculations get recalæculated, or you have to refresh the fields which are dependant on what you enter.
Lets just say that after you enter Råvaremgd. In the fields AFTER UPDATE event you need to requery the form
Me.Requery
Now you need to copy the new calculated values for Råvaremgd1 - 4 to glFelt1 - 4
glFelt1 = Råvaremgd1 and you do that for each of the fields.
Jeg vurderer på i øjeblikket, om jeg kan undlade at bruge
glFelt1 glFelt2 glFelt3 glFelt4
og i stedet bruge
Råvaremgd1 Råvaremgd2 Råvaremgd3 Råvaremgd4
Jeg er faktiskt ved at få det til at fungere.
I sidste ende skal mængden på de 4 størrelser ganges med en pris, der kan være den samme for alle størrelser eller forskellig for den enkelte størrelse og derefter udskrives på en rapport
Og jeg kan udskrive alle godt 500 rapporter uden at skal ind på alle poster på formularsiden for at opdatere de gamle felter.
Undskyld hvis det har virket lidt rodet, men det var ved at stige mig til hovedet på et tidspunkt.
If the entered data (Fordeling1 - 4 og Råvaremgd) are stored in the tablethen you dont need fields in the table (glFelt1 - 4 og Råvaremgd1 - 4) because these can always be calculated.
And if the price also gets stored in the table then this will also be available to make any calculations needed.
"Undskyld hvis det har virket lidt rodet, men det var ved at stige mig til hovedet på et tidspunkt."
No problem Ingolf. Quiet often its not easy to explain/understand the problem without actually seeing it for your self.
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.