Davs,
Jeg sidder for tiden og roder med en database til noget
personalekøb på arbejdet. Hver gang der oprettes et nyt
personalekøb, oprettes et individuelt rekvisitionsnummer, i det
øjeblik købet oprettes i databasen.
Intil forleden har det fungeret fint, men nu er det begyndt at
lave følgende fejl:
"Microsoft OLE DB Provider for ODBC Drivers error '80040e2f'
[Microsoft][ODBC Microsoft Access 97 Driver] The changes you
requested to the table were not successful because they would
create duplicate values in the index, primary key, or
relationship. Change the data in the field or fields that contain
duplicate data, remove the index, or redefine the index to permit
duplicate entries and try again.
indsat1.asp, line 50"
Koden ser således ud:
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" &
server.MapPath("personalekob.mdb")
SQLstmt = "SELECT * From Personalekob"
'response.write SQLstmt
Conn.Execute (SQLstmt)
Set rs = Conn.Execute(SQLstmt)
DO WHILE NOT rs.EOF
Reknr = rs("Reknr")
rs.MoveNext
LOOP
%>
<%
Opretdato=Trim(request.querystring("Opretdato"))
Virksomhed=Trim(request.querystring("Virksomhed"))
Personalenr=Trim(request.querystring("Personalenr"))
Dim DataConn
Dim CmdAddRecord
Dim MYSQL
Dim Dato
Dato = "12-12-12"
Set DataConn = Server.CreateObject("ADODB.Connection")
Set CmdAddRecord = Server.CreateObject("ADODB.Recordset")
DataConn.Open "DBQ=" & Server.Mappath("personalekob.mdb") &
";Driver={Microsoft Access Driver (*.mdb)};"
MYSQL = "SELECT * FROM Personalekob"
CmdAddRecord.Open MYSQL, DataConn, 1, 3
CmdAddRecord.AddNew
CmdAddRecord.Fields("Opretdato") = Opretdato
CmdAddRecord.Fields("Reknr") = Reknr+1
CmdAddRecord.Fields("Virksomhed") = Virksomhed
CmdAddRecord.Fields("Personalenr") = Personalenr
CmdAddRecord.Fields("Ordredato") = Dato
CmdAddRecord.Fields("Folgedato") = Dato
CmdAddRecord.Fields("Fakturadato") = Dato
CmdAddRecord.Update
CmdAddRecord.Close
Set CmdAddRecord = Nothing
DataConn.Close
Set DataConn = Nothing
%>
<%
rs.Close
Conn.Close
Set Conn = nothing
%>
<%
Response.redirect ("indsat2.asp")
%>
Som I kan se burde den gå til den sidste intastede række, tage
rekvisitionsnummeret. Derefter laver den en ny række hvor de nye
data sættes ind, og derefter tager den den forrige rækkes rekv.
nr og lægger 1 til.
Umiddelbart vil jeg tro fejlen har at gøre med at den ikke tæller
rækkerne ordentligt op, eller at måden jeg forøger
rekvisitionsnummeret på ikke er god nok.
Nogle ideer?
--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! =>
http://www.html.dk/tutorials