Hmm still can't get it to work. Maybe I should completely rewrite the code, but the problem is that I'm not experienced enough.
An other option for me is to do it in small steps so first step is to delete just one record. Could you help me with that?


WiseGuy

P.S. here's what I have now, it runs without errors but nothing is deleted:

VB Code:
  1. If rs.RecordCount <> 0 Then
  2.       If grdDatagrid.RowSel <= 0 Then
  3.         gsFormParm = CMD_DELRCD & "|" & rs![OpdrachtId]
  4.         frmProductieOpdrachten.Show
  5.         Me.Enabled = False
  6.       Else
  7.         If GeneralDialog(DIATYPE_OPERATORQ, Me.Caption, _
  8.                  "Weet u zeker dat u de geselecteerde productieorders wilt verwijderen?", "") = _
  9.                                         DIABUTTON_YES Then
  10.           'ReDim arrCurrentSelection(grdDatagrid.RowSel - 1)
  11.           'lNumberCurrentlySelected = grdDatagrid.RowSel
  12.           'For iCnt = 0 To grdDatagrid.RowSel - 1
  13.           '  arrCurrentSelection(iCnt) = grdDatagrid.RowSel
  14.           'Next iCnt
  15.              ' definieer hoogste en de laagste selectie plus de selectiegrootte
  16.           lBeginSelect = DEF_MAXNBR_PRODUCTIEORDERS + 1
  17.           lEindeSelect = 0
  18.          ' For iCnt = LBound(arrCurrentSelection) To UBound(arrCurrentSelection)
  19.          '  rs.Bookmark = arrCurrentSelection(iCnt)
  20.          '  If rs!OpdrachtId < lBeginSelect Then 'lager dan de vorige waarde?
  21.          '    lBeginSelect = rs![OpdrachtId]
  22.          '  End If
  23.          '  If rs![OpdrachtId] > lEindeSelect Then ' hoger dan de vorige
  24.          '    lEindeSelect = rs![OpdrachtId]
  25.          '  End If
  26.          'Next iCnt
  27.          'OMM 6-10-2000; Gewijzigd om alleen de Orders te selecteren
  28.           For lngLoop = 0 To lngMaxReturned - 1
  29.          rsSelect.Find "OpdrachtId=" & aryIDs(lngLoop)
  30.           ' If CheckProductieOrderHasCharge(rsSelect![bonnummer]) Then
  31.           '   rsSelect.Update
  32.           '   rsSelect!IsVerwijderd = 1
  33.           '   rsSelect.Update
  34.           ' Else
  35.              rsSelect.Delete
  36.           ' End If
  37.          Next
  38.          iSelectRegel = 1  ' New Id for the first Order
  39.          ' Eerst renumber
  40.          'rsSelect.MoveFirst
  41.          Do While Not rsSelect.EOF
  42.            rsSelect.Update
  43.            rsSelect![OpdrachtId] = iSelectRegel
  44.            rsSelect.Update
  45.            rsSelect.MoveNext
  46.            iSelectRegel = iSelectRegel + 1
  47.           Loop
  48.           rsSelect.Close
  49.           'rs.Update
  50.         End If
  51.       End If
  52.     End If

B.T.W. here's another thing I don't understand:

' If rs!OpdrachtId < lBeginSelect Then
' lBeginSelect = rs![OpdrachtId]
' End If
' If rs![OpdrachtId] > lEindeSelect Then
' lEindeSelect = rs![OpdrachtId]
' End If

I can't figure out where lBeginSelect and lEindeSelect is filled. asside from:
lBeginSelect = DEF_MAXNBR_PRODUCTIEORDERS + 1
lEindeSelect = 0


I'm sorry if I'm such a pain in the ass and I want you to know that I appreciate it very much that you are trying to help me out!

WiseGuy