/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Problem med opdatering af record i relater~
Fra : Laurits Thomsen


Dato : 27-07-06 07:48

Ok. Her kommer et spørgsmål der er lidt svært at formulere så det
giver mening, men jeg forsøger.
Jeg har et site med en database der indeholder mange tabeller med
relationer imellem dem. Jeg har bl.a. en tabel der hedder
”tilbud” med post der hedder ”målgruppe”. Posten ”målgruppe” er
forbundet til en tabel ”malgr” som har en tilsvarende post der
hedder ”målgruppe”. (1-til-mange relation hvor malgr.målgruppe er
"1"- delen).

I malgr tabellen har jeg 7 målgrupper som alle tilbud skal
placeres inden for. For at sikre mig, at der ikke vælges andre
målgrupper i ”Tilbud” tabellen skal brugeren vælge disse via en
drop-down”. Problemet er så, at når jeg sætter tilbudet ind i
databasen kan ”malgr” tabellen ikke genkende målgruppen og
afviser den. (tror jeg nok).

I koden henter jeg tilbudets record ind for at se hvilken
målgruppe der evt tidligere er valgt sådan at denne står selected
i dropdown menuen. Dette gør jeg via en funktion (som jeg i
øvrigt har lært her på html.dk og er rigtig glad for).

<%
Function printOption(link, hvem)
Dim selected
If link = mmode Then
selected = "selected"
Else
selected = ""
End If
printOption = "<option "&selected&">"&hvem&"</option>"
End Function



mmode =trim(rsInst("målgruppe"))
Dim rsmalgrup1

set rsmalgrup1 = Server.CreateObject("ADODB.Recordset")
rsmalgrup1.ActiveConnection = strConn1
rsmalgrup1.Source = "SELECT Distinct [målgruppe] FROM malgr"
rsmalgrup1.CursorType = 0
rsmalgrup1.CursorLocation = 2
rsmalgrup1LockType = 3
rsmalgrup1.Open
rsmalgrup1_numRows = 0%>


<TABLE BORDER="2">
<td style= background:#8C9C9d ><b>Målgruppe: </b></td>
<td>
<select size="1" name="malgrupny">
<% Response.write printOption("", "Vælg en kategori")

Do While Not rsmalgrup1.EOF
Response.write printOption(trim(rsmalgrup1("målgruppe")),
trim(rsmalgrup1("målgruppe")))
rsmalgrup1.movenext
Loop
%>
</select> </table>

.................................................................
..................

Så langt ser det ud til at virke. Når jeg skal behandle formen
ser det dog ud til, at der går noget galt. Her er et lille
udsnit:

… strMalg= trim(Request.Form("malgrupny"))

strSQL = "Update ret set "
strSQL = "Update ret set " strSQL = strSQL & "[målgruppe]= ' "&
trim(strMalg) & " ' , "
strSQL = strSQL & " Where tilbud.id =" &
Request.Querystring("id")& " "

Jeg får følgende fejl:
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC Microsoft Access Driver] You cannot add or
change a record because a related record is required in table
'malgr'.
Er der nogen der kan se hvad der går galt? (Er der nogen der
forstod mit spørgsmål..?)

På forhånd tak for hjælpen.
Laurits


--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Lars Hoffmann (30-07-2006)
Kommentar
Fra : Lars Hoffmann


Dato : 30-07-06 08:45

Laurits Thomsen wrote:
> Dette gør jeg via en funktion (som jeg i
> øvrigt har lært her på html.dk og er rigtig glad for).

Hej Lauritz

Du er ikke på HTML.dk men derimod på Usenet hvor HTML.dk så blot har
et interface til nogle bestemte nyhedsgrupper - men nok om det.

> Do While Not rsmalgrup1.EOF
> Response.write printOption(trim(rsmalgrup1("målgruppe")),

Hvis du vil loade rsmalgrup1("målgruppe") i din drop down og så
senere bruge den værdi som nøgle i tabellen malgr, skal du ikke
trimme den, da du har brug for en eksakt match af værdien.

> ... strMalg= trim(Request.Form("malgrupny"))
> ...
> strSQL = "Update ret set "
> strSQL = "Update ret set " strSQL = strSQL & "[målgruppe]= ' "&
> trim(strMalg) & " ' , "
> strSQL = strSQL & " Where tilbud.id =" &
> Request.Querystring("id")& " "

Prøv lige at lave en response.write strSQL istedet for at køre din
SQL, så kan du se hvad det er den egentlig prøver at køre i
databasen.

> Er der nogen der kan se hvad der går galt? (Er der nogen der
> forstod mit spørgsmål..?)

Ja det syntes jeg nu nok jeg gjorde, der er dog en ting der undrer mig
lidt. Har din tabel malgr kun feltet målgruppe og edr det virkelig det
der linker til tabellen res? du har ikke et ID eller lignende i
tabellen malgr?

Din <option> kommer til at se således ud:

<option>målguppe A</option>
<option selected>målguppe B</option>
<option>målguppe C</option>

Jeg havde nok regnet med noget i stil med:

<option id="1">målguppe A</option>
<option id="2" selected>målguppe B</option>
<option id="3">målguppe C</option>

Med venlig hilsen
Lars Hoffmann


Lars Hoffmann (30-07-2006)
Kommentar
Fra : Lars Hoffmann


Dato : 30-07-06 08:45

Laurits Thomsen wrote:
> Dette gør jeg via en funktion (som jeg i
> øvrigt har lært her på html.dk og er rigtig glad for).

Hej Lauritz

Du er ikke på HTML.dk men derimod på Usenet hvor HTML.dk så blot har
et interface til nogle bestemte nyhedsgrupper - men nok om det.

> Do While Not rsmalgrup1.EOF
> Response.write printOption(trim(rsmalgrup1("målgruppe")),

Hvis du vil loade rsmalgrup1("målgruppe") i din drop down og så
senere bruge den værdi som nøgle i tabellen malgr, skal du ikke
trimme den, da du har brug for en eksakt match af værdien.

> ... strMalg= trim(Request.Form("malgrupny"))
> ...
> strSQL = "Update ret set "
> strSQL = "Update ret set " strSQL = strSQL & "[målgruppe]= ' "&
> trim(strMalg) & " ' , "
> strSQL = strSQL & " Where tilbud.id =" &
> Request.Querystring("id")& " "

Prøv lige at lave en response.write strSQL istedet for at køre din
SQL, så kan du se hvad det er den egentlig prøver at køre i
databasen.

> Er der nogen der kan se hvad der går galt? (Er der nogen der
> forstod mit spørgsmål..?)

Ja det syntes jeg nu nok jeg gjorde, der er dog en ting der undrer mig
lidt. Har din tabel malgr kun feltet målgruppe og edr det virkelig det
der linker til tabellen res? du har ikke et ID eller lignende i
tabellen malgr?

Din <option> kommer til at se således ud:

<option>målguppe A</option>
<option selected>målguppe B</option>
<option>målguppe C</option>

Jeg havde nok regnet med noget i stil med:

<option id="1">målguppe A</option>
<option id="2" selected>målguppe B</option>
<option id="3">målguppe C</option>

Med venlig hilsen
Lars Hoffmann


Laurits Thomsen (30-07-2006)
Kommentar
Fra : Laurits Thomsen


Dato : 30-07-06 12:24

Hej Lars
Tak for hjælpen.
> der er dog en ting der undrer mig
> lidt. Har din tabel malgr kun feltet målgruppe og edr det virkelig
det
> der linker til tabellen res? du har ikke et ID eller lignende i
> tabellen malgr?

Nej, der er ikke noget id - og det er nok dumt.
Men dit forslag resulterede dog i, at det nu virker. Mange tak for
hjæpen.

Mvh
Laurits

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Søg
Reklame
Statistik
Spørgsmål : 177514
Tips : 31968
Nyheder : 719565
Indlæg : 6408622
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste