Hmm tis wel een mega lap code hoor
Probeer te triggeren waar het precies fout gaat, oftewel, debug messages plaatsen, queries printen (en controlleren!), form en querystring waardes checken, dat soort dingen. Stapje voor stapje proberen te triggeren waar precies het probleem zit, en als je dan nog een lap van ong. 15 regels code over hebt waar het probleem in "zou moeten" zitten, dan is dat in ieder geval een stuk handiger lezen.
[edit]
PS hoe ver kom je? In welke pagina gaat het fout?
En hmmm vergeet niet om de input die je krijgt vanuit de form en de querystring _altijd_ goed te controlleren of er alleen maar geldige zaken instaan (nummertje moet ook numeriek zijn, string die in de db maximaal n tekens mag zijn, ook checken of die string niet te lang is, dat soort dingen...
Enne uh als je 1 record wilt wijzigen, query dan
SELECT velden FROM tabel WHERE keyveld = waarde
Dan hoef je ook niet een complete tabel door te loopen op zoek naar het juiste record.
[edit]
PS hoe ver kom je? In welke pagina gaat het fout?
En hmmm vergeet niet om de input die je krijgt vanuit de form en de querystring _altijd_ goed te controlleren of er alleen maar geldige zaken instaan (nummertje moet ook numeriek zijn, string die in de db maximaal n tekens mag zijn, ook checken of die string niet te lang is, dat soort dingen...
Enne uh als je 1 record wilt wijzigen, query dan
SELECT velden FROM tabel WHERE keyveld = waarde
Dan hoef je ook niet een complete tabel door te loopen op zoek naar het juiste record.
Exact expert nodig?
Verwijderd
Misschien heb je hier niks aan hoor, maar waarom update je niet via een SQL statement...
dus
if update == true
{
strSql = "Update tabelX SET naam = "' & naam &'", adres = '"& adres &"' WHERE recnum = '"& recnum
}
De sybtax van ASP zal wel niet geheel kloppen(ben er een tijdje uit, maar zo'n update statement werkt meestal perfect.
dus
if update == true
{
strSql = "Update tabelX SET naam = "' & naam &'", adres = '"& adres &"' WHERE recnum = '"& recnum
}
De sybtax van ASP zal wel niet geheel kloppen(ben er een tijdje uit, maar zo'n update statement werkt meestal perfect.
Zet in ieder geval even "show friendly http error messages" uit in IE. Dan krijg je misschien wat meer info dan alleen "internal server error".
Verwijderd
Jep, dan zie tenminste waar het fout gaat !!Op zondag 30 juni 2002 21:00 schreef Vigory het volgende:
Zet in ieder geval even "show friendly http error messages" uit in IE. Dan krijg je misschien wat meer info dan alleen "internal server error".
Opties - Internet opties - Tab Advanced - Onderaan bij "Browsing" staat dat aangevink...
En ik zal ook es naar je code kijken
Thnx ik heb nu wat meer info, hier heb ik de errorOp zondag 30 juni 2002 21:02 schreef slindenau het volgende:
[..]
Jep, dan zie tenminste waar het fout gaat !!
Opties - Internet opties - Tab Advanced - Onderaan bij "Browsing" staat dat aangevink...
En ik zal ook es naar je code kijken
code:
1
2
3
| Microsoft OLE DB Provider for ODBC Drivers error '80040e2f' [Microsoft][ODBC Microsoft Access Driver] Index or primary key cannot contain a Null value. |
Het zit in line 46. Dit stukje dus:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| RS.Fields("nr") = Nr
RS.Fields("hrmw") = Hrmw
RS.Fields("voorletters") = Voorletters
RS.Fields("naam") = Naam
RS.Fields("adres") = Adres
RS.Fields("postcode") = Postcode
RS.Fields("plaats") = Plaats
RS.Fields("telefoon") = Telefoon
45 RS.Fields("email") = Mail
46 RS.Update
47 End If
RS.close
set RS = nothing
Response.Redirect "wijzig.asp" |
Niet moeilijk dus..
Is Nr je primary key? Waarom verander je nummer dan weer bij het opslaan?
Deze regel zou dan weg moeten:
RS.Fields("nr") = Nr
Deze regel zou dan weg moeten:
RS.Fields("nr") = Nr
Of je gebruikt een gereserveerd kolomnaam, wat me niet onlogisch lijkt gezien je namen, of het komt omdat Email niet 8 maar 9 is in je formuliertje.
Een aantal opeenvolgende hints (ben in melige bui, mocht je er na hint 1 niet uitkomen, zie dan hint 2....:))
Hint 1: Ga eens heeeeeeel goed in je sql query kijken
Hint 2: Gebruik eens een Response.write op je query te bekijken
Hint 3: Tel het aantal velden is in je query
Hint 4: Let op de (scheiding)kommaatjes
Hint 1: Ga eens heeeeeeel goed in je sql query kijken
Hint 2: Gebruik eens een Response.write op je query te bekijken
Hint 3: Tel het aantal velden is in je query
Hint 4: Let op de (scheiding)kommaatjes
code:
1
2
3
4
| SQLstring = SQLstring & "'" & NewPostcode & "'" SQLstring = SQLstring & "'" & NewPlaats & "'" SQLstring = SQLstring & "'" & NewTelefoon & "'" SQLstring = SQLstring & "'" & NewMail & "'" |
Digitaal onderwijsmateriaal, leermateriaal voor hbo
Dat maakt niet uit; er zit een foutje in je query, welke db je ook gebruikt.. (zie verder hints 2 t/m 4)Op zondag 30 juni 2002 23:41 schreef Evil M@V het volgende:
[..]
Sorry het is een Access database
Digitaal onderwijsmateriaal, leermateriaal voor hbo
Volgens mij vergeet je een aantal komma's.
Alle velden binnen VALUES () dienen met komma's gescheiden te zijn. Als je een Response.write(sqlstatement) doet ipv een execute zul je zien dat de laatste 4 velden niet door komma's gescheiden zijn en dus als 1 veld behandeld worden.
Graag gedaan
Graag gedaan
Verwijderd
Ik zie de fout ook..je leest er zo overheen, maar het is een makkieOp zondag 30 juni 2002 23:43 schreef gorgi_19 het volgende:
[..]
Dat maakt niet uit; er zit een foutje in je query, welke db je ook gebruikt.. (zie verder hints 2 t/m 4)
Bingo, je gaat door voor de koelkast...:)Op zondag 30 juni 2002 23:47 schreef Hakkert het volgende:
[..]
Ik zie de fout ook..je leest er zo overheen, maar het is een makkie
Digitaal onderwijsmateriaal, leermateriaal voor hbo
mm dit heb ik veranderd, nu krijg ik [Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.Op zondag 30 juni 2002 23:47 schreef zneek het volgende:
Volgens mij vergeet je een aantal komma's.Alle velden binnen VALUES () dienen met komma's gescheiden te zijn. Als je een Response.write(sqlstatement) doet ipv een execute zul je zien dat de laatste 4 velden niet door komma's gescheiden zijn en dus als 1 veld behandeld worden.
Graag gedaan
Thnx btwOp zondag 30 juni 2002 23:47 schreef zneek het volgende:
Volgens mij vergeet je een aantal komma's.Alle velden binnen VALUES () dienen met komma's gescheiden te zijn. Als je een Response.write(sqlstatement) doet ipv een execute zul je zien dat de laatste 4 velden niet door komma's gescheiden zijn en dus als 1 veld behandeld worden.
Graag gedaan
Hij bedoelt dat je de datum moet opgeven als: #01/01/2002#
Ik heb nu het volgende en krijg nog steeds de foutmelding
Number of query values and destination fields are not the same.
Number of query values and destination fields are not the same.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
| NewNr = Request.Form("0")
NewDatum = Request.Form("12")
Newhrmw = Request.Form("1")
NewVoorletters = Request.Form("2")
NewNaam = Request.Form("3")
NewAdres = Request.Form("4")
NewPostcode = Request.Form("5")
NewPlaats = Request.Form("6")
NewTelefoon = Request.Form("7")
NewMail = Request.Form("8")
NewLid = Request.Form("9")
NewGz = Request.Form("11")
SQLstring = "INSERT INTO ledenlijst (nr,datum,hrmw,voorletters,naam,adres,postcode,plaats,telefoon,email,lid,gzl)"
SQLstring = SQLstring & " VALUES ("
SQLstring = SQLstring & "'" & NewNr & "',"
SQLstring = SQLstring & "'" & NewDatum & "',"
SQLstring = SQLstring & "'" & Newhrmw & "',"
SQLstring = SQLstring & "'" & NewVoorletters & "',"
SQLstring = SQLstring & "'" & NewNaam & "',"
SQLstring = SQLstring & "'" & NewAdres & "',"
SQLstring = SQLstring & "'" & NewPostcode & "',"
SQLstring = SQLstring & "'" & NewPlaats & "',"
SQLstring = SQLstring & "'" & NewTelefoon & "',"
SQLstring = SQLstring & "'" & NewMail & "',"
SQLstring = SQLstring & "'" & NewLid & "'"
SQLstring = SQLstring & ")" |
Logisch
Tel het aantal velden maar (van nr t/m gzl) en het aantal values (Newnr t/m Newlid)
Maar gebruik een keer de response.write om je query op het scherm te toveren! Deze fouten moet je er zelf uit kunnen halen.
Tel het aantal velden maar (van nr t/m gzl) en het aantal values (Newnr t/m Newlid)
Maar gebruik een keer de response.write om je query op het scherm te toveren! Deze fouten moet je er zelf uit kunnen halen.
Digitaal onderwijsmateriaal, leermateriaal voor hbo
Pagina: 1