Jag har en accesstabell där en kolumn är formaterat som Tal. Jag har inte satt någonting som standardvärde i dessa fält. Från ett VB-program gör jag en Update-SQL . Jag har då en variabel i satsen som ibland kan vara Emty. I tabellen blir det till att stå nollor där. Hur gör man för att få det att inte stå någonting i dessa fält? ( Kanske detta skulle ha stått i VB-forumet?) Om du kör en update-sats gör du såhär: Jag har dimensionerat en variabel som Integer. När jag sätter variabel=Null så får jag felmeddelandet "Invalid use of Null" rs(Fältnamn)= "" går ej eftersom det är formaterat som tal i databasen. Fältet är nog skapat att ej tillåta null värden! Då kan man aldrig sätta fältet till null utan den måste då innehålla siffran 0 istället. Kontrollera om fältet tillåter nullvärden! Du kan inte sätta själva integer variabeln till null. Du måste sätta fältet i recordsetet till null. Fältet tillåter nollvärden. OK, då får jag använda recordset istället för variabler i Updatesatsen då. Jasså jag trodde du använde recordset. Du behöver inte byta till recordset. Det ska gå att sätta nul i updatesatsen rakt av. Du kan också bygga ihop frågan genom att titta på Det fungerar nu. En dum fråga men jag tyckrer om att lära mig. Vad betyder @ i databassammanhang? Det är en slags sqlsyntax för variabler. Det måste jag försöka hitta att läsa. Nu kanske jag bara svamlar i forumet men när används detta med fördel?Tomt istället för 0 i tabell
Sv: Tomt istället för 0 i tabell
... Fält = Null ...
/JohanSv: Tomt istället för 0 i tabell
Sv: Tomt istället för 0 i tabell
Sv: Tomt istället för 0 i tabell
Sv: Tomt istället för 0 i tabell
Du gör en if sats där du kontrollerar om integer variabeln = 0, då sätter du fältet till null annars sätter du fältet till variabelnSv: Tomt istället för 0 i tabell
Sv: Tomt istället för 0 i tabell
Du får ha en update sats där du skriver null om integer variabeln = 0
och i det andra fallet en annan updatesats där du skriver variabeln.
DVS en if sats och två update satser.
Du kan också gå efter mänstret
strSQL = "Update...."
if variabel = 0 then
strSQL = strSQL & " fält = NULL "
else
strSQL = strSQL & " fält = variabel "
strSQL = strSQL & " eventuellt fler villkor"
Glöm inte att se att slutresultatet har fått alla mellanslag på rätt ställen :)Sv: Tomt istället för 0 i tabell
Andreas Hillqvist förklaring om command object i
[Problem med en stored procedure i VB]
Du skriver "UPDATE ......... fält=@parameter"Sv: Tomt istället för 0 i tabell
Sv: Tomt istället för 0 i tabell
Om du tittat på några stored procedures (så kallade sp)
så ser du att alla variabler inuti dem är deklarerade så att namnet börjar med @.
Sen finns där några sql systemspecifika varibaler med två @@
exempelvis @@Identity.
Leta gärna upp sp och @@Identity och läs mer om dem.Sv: Tomt istället för 0 i tabell