webForumDet fria alternativet

Access 2007: Enbart update på fält som är tomma.

Databaser & SQL

5 svar · 722 visningar · startad av Mattias Nordin

Medlem sedan dec. 20051 056 inlägg
Frågan#1

Hej gott folk.

Finns det något sätt att göra en update där man enbart ersätter tomma fält?

Tänkte att det kanske fanns ett bättre sätt än att ställa en fråga per kolumn.

Frågan jag vill ändra ser ut så här:

For i = 0 To UBound(arrFormValue) ' L O O P A R 
	varDbId = arrFormValue(i)
	sql = "UPDATE T_bild_register SET foto_taget_av = '" &sPicTakenBy &"'"	&_
	" , arkiv_nummer = '" &sArkivNummer &"'"				&_
	" , arkiv_plats = '" &sArkivPlats &"'"					&_
	" WHERE id = " &varDbId
	response.write("<li> sql = " &sql)
	connect.execute(sql)
next

Jag vill alltså undvika att skriva över eventuell befintlig information.

:stud

Medlem sedan dec. 20051 056 inlägg
#2

Hmmm...

Jag hittar inte någon bra sida som tar upp detta scenario. Är lite inne på något liknande:

...AND arkiv_nummer IN(null)...

Inga friska tankar där ute?

:stud

Medlem sedan dec. 200012 464 inlägg
#3
AND arkiv_nummer is null
Medlem sedan dec. 20051 056 inlägg
#4

Nu har jag suttit med det här för länge, det börjar bli tydligt *ler*.
Försökte lösa det i en fråga. Bryter jag ner det i flera frågor så är det inte så komplicerat. Anses detta vara en bra lösning?

'1)	-	LOOPA ANTALET BILDER...
		For i = 0 To UBound(arrFormValue) ' L O O P A R 
			varDbId = arrFormValue(i)
			
'1.1	-	arkiv_nummer
			sql = "UPDATE T_bild_register SET arkiv_nummer = '" &sArkivNummer &"' WHERE id = " &varDbId	
			sql = sql &" AND arkiv_nummer is null"
			response.write("<li> sql = " &sql &"<p>")
			connect.execute(sql)
			
'1.2	-	arkiv_plats
			sql = "UPDATE T_bild_register SET arkiv_plats = '" &sArkivPlats &"' WHERE id = " &varDbId	
			sql = sql &" AND arkiv_plats is null"
			response.write("<li> sql = " &sql &"<p>")
			connect.execute(sql)
			
'1.3	-	foto_taget_av
			sql = "UPDATE T_bild_register SET foto_taget_av = '" &sPicTakenBy &"' WHERE id = " &varDbId	
			sql = sql &" AND foto_taget_av is null"
			response.write("<li> sql = " &sql &"<p>")
			connect.execute(sql)
			
		next

behövde lite imput för att tänka om...

Medlem sedan dec. 200012 464 inlägg
#5
    sql = "UPDATE T_bild_register " & _
          "SET arkiv_nummer = iif(arkiv_nummer is null,'" &sArkivNummer &"',arkiv_nummer), " & _
          "arkiv_plats = iif(arkiv_plats is null,'" &sArkivPlats &"',arkiv_nummer)," & _
          "foto_taget_av = iif(foto_taget_av is null,'" &sPicTakenBy &"',foto_taget_av) " & _
          "WHERE id = " & varDBid

Ånger

Medlem sedan dec. 20051 056 inlägg
#6

Now we're talking... Jag ska rösta på LarsG i nästa kommunalval!

275 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
147 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)