Avatar billede redbulldk Juniormester
02. juni 2017 - 11:52 Der er 4 kommentarer og
1 løsning

Access udtryksgenerator beregner summerer ikke

Hej

Jeg har jeg har i Access 2016 en forespørgsel, hvor jeg har en række kolonner med udtryk hvor der under bestemte betingelser registeres "1".

Disse kolonner vil jeg gerne summerer hvor jeg så har oprettet en ny kolonne med udtrykket 2017-1Q: [2017-01] + [2017-02] + [2017-03].

Når jeg kører forespørgslen for jeg "111". Når jeg i stedet skriver [2017-01] - [2017-02] - [2017-03] får jeg "-1"

Hvad gør jeg galt og hvordan får jeg udtrykket til at give 2017-1Q: [2017-01] + [2017-02] + [2017-03] "3"
Avatar billede fdata Forsker
02. juni 2017 - 14:33 #1
Det er fordi du lægger tre strenge med værdien "1" sammen. Det giver "111".

Prøv med:
  2017-1Q: CInt([2017-01]) + CInt([2017-02]) + CInt([2017-03])

CInt konverterer strenge til Integer (heltal)
Avatar billede terry Ekspert
02. juni 2017 - 16:26 #2
Once could ask why the fields are text when you want to use them in calculations. Maybe convert field to numeric then there would be no need to convert al the time
Avatar billede redbulldk Juniormester
02. juni 2017 - 18:25 #3
Tak for Jeres forslag.

Jeg har prøvet begge forslag, men jeg får en fejl.  Når der er et "1" i alle 3 kolonner, tæller den 3. Mangler der er et "1", får jeg "#Fejl" - Det er underligt for mig.

Udtrykket jeg anvender, er validering om et medlem er medlem i en periode, hvor jeg har en start (Sign) og slutdato (End). Er medlemmen medlem i pågældende måned, skal der i kolonnen 2017-01 stå "1" (uden " "). Kan fejlen skyldes at jeg anvender dato i udtryksgeneratoren f.eks. for 2017-01:?

Formlen er:
2017-01: IIf([Data]![Sign] Is Not Null;IIf([Data]![End] Is Not Null;(IIf(([Data]![Sign]<#01-01-2017# And [Data]![End]>#01-01-2017#);CInt(1)));IIf([Data]![Sign]<#31-01-2017#;CInt(1))))
Avatar billede terry Ekspert
02. juni 2017 - 19:39 #4
This isn't the same as the original question where you were having problems adding three fields!

Can you give an example of your data and we need to know what data type the fields have. Then explain what you are trying to do.
Avatar billede fdata Forsker
04. juni 2017 - 13:09 #5
Du blander begreberne en smule! To kommentarer:

- Dine Iif udtryk mangler sidste led.
Syntaksen er Iif(<Et eller andet>;<Hvis sand>;<Hvis falsk>)
I dit tilfælde skal sidste led jo nok være et 0 (nul)
Hvis du indsætter det, kan du umiddelbart summere værdierne, som jo så enten er 1 eller 0. (Du kan ikke lægge 1 og et tomt felt sammen)

- CInt(1) er ikke nødvendigt. Det er det samme som 1 (du har jo ikke en streng her)
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