Avatar billede Pantzer Praktikant
14. juni 2009 - 16:55 Der er 8 kommentarer og
1 løsning

Ændre værdien af et afkrydsningsfelt fra -1 til 1

Jeg har en formular med en masse afkrydsningsfelter, som er bygget på en foresprøgelse.
Dette giver mig en forespørgelsestabel med en masse 0'er og -1'er.
Disse tal eksprotere jeg så til excel for at lave en masse beregninger på dem.

Jeg kunne bare godt tænke mig, at alle mine -1'er (de afkrydsede felter) bliver til 1-taller i stedet for.

Lige til orientering, så er jeg rimelig grøn mht. access og meget grøn når det gælder vba-kodning.
Avatar billede mugs Novice
14. juni 2009 - 17:29 #1
Et afkrydsningsfelt kan kun indeholde een af 2 værdier:

False / True
0 / -1

1 eksisterer således ikke som en option i en sådan felttype. Det er ikke noget problem at udskifte -1 med 1. Men så er det ikke et afkrydsningsfelt.

Lidt nærmere forklaring på, hvorfor du vil skifte værdi er velkommen, så vi bedre kan finde den optimale løsning.
Avatar billede Pantzer Praktikant
14. juni 2009 - 18:40 #2
Hej mugs

Jeg ved godt at jeg ikke kan få andre værdier end sand/falsk, ja/nej og 0/-1, men hvis der var en formel eller en eller anden form for kriterie som kan sættes ind i forespørgelsen eller et andet sted, som kunne ændre det ene værdi (som f.eks. HVIS-formularen fra excel).

Grunden til, at jeg gerne vil have værdien 1 i stedet for -1, er fordi det er irriterende at skulle lave en søg og erstat hver gang data fra access opdateres i mit excel-ark.
Avatar billede mugs Novice
14. juni 2009 - 18:58 #3
Du kan lave et numerisk felt i tabellen og i afkrydsningsfeltet i formularen indsætte denne kode VedKlik:

If me.AFKRYDSNINGSFELT = False then
Me.Dit FELT = 0
else:
Me.DIT FELT = 1
ens if

Jeg kan ikke lige huske, om falsk er = 0 eller -1, men prøv dig frem. Træk derefter dette felt ind i den forespørgsel du eksporterer til Excel i stedet for dit afkrydsningsfelt.

En anden mulighed er, at du laver en gruppeboks i stedet for dit afkrydsningsfelt. Dette returnerer en i forvejen defineret værdi til et felt i tabellen.
Avatar billede Pantzer Praktikant
14. juni 2009 - 19:12 #4
Fantastisk! Det virker!

Mange tak for hjælpen! :)
Avatar billede mugs Novice
14. juni 2009 - 19:17 #5
Selv tak - Og tak for point.
Avatar billede terry Ekspert
14. juni 2009 - 20:32 #6
you can also multiply the field by -1

0 * -1 = 0
-1 * -1 = 1
Avatar billede Pantzer Praktikant
14. juni 2009 - 23:10 #7
I've tried - allmost - everything, without any luck.
The field is a checkbox in a form, and when I try this:
=[Field Name]*-1
Then I can't use the checkbox...

The code mugs gave me, worked like a charme, so I'll use that. :)
Avatar billede terry Ekspert
15. juni 2009 - 08:44 #8
In the table a yes/no (True/False) is stored as 0 or -1.

So you need to convert this in a query which you you export to Excel.

In a query you would use something like

SELECT [YourYesNoField] * -1 AS Fld1 FROM YourTable

In design view it would look like this

Fld1: [YourYesNoField] * -1

(NOT TESTED)
Avatar billede hugopedersen Nybegynder
15. juni 2009 - 10:56 #9
Mig bekendt er definitionen:

Falsk er altid 0
Sand er -1 i Access (på MS SQL er det 1)

Hele misforståelsen er vist opstået fordi der er defineret en Bool i Windows der virker rigtigt, men den der hedder Boolean er noget som M$ har opfundet senere til dyb forvirring for alle.
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