11. august 2005 - 12:09Der er
43 kommentarer og 1 løsning
hjælp til accessdatabase til medarbejdervurdering.
hej Jeg har oprettet en database til medarbejdervurdering. indtastningsformularen er lavet og ser således ud: område -- Vurdering -- Kommentar 1 -- 4 -- xxx 2 -- 3 -- xxx 3 -- 5 -- xxx 4 -- 1 -- xxx 5 -- 2 -- xxx
der kan så oprettes x antal records pr. medarbejder
det jeg mangler er en formular der kan vise seneste 5 resultater: område -- dato -- dato -- dato -- gensn Alle 1 -- 4 -- 4 -- x -- 4 2 -- 3 -- 4 -- x -- 3,5 3 -- 5 -- 4 -- x -- 4,5 4 -- 1 -- 4 -- x -- 2,5 5 -- 2 -- 4 -- x -- 3 gensn -- 3 -- 4 -- x
Det kan være jeg skal illustrere det. For så vidt angår gennemsnittet så virker det fint, men den måde jeg skal benytte det er det desværre ikke godt nok.
Det du ikkustrerer er en krydstabuleringsforespørgsel, hvor du har data både vandret og lodret. Umiddelbart kan du ikke lave det i en enkelt formular al den stund, at du ikke kan lave beregningerne i en forespørgsel.
Jeg prøver at downloade testdb, når jeg er hjemme.
har du prøvet at h.klikke på ovenstående link og vælge "gem destination som..." har ellers teste linket og der er ikke problemer fra de forskellige maskiner.
Ellers må du skrive en mailadresse jeg kan sende til.
Nu kan jeg se siden, men Norton kommer med en meddelelse, at der er blokeret et forsøg på indtrængning og annulerer overførslen. Når jeg prøver en gang til, kommer meddelelsen, at siden ikke kan vises.
Db er modtaget og returneret. Umiddelbart mener jeg ikke det ønskede resultat kan opnås med den måde hvorpå db er skruet sammen. Et alternativt forslag med samme beregninger er sendt.
1) nej problemet er at jeg ikke kan huske hvorledes man laver en sql der skal benyttes i eksporten... (hvordan "peger" jeg på det rigtige felt ?) 2) hvorledes eksport-funktionen skal skrives...
1.Lav den forespørsel du vil eksportere 2.Brug kommandoen DoCmd.transfer spreadsheet.... til at eksportere.
Du kna evt. lave en makro. I Handlinger øverst vælger du handlingen "Overfør regneark", i argumenterne nederst kan du vælge de øvrige argumenter. Afprøv om det fungerer. Gør det, kan du i databasevinduet markere din makro > Funktioner > Makroer > Konverter Makro til VBA. Makroen vil nu blive konverteret til et modul. Heri kan du blot kopiere koden om indsætte den i din formular. Fungerer det, kan du blot slette makro og modul.
ok - takker. Fandt forøvrigt dette eksempel, som du har skrevet tidligere. Måske kan jeg rette det til. kigger på det i aften :-) http://eksperten.dk/spm/91446
Nu har jeg prøvet at sende til begge de e-mail adresser jeg har, men i begge tilfælde kommer db tilbage med meddelelsen om, at der er en illegal vedhæftet fil trods det forhold, at filen er zippet!
hej Mugs sp. nr 2: Kan man tage højde for i beregningen af genemsnittet, at hvis der står 0 i et af felterne skal det ikke tælles med ? det giver et andet resultat: a1+a2+a3+a4+a5 = B/(a1+a2+a3+a4+a5) 1+2+3+4+5=15/5= 3 i forhold til: a1+a2+a3+a4+a5 = B/(a1+a2+a3+a4+a5) 1+2+3+4+0 = 5/4 = 1,25
hvis du kan give mig en vba-kode ville jeg være glad :-) Takker på forhånd
Jeg kan kun svagt huske hvordan den oprindelige database så ud. Men kan du ikke i den forespørgsel der ligger til grund for dien beregninger ikke indsætte et kriterie (>0) der frasorterer alle poster hvor værdien er 0.
rashid > Jeg har nok undervurderet mine arbejdsopgaver, og har ikke haft tid endnu. Jeg mener at have løsningen inde i mit hoved, men har ikke haft tid til at afprøve den. Jeg vender tilbage.
a1+a2+a3+a4+a5 = B/(a1+a2+a3+a4+a5) 1+2+3+4+5=15/5= 3 Her giver summen af a1 til a5 jo 15, så OK med det.
a1+a2+a3+a4+a5 = B/(a1+a2+a3+a4+a5) 1+2+3+4+0 = 5/4 = 1,25 Med her giver summen af a1 til a5 jo 10 divideret med det antal felter hvor værdien er > 0 Det giver 10/4 = 2,5
hej Mugs kan jeg lave koden om så den tester på hvert felt og beregner det? for sjov skyld har jeg forsøgt mig med: -------------------------------- Private Sub a1_AfterUpdate() Dim VARa As Integer Dim VARb As Integer VARb = 0 DoCmd.GoToControl "a1" If Me!a1 > 0 Then VARb = VARb + 1 End If DoCmd.GoToControl "a2" If Me!a2 > 0 Then VARb = VARb + 1 End If DoCmd.GoToControl "a3" If Me!a3 > 0 Then VARb = VARb + 1 End If DoCmd.GoToControl "a4" If Me!a4 > 0 Then VARb = VARb + 1 End If DoCmd.GoToControl "a5" If Me!a5 > 0 Then VARb = VARb + 1 End If VARa = a1 + a2 + a3 + a4 + a5 'MsgBox VARa / VARb Me!Tekst11.Value = VARa / VARb End Sub --------------------------- men her er det jo kun efter opdatering af felt a1 at der sker noget...
Læg koden ind i de andre felter, så vil den genberegne efter udfyldelse af hvert felt. Som du ser af procedürenavnet ligger denne kode i a1_AfterUpdate.
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.