---
title: "argument.."
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/21635-argument"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "icaaq"
published: "2001-09-30T18:01:00.000Z"
updated: "2001-09-30T20:42:00.000Z"
replies: 10
views: 169
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/21635-argument"
---

# argument..

## #1 — icaaq, 2001-09-30T18:01Z

låt oss säga att jag har en tabell med dessa fält:

```
F_Namn*
F_Address
F_Persnr*
F_Lag
F_Styrelse
```

Fälten med (\*) är redan ifyllda.

Nu har jag ett formulär där man ska skriva in om man är med i nån styrelse, men då vet man ju sällan personnr på den personen så det man kan fylla i där är Namn, Address, Personnr, styrelse.

Jag vill av dessa kunna utfärda en så exakt SQL-sats som möjligt, för att kunna se om jag ska uppdatera en befintlig post eller om jag ska göra en helt ny.

Det börjar låta krångligt så jag visar ungefär hur jag tänkt mig:

```
strNamn = Request.Form("namn")
straddress = Request.Form("address")
strPersnr = Request.Form("persnr")
strLag = Request.Form("lag")
strStyrelse = Request.Form("stryrelse")

strSQL = "SELECT * FROM TABELLEN WHERE [b]det är här det börjar, om strNamn inte är tomt skall det sökas på[/b] F_Namn = '"&strNamn&"' AND [b]och om strAddress inte är tomt skall det sökas även där[/b] F_Address = '"&strAddress&"'....osv osv...hur
```

skriver jag nått sånt ??

eller förstår ni vad jag menar överhuvudtaget.. ;)

Permalänk: https://www.webforum.nu/p/21635

## #2 — LarsG, 2001-09-30T18:11Z

```
strSQL = "SELECT * " &_
" FROM TABELLEN " & _
" WHERE 1 = 1 " 

if strName <> "" then
strSQL = strSQL & " and f_name = '" & strname & "'"
end if

if strAdress <> "" then
strSQL = strSQL & " and f_adress = '" & stradress & "'"
end if

'och så vidar
```

red: felstavning

Permalänk: https://www.webforum.nu/p/352662

## #3 — icaaq, 2001-09-30T18:53Z

tack..........jag hade för mig att jag sett nått sånt förut ....och precis så var det :)

Permalänk: https://www.webforum.nu/p/352663

## #4 — icaaq, 2001-09-30T19:46Z

kan man på nått sätt uppdatera på samma sätt fast tvärt om:

Låt oss säga att jag har

```
namn*
telefon
address*
```

Fälten med (\*) är redan ifyllda.
jag vill alltså uppdatera fälten som inte har något värde (i detta fallet  telefon)

kan man göra en sådan dynamisk SQL-sats??

Permalänk: https://www.webforum.nu/p/352664

## #5 — LarsG, 2001-09-30T19:59Z

Hur menar du egentligen? 
Du  borde väl endast göra en update om värdet har förändrats gentemot databasen. Det kan du åstadkomma genom att ha de gamla värdena som hidden som du jämför med.

Permalänk: https://www.webforum.nu/p/352665

## #6 — icaaq, 2001-09-30T20:08Z

Låt oss ta följande exempel:
jag tar och kör en select:

```
strSQL = "SELECT F_Namn, F_Address, F_Telefon WHERE PersonID = "&intPersonID&""
Set ObjRS = ObjConn.execute(strSQL)
```

Då får jag fram att jag har värden i F_Namn och F_Address ....men i det nya formuläret så har jag även fyllt i telefonnummret så jag skulle vilja uppdatera db med det. 

Hur ska jag då göra det...??
 :q

Permalänk: https://www.webforum.nu/p/352666

## #7 — icaaq, 2001-09-30T20:20Z

Det jag vill är alltså:
Om fältet är tomt i databasen och om jag har ett värde som ska in där i från ett formulär då skall det uppdateras.

går det att fixa??och hur i så fall??

Permalänk: https://www.webforum.nu/p/352667

## #8 — LarsG, 2001-09-30T20:25Z

Jo men asså går det.

```
strSQL = "SELECT F_Namn, F_Address, F_Telefon from t WHERE PersonID = "&intPersonID&""
Set ObjRS = ObjConn.execute(strSQL)

strTel = request.form("telefon") 
if  not ObjRS.eof then
    if strTel <> ObjRS("F_telefon") then
       ObjConn.execue "update t set telefon = '" & strTel & "' where PersonID = " & intPersonID ,,128
end if
end if
```

Permalänk: https://www.webforum.nu/p/352668

## #9 — icaaq, 2001-09-30T20:31Z

och så kan jag köra hela formuläret???

```
strSQL = "SELECT F_Namn, F_Address, F_Telefon from t WHERE PersonID = "&intPersonID&""
Set ObjRS = ObjConn.execute(strSQL)
strTel = request.form("telefon") 
if not ObjRS.eof then
if strTel <> ObjRS("F_telefon") then
ObjConn.execue "update t set telefon = '" & strTel & "' where PersonID = " & intPersonID ,,128
if strAddress <> ObjRS("F_Address") then
ObjConn.execue "update t set address = '" & strAddress & "' where PersonID = " & intPersonID ,,128
end If
end if
end if
```

 :q

Permalänk: https://www.webforum.nu/p/352669

## #10 — LarsG, 2001-09-30T20:37Z

Nja, i så fall blir logiken något mer konvoluterad, det är ju onödigt att göra två update om båda fälten har ändrats.

```
strSQL = "SELECT F_Namn, F_Address, F_Telefon from t WHERE PersonID = "&intPersonID&""
Set ObjRS = ObjConn.execute(strSQL)
strTel = request.form("telefon") 
if not ObjRS.eof then
sql = ""
if strTel <> ObjRS("F_telefon") then
sql = "update t set telefon = '" & strTel & "'"
end if
if strAddress <> ObjRS("F_Address") then
if sql = "" then
sql = "update t set address = '" & strAddress & "'" 
else
sql = sql & ",address = '" & strAddress & "'" 
end If
if sql <> "" then
   sql = sql & " where personID = " & intPersonID 
   ObjConn.execute sql,,128
end if
end if
```

Permalänk: https://www.webforum.nu/p/352670

## #11 — icaaq, 2001-09-30T20:42Z

ok..........jag börjar bli mäkta trött i ögonen nu ...\*printar\* och går och läser på papper....

tack LarsG jag hör av mig imorron ;)

Permalänk: https://www.webforum.nu/p/352671

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/21635-argument
