|
| Problem med at sende besked om allerede in~ Fra : Carsten Pinderup |
Dato : 07-08-01 11:30 |
|
Denne kode vil kun tjekke den første Ø90 nummer i databasen, resten bliver
gemt igen - hvorfor.
Fx er 1111 første Ø90 nr i db'en og den sender brugeren til
response.write "Ø90 nummeret findes allerede i databasen TJEK nummeret<br>"
osv
1112 står som nr to, men den bliver blot gemt igen og igen.
Hvad er galt?
ø90 er gemt som tekst i DB.
<%
'Henter oplysninger om Ø90 fra formen
str90 = Trim(Request.form("oe90"))
'DSNLess forbindelse til databasen
strDSN = "DRIVER={Microsoft Access Driver
(*.mdb)};DBQ="&Server.MapPath("konvertering.mdb")
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open strDSN
'Tjekker om Ø90 findes i forvejen
strSQL = "SELECT oe90 FROM stamopl"
set rs = myconn.execute(strSQL)
oe90 = rs ("oe90")
IF str90 = oe90 THEN
response.write "Ø90 nummeret findes allerede i databasen TJEK nummeret<br>"
response.write "<a href='javascript:history.back()'>Gå tilbage til
formen</a><br>"
Response.Write "<a href='se_rediger_data.asp'>Gå til
Konverteringsforsiden</a><br>"
ELSE
'Gemmer oplysninger hvis ikke Ø90 findes i forvejen
strSQL = "INSERT INTO stamopl (dato, oe90, navn, efternavn, tlf, center,
bem )"
strSQL = strSQL & " VALUES (#" &Now & "#,'" & request.form("oe90") & "','"
& request.form("navn") & "','" & request.form("efternavn") & "','" &
request.form("tlf") & "','" & request.form("center") & "','" &
request.form("bem") & "')"
response.write strSQL
myConn.Execute (strSQL)
response.redirect ("siden_er_gemt.asp")
myConn.Execute (strSQL)
END IF
myconn.Close
Set myconn = nothing
Set strSQL = nothing
%>
| |
Kim Jensen (07-08-2001)
| Kommentar Fra : Kim Jensen |
Dato : 07-08-01 14:07 |
|
> Fx er 1111 første Ø90 nr i db'en og den sender brugeren til
> response.write "Ø90 nummeret findes allerede i databasen TJEK
nummeret<br>"
> osv
> 1112 står som nr to, men den bliver blot gemt igen og igen.
> Hvad er galt?
> 'Tjekker om Ø90 findes i forvejen
> strSQL = "SELECT oe90 FROM stamopl"
> set rs = myconn.execute(strSQL)
> oe90 = rs ("oe90")
Du mangler noget "WHERE oe90=...." sjov her. Lige nu vælger du jo bare
"oe90" fra alle records og putter derefter den første over i din
oe90-variabel.
mvh
Kim Jensen
| |
Carsten Pinderup (07-08-2001)
| Kommentar Fra : Carsten Pinderup |
Dato : 07-08-01 14:22 |
|
Ja det fandt jeg også ud af:
**************start
'Tjekker om Ø90 findes i forvejen
strSQL = "SELECT oe90 FROM stamopl WHERE"
strSQL = strSQL & " (oe90 LIKE '%" & str90 & "%')"
Set rs = myConn.Execute(strSQL)
**************slut
MEN MEN så får jeg følgende fejl når jeg sender en "NY" ø90 nr.:
**************start
ADODB.Field error '800a0bcd'
Either BOF or EOF is True, or the current record has been deleted; the
operation requested by the application requires a current record.
/admin/konvertering/gem_data.asp, line 32
**************slut
jeg klistre lige hele asp'en ved:
<%
'Henter oplysninger om Ø90 fra formen
str90 = Trim(Request.form("oe90"))
response.write str90
'DSNLess forbindelse til databasen
strDSN = "DRIVER={Microsoft Access Driver
(*.mdb)};DBQ="&Server.MapPath("konvertering.mdb")
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open strDSN
'Tjekker om Ø90 findes i forvejen
strSQL = "SELECT oe90 FROM stamopl WHERE"
strSQL = strSQL & " (oe90 LIKE '%" & str90 & "%')"
Set rs = myConn.Execute(strSQL)
IF str90 <> rs ("oe90") THEN
'Gemmer oplysninger hvis ikke Ø90 findes i forvejen
strSQL1 = "INSERT INTO stamopl (dato, oe90, navn, efternavn, tlf, center,
bem )"
strSQL1= strSQL1 & " VALUES (#" &Now & "#,'" & request.form("oe90") & "','"
& request.form("navn") & "','" & request.form("efternavn") & "','" &
request.form("tlf") & "','" & request.form("center") & "','" &
request.form("bem") & "')"
response.write strSQL1
myConn.Execute (strSQL1)
response.write "<br>siden er gemt"
ELSE
response.write "Ø90 nummeret findes allerede i databasen TJEK nummeret<br>"
response.write "<a href='javascript:history.back()'>Gå tilbage til
formen</a><br>"
Response.Write "<a href='se_rediger_data.asp'>Gå til
Konverteringsforsiden</a><br>"
END IF
myconn.Close
Set myconn = nothing
Set strSQL = nothing
Set strSQL1 = nothing
%>
mvh cpi
| |
Kim Jensen (07-08-2001)
| Kommentar Fra : Kim Jensen |
Dato : 07-08-01 14:47 |
|
> **************slut
> MEN MEN så får jeg følgende fejl når jeg sender en "NY" ø90 nr.:
> IF str90 <> rs ("oe90") THEN
Du ved jo allerede, at de 2 værdier er ens, da det jo er klausulen i din
SELECT-statement. Så det du istedet skal teste på er om recordsættet er tomt
eller ej:
IF rs.eof THEN
' der blev ikke fundet en record med den angivne oe90-værdi så vi kan lave
INSERT
mvh
Kim Jensen
| |
Carsten Pinderup (07-08-2001)
| Kommentar Fra : Carsten Pinderup |
Dato : 07-08-01 14:54 |
|
Jeg tror nok der faldt en tiøre der! TAK
"Kim Jensen" <kj@jmt.dk> skrev i en meddelelse
news:3b6ff14a$0$343$edfadb0f@dspool01.news.tele.dk...
> > **************slut
> > MEN MEN så får jeg følgende fejl når jeg sender en "NY" ø90 nr.:
>
> > IF str90 <> rs ("oe90") THEN
>
> Du ved jo allerede, at de 2 værdier er ens, da det jo er klausulen i din
> SELECT-statement. Så det du istedet skal teste på er om recordsættet er
tomt
> eller ej:
>
> IF rs.eof THEN
> ' der blev ikke fundet en record med den angivne oe90-værdi så vi kan lave
> INSERT
>
>
> mvh
> Kim Jensen
>
>
| |
|
|