[ASP] "Groepen" records toevoegen lukt niet

Pagina: 1
Acties:

  • TweakersOnly
  • Registratie: September 2000
  • Laatst online: 21:46
Ff. een verduidelijking van de topic titel: :)

Aan de hand van contracten en CAO's bouwt een medewerker een bepaald verlof- en ADV-tegoed op. Een CAO-overeenkomstr bestaat uit een aantal verlofsoorten, zoals Vakantieverlof, Feestag, Verplicht ADV maar ook Ziekte. Wanneer een nieuwe CAO-overeenkomst wordt afgesloten, kunnen de verlofsoorten van het oude CAO-overeenkomst automatisch worden geregistreerd voor de nieuwe CAO-overeenkomst, zodat de administrator minder werk hoeft te verrekenen.

Op dit moment heb ik voor het omzetten van de verlofsoorten de volgende code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
dim objVERLOFSOORTEN
dummydatum = dateadd("d",-1,CDate(Request.Form("Begindatum")))
dummydatum = Month(dummydatum) & "/" & Day(dummydatum) & "/" & Year(dummydatum)     
SQL = "SELECT * FROM Verlofsoort" //Verkorte query :)
set objVERLOFSOORTEN = DBConn.Execute(SQL)
DO UNTIL objVERLOFSOORTEN.EOF = TRUE
     dim objADDVERLOFSOORT
     set objADDVERLOFSOORT = Server.CreateObject("ADODB.RecordSet")
     objADDVERLOFSOORT.Open "Akkoord", DBConn, 2, 2
     objADDVERLOFSOORT.AddNew
     objADDVERLOFSOORT("AkkoordID")  = AkkoordID
     objADDVERLOFSOORT("Omschrijving") = Replace(objVERLOFSOORTEN("Omschrijving"),"'","''")
     objADDVERLOFSOORT("Autorisatie") = objOUDEABSENTIESOORTEN("Autorisatie")
     objADDVERLOFSOORT.Update
     objADDVERLOFSOORT.Close
     set objADDVERLOFSOORT = nothing
     objVERLOFSOORTEN.MoveNext              
LOOP 
objVERLOFSOORTEN.Close
set objVERLOFSOORTEN = nothing



Bij de volgende regel
code:
1
objADDVERLOFSOORT("AkkoordID")  = AkkoordID

Krijg ik de volgende foutmelding:
Microsoft OLE DB Provider for ODBC Drivers error '80040e21'

Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.

CAO-akkoord/Akkoord_add.asp, line 120
De variabele AkkoordID is gedefineerd en is "voorzien" van een integerwaarde. De tabel Verlofsoort heeft een veld "AkkoordID", dus er zijn op zich geen typefouten gemaakt. Weet iemand wat ik verkeerd doe?

Verwijderd

Uhm ... je opent je recordset opnieuw binnen de loop????
code:
1
2
3
dim objADDVERLOFSOORT
set objADDVERLOFSOORT = Server.CreateObject("ADODB.RecordSet")
objADDVERLOFSOORT.Open "Akkoord", DBConn, 2, 2

Gaat niet echt goed zo lijkt me ...

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 13:54

Crazy D

I think we should take a look.

Bevat AkkoordID wel een (geldige!) waarde en zo ja, is AkkoordID niet perongeluk een autoincrement veld?
En waarom gebruik je geen insert query? Nu open je iedere keer de hele tabel om 1 record toe te voegen.

Exact expert nodig?