webForumDet fria alternativet

Beräkningar på textfält

Databaser & SQLur Databashanterare & SQL

7 svar · 1 232 visningar · startad av Kalle M

Medlem sedan mars 20041 936 inlägg
Frågan#1

En fråga (Främst Access):

Jag har alltid fått för mig att man ska använda datatypen tal och valuta i tabellerna när man ska göra beräkningar med dessa fält.
Igår satt jag med en fråga i Access där jag använde funktionen OOM() på ett fält. Detta fält har datatypen "Text" i tabellen.

Det går alltså att göra beräkningar på fält som har datatypen "Text"?. Har alltid trott att om man ska göra beräkningar på fältet så ska man använda datatypen "tal"!?

Medlem sedan okt. 2007446 inlägg
#2

Stoppar man in enbart siffror i textfältet så kan man säkert göra beräkningar med det. man kanske behöver en typkonvertering, men den kanske är inbyggd i access för vissa saker, just av vänlighet mot folk som "gör fel". Problemet är att ett textfält tillåter ju ALLA tecken, således kan man råka få in en bokstav utan att det märks förens man kör sin beräkning

Så du har rätt, saker som man normalt sett gör beräkningar på skall lagras i fält som enbart tillåter numeriska värden.

Medlem sedan mars 20041 936 inlägg
#3

Har läst att man ska välja typen "Tal" och "Valuta" om man ska göra beräkningar på fält. Jag har ju använt OOM() på ett textfält som desutom innehåller text!?
Jag hade fältet "Kön" i en tabell där jag hade M och K. M står för Man och K står för Kvinna. I en fråga vill jag sedan att det istället ska visas som Man och kvinna istället för M och K. Därför gjorde jag en OOM() funktion.

Är det så att endast vissa beräkningar går att göra med datatypen "Text" och att man kan göra fler typer av beräkningar när man har datatypen "Tal"?

Medlem sedan aug. 20039 342 inlägg
#4

OOM är inte en matematisk funktion, utan returnerar ett av två värden, beroende på om en sats är sann eller falsk. T ex: (typ) OOM(Kon = 'M', 'Man', 'Kvinna')
Om kön = 'M' får du tillbaka Man, annars Kvinna.

Medlem sedan mars 20041 936 inlägg
#5

Men det är väl nån form av beräkning ändå?

Vad är det för typ av beräkningar som jag inte kan göra om jag har datatypen "text"?

Medlem sedan aug. 20039 342 inlägg
#6

T ex

textfält * 2 +5
SUM(textfält)
AVG(textfält) (dvs medelvärde)

Medlem sedan mars 20041 936 inlägg
#7

Ok. Har alltid fått för mig att det är uteslutet med alla beräkningar på textfält.

Em sidfråga:

Hur kommer det sig att OOM() finns i Access och i exempelvis Excel är det OM()? Det är ju samma typ av funktion!?

Medlem sedan aug. 20039 342 inlägg
#8

Kalle M skrev:

Ok. Har alltid fått för mig att det är uteslutet med alla beräkningar på textfält.

Inlägget ovan var exempel på saker du inte kan göra med textfält. OOM är ju inte en beräkning, medan 1+1 är det.

Kalle M skrev:

Hur kommer det sig att OOM() finns i Access och i exempelvis Excel är det OM()? Det är ju samma typ av funktion!?

Får du fråga Microsoft om. Men jag gissar att det beror på att OOM heter IIF på engelska, vilket står för "immediate if". I SQL finns redan något som heter if. Det där extra i't behövs alltså inte i Excel.

138 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)