Avatar billede killstun Nybegynder
28. marts 2005 - 17:46 Der er 7 kommentarer og
1 løsning

Tomt felt ved Update sætning (både tal og tekst form felter)

Jeg er ved at lave en update sætning, med en masse informationer som skal indsættes i databasen. Men nogle af form felterne vil måske ikke blive udfyldt, og gør de ikke det, får jeg en fejl. Hvad kan jeg gøre for at undgå dette (har både tekst og tal felter som skal udfyldes).

ex.
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/vti_log/etellerandet.mdb")
Conn.Open DSN
strSQL = "Update etellerandet set forbogstav='" & Request.Form("forbogstav") & "', titel='" & Request.Form("titel") & "', indeks='" & Request.form("indeks") & "' where ID= " & Request.form("ID")
Conn.Execute(strSQL)
Response.write "Databasen er opdateret"
Conn.Close
Set Conn = Nothing

Hvis fx feltet indeks ikke bliver indført (blankt felt) får jeg en fejl...

----------------------------------------------------------

Samtidig vil jeg også høre om det kan lave sig gøre at databasen ikke viser de felter som ikke er udfyldt?

ex.
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/vti_log/etellerandet.mdb")
Conn.Open DSN
strSQL = "Select * From etellerandet where ID =" & Request.querystring("ID")
Set rs = Conn.Execute(strSQL)
Do While NOT rs.EOF
Response.write "Titel:"
Response.write rs("titel")
Response.write "Indeks:"
Response.write rs("indeks")
rs.MoveNext
Loop
Conn.Close
Set Conn = Nothing

Hvis indeks feltet ikke er udfyldt, vil jeg ikke have at den viser linien Response.write "Indeks:".
Avatar billede busschou Praktikant
28. marts 2005 - 17:50 #1
det sidste kan jo løses ved en IF
Do While NOT rs.EOF
if rs("titel") <> "" then
Response.write "Titel:"
Response.write rs("titel")
end if
Avatar billede busschou Praktikant
28. marts 2005 - 17:50 #2
og tilsvarende med indeks
Avatar billede busschou Praktikant
28. marts 2005 - 17:51 #3
hvilken fejl faar du
Avatar billede sitemaster Nybegynder
28. marts 2005 - 18:00 #4
fatter ikke lige om du vil have at felterne skal udfyldes eller om nogle af dem kan være tomme, men tjek de forskellige felter i databasen om Oblikatorisk er sat til Ja hvis jeg ikke husker for meget forkert skal det stå til Nej hvis feltet kan være tom :D

Men kunne nu være rart med den fejlmeddelse du får :D

til det nederste kan du bruge

If rs("index") <> "" Then
Response.write "Indeks:" & rs("indeks")
End If
Avatar billede killstun Nybegynder
28. marts 2005 - 18:04 #5
Min fejl meddelelse ser således ud:

Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC Microsoft Access-driver] Datatyperne stemmer ikke overens i kriterieudtrykket.
/rettesql.asp, line 27

Linie 27 er denne:

strSQL = "Update etellerandet set forbogstav='" & Request.Form("forbogstav") & "', titel='" & Request.Form("titel") & "', indeks='" & Request.form("indeks") & "' where ID= " & Request.form("ID")

NB. Jeg har ikke lavet min database vha. designvisning.
Avatar billede busschou Praktikant
28. marts 2005 - 18:05 #6
Men hvis meningen er at det skal være muligt at angive et tomt felt således at et tomt indeks betyder tallet 0
Så kan du jo fx gøre sådan
if request.form("indeks") <> "" then
  indeks = request.form("indeks")
else
  indeks = 0
end if
og så i din sql bruge den nye indeks?
Avatar billede busschou Praktikant
28. marts 2005 - 18:05 #7
det er jo nok fordi dine "tal er strenge"
Avatar billede busschou Praktikant
28. marts 2005 - 18:06 #8
strSQL = "Update etellerandet set forbogstav='" & Request.Form("forbogstav") & "', titel='" & Request.Form("titel") & "', indeks='" & Request.form("indeks") & "' where ID= '" & Request.form("ID") &"'"
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester