Toon posts:

[vb] cancel delete record datagrid

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi, ik heb een datagrid die een tabel weergeft uit een database (via ado control met odbc koppeling). Nu wil ik dat als er op een record in de datagrid op dete gedrukt wordt dat de record niet wordt gedelete maar dat de velden in de record de waarde verwijderd krijgen. Het delete gebeuren moet dus afgevangen worden en omgezet worden in een update.

[script]
Private Sub dtgExtern_BeforeUpdate(Cancel As Integer)
If (adoExtern.Recordset.EditMode = 4) Then
adoExtern.Recordset.CancelBatch
bVerwerken = True
strZoek = dtgExtern.Columns.Item(0).Text
adoExtern.RecordSource = "SELECT * FROM Extern WHERE Extern='" & strZoek & "'"
adoExtern.Refresh
adoExtern.Recordset.Update 1, "Verwijderd"
End If
End Sub
[/script]

Het werkt op zich wel, hij delete de record niet en vervangt de inhoud van veld 1 in de record door de tekst Verwijderd. Maar het datagrid laat de wijzeging niet zien. En als ik bijvoorbeeld de standaard query weer run in de ado control en de datagrid refresh dan blijft het gehele zooitje hangen. Iemand al eens eerder zo iets gedaan, of een bruikbare link?

  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 26-06 10:37

OZ-Gump

terug van weggeweest

offtopic:
Zou je in het vervolg misschien ff op typefouten willen checken en echte code-tags willen gebruiken? Dit leest voor geen meter.


Ik verwacht dat je de dataset fff moet sluiten en opnieuw openen. Met de code die je hier gepost hebt is niet te achterhalen hoe je dat nu doet, omdat dit alleen de schrijfactie laat zien. En die code is ook heel wazig met die ADOExtern die verder nergens geDIMd wordt, en de ene keer gebruik je DataSource en de andere DataSet. :?
Overigens vraag ik me wel af waarom je ADO en ODBC gebruikt, omdat je met ADO nou juist rechtstreeks naar een database kunt als je de connectiestring netjes opbouwt.

[ Voor 28% gewijzigd door OZ-Gump op 31-07-2003 16:18 ]

My personal website


Verwijderd

Topicstarter
dat recordsource gebeuren is omdat ik niet weet hoe ik uit kan lezen om welke record het gaat die geselecteerd is als ik op delete druk. Dus ik zoek de waarde in een veldje terug in de database. Ik heb er niet heel erg veel verstand van maar ik gebruik een ADO en via het properties scherm heb ik een ODBC koppeling geselecteerd. En in de datagrid zet ik de datasource koppeling met het SET kommando aan het ADO control. Hij zet dan alle waardes uit de tabel automatisch in de datagird. Ik weet niet hoe het anders zou kunnen maar ik sta natuurlijk open voor ideeen!!!

Hoe sluit ik een dataset? En ik neem aan dat je bedoeld de dataset van het ADO control?