webForumDet fria alternativet

plussa på

12 svar · 373 visningar · startad av pellsäter

pellsäterMedlem sedan aug. 2000533 inlägg
#1

sql = "UPDATE lan SET antal = antal + 1 WHERE postort = '" &ort& "'"
conn.Execute(sql)

Är det någon som ser nåt fel med denna kod!

Jag vill kunna sätta antalet för varje postort och sedan plocka ut vilket län...

Men när jag försöker öka på antalet kunder i varje ort så sätter den inget...
När jag skriver ut sqlsatsen så ser det helt ok ut..
Idata basen står orterna med stora bokstäver men det spelar väl ingen roll??

LarsGMedlem sedan dec. 200012 465 inlägg
#2

Idata basen står orterna med stora bokstäver men det spelar väl ingen roll??

Det kan ha betydelse.

sql = "UPDATE lan SET antal = antal + 1 WHERE postort = '" &ucase(ort)& "'" 
conn.Execute sql
pellsäterMedlem sedan aug. 2000533 inlägg
#3

det funkar ändå inte...

skriver jag ut SQl så ser det riktigt ut men jag får ett mellanslag efter ortsnamnet... sätter jag då Rtrim på variabeln så blir variabeln tom....

Om jag hårdkodar variabeln och skriver

sql = "UPDATE lan SET antal = antal + 1 WHERE postort = 'ALINGSÅS'
conn.Execute(sql)

så blir det i alla fall inget resultat

@ndersMedlem sedan juni 200026 914 inlägg
#4

Det ligger inte lagrat med några mellanslag i databasen då?
Vad får du ut med en enkel Select-fråga?

SELECT antal FROM lan WHERE postort = 'ALINGSÅS'
pellsäterMedlem sedan aug. 2000533 inlägg
#5

det blir tomt

@ndersMedlem sedan juni 200026 914 inlägg
#6

0 träff, eller ett tomt fält? Vad innehåller fältet antal? vilken datatyp? Du kan inte lägga till 1 till ett värde som inte är ett tal, så om fältet är tomt (null) så går det nog inte. Du borde ha 0 som standardvärde i ett heltalsfält.

mvh,

pellsäterMedlem sedan aug. 2000533 inlägg
#7

Det står ingenting!

ok... antal är tal!

men du menar att jag ska sätta 0 i det fältet för att det ska vara möjligt att lägga till??

@ndersMedlem sedan juni 200026 914 inlägg
#8

Japp.

pellsäterMedlem sedan aug. 2000533 inlägg
#9

det hjälpte inte den lägger i alla fall inte till nåt... dessuotm när jag vill ta fram hur många kunder som finns i resp län (Alla orter har ett län kopplat till sig) så räknar den så många orter som finns i länet och inte vad som står i fältet "antal" där det antal kunder som finns i orten ska vara...

Så nu skulle det för Västra Götaland stå 0 men istället står det det antal kommuner som finns??

sql = "Select name, Count(antal) as X from lan where name= '"&lan&"' group by name"

så ser den koden ut!!

LarsGMedlem sedan dec. 200012 465 inlägg
#10

Om du använder access

sql = "UPDATE lan SET antal = iif(antal is null,0,antal) + 1 WHERE postort = '" &ucase(ort)& "'"

annars

sql = "UPDATE lan SET antal = coalesce(antal,0) + 1 WHERE postort = '" &ucase(ort)& "'"
pellsäterMedlem sedan aug. 2000533 inlägg
#11

Tack!!

Nu är bara frågan hur jag får fram allt!
Jag har en tabell med
Ort, Län, Antal

Jag vill ha ut hur många kunder som finns i de olika länen.. Ex.
3 kunder i ALingsås och 4 kunder i Göteborg blir 7 kunder o Västra Götaland...

Som frågan är nu så får jag bara ut antalet orter i länet!!

LarsGMedlem sedan dec. 200012 465 inlägg
#12
select sum(antal),namn
from lan
group by namn
pellsäterMedlem sedan aug. 2000533 inlägg
#13

var för snabb igår och trodde allt funkade!

det visar sig nu att den lägger till 2 för varje ny kund

så i visby finns det 2 kunder med jag får ut att det är 3

sql = "UPDATE lan SET antal = antal + 1 WHERE postort = '" &ucase(sort)& "'"
conn.Execute sql

så ser koden ut!

124 ms totalt · 3 externa anrop · cache AV · v20260731051352-full.56cc9887
0 ms — hämta statistik (cache)
0 ms — hämta forumlista (cache)
121 ms — hämta tråd, inlägg och bilagor (db)