Toon posts:

[Access]Volgende Recordset Weergeven na verwijderen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

Ik heb een knop gemaakt waarmee ik een recordset kan verwijderen, dit werk opzich. Als ik nu een maal op de verwijder recordset knop drukt verwijdert access de recordset gewoon, als ik echter nogmaals op verwijder recordset druk krijg ik een foutmelding. Acces gaat niet naar de volgende recordset...

Dit is de code tot nu toe:
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
Private Sub Verwijderen_Click()
    'Popup message
    If MsgBox("Weet u zeker dat u de bewoner wilt verwijderen uit 
        de database?", vbYesNo, "Verwijderen") = vbYes Then
    'Record Opvragen uit database
    Set Database = CurrentDb
    Set Recordset = Database.OpenRecordset("select * from " & 
         Me.RecordSource & " where ID=" & Me!ID&)
    'Verwijderen van Record
    Recordset.Delete
    'Volgende Record Weergeven
    Recordset.Close
    Database.Close
    Set Recordset = Nothing
    Set Database = Nothing
    Me.Refresh
    
    
    'Bij NEE, terug naar het formulier
    Else:
        MsgBox "De bewoner is niet verwijderd", vbOKOnly,
        "Niet verwijderd"
    
    End If
        
End Sub


Het probleem zit um in het Me.Refresh commando volgens mij? Hij moet nu toch automatisch de volgende recordset weergeven?

Alvast bedankt!

BTW. Ik heb al gezocht op Google, GoT, en dBForums

edit:
Bericht aangepast zodat de layout weer normaal is :)

[ Voor 27% gewijzigd door Verwijderd op 17-11-2003 12:15 ]


  • Boss
  • Registratie: September 1999
  • Laatst online: 04-09 10:35

Boss

+1 Overgewaardeerd

Gebruik anders eens DoCmd.RunCommand acCmdRecordsGotoFirst ipv die refresh, dan weet je zeker dat je weer een current record hebt.
code:
1
2
Set Recordset = Database.OpenRecordset("select * from " & 
         Me.RecordSource & " where ID=" & Me!ID&)
Die laatste & is een foutje, toch?

The process of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it is an aesthetic experience much like composing poetry or music.


Verwijderd

Topicstarter
Boss schreef op 17 november 2003 @ 13:29:
Gebruik anders eens DoCmd.RunCommand acCmdRecordsGotoFirst ipv die refresh, dan weet je zeker dat je weer een current record hebt.

Die laatste & is een foutje, toch?
Ik heb dit geprobeert, maar zonder suc6 ;(
Eerst kreeg ik bij alle invoervelden #NAAM, #WOONPLAATS, etc. Dit is nu verdwenen en de database geeft ook geen error meer in VB. :) Alleen laat Access nu de lege velden zien, en verder niets. Als ik probeer te navigeren zegt Access dat hij de opgegeven record niet kan vinden.

BTW. Jah dat was een foutje ;)

[ Voor 4% gewijzigd door Verwijderd op 17-11-2003 14:56 ]


Verwijderd

Topicstarter
Hooooo excuses! |:(
Foutje!

[ Voor 95% gewijzigd door Verwijderd op 17-11-2003 14:57 ]


  • Boss
  • Registratie: September 1999
  • Laatst online: 04-09 10:35

Boss

+1 Overgewaardeerd

Werkt het nu dan?

The process of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it is an aesthetic experience much like composing poetry or music.


Verwijderd

Topicstarter
Nee, helaas, ik krijg nu alleen een leeg forumulier, en kan niet meer navigeren tussen de records... :/ Als ik probeer te navigeren zegt Access dat i de opgegeven record niet kan vinden. Het maakt niet uit wat ik doe (dus naar eerste record, laatste, volgende of vorige) hij blijft deze melding geven.

Alvast bedankt! _/-\o_

  • Masch
  • Registratie: Augustus 2002
  • Laatst online: 05-09 07:05
Is het niet zo dat je ook de recordset van het gehele formulier leegmaakt?

Dus;

code:
1
2
3
4
5
    Recordset.Close
    Database.Close
    Set Recordset = Nothing
    Set Database = Nothing
    Me.Refresh

Dit stukje weglaten en vervangen door
code:
1
    Recordset.MoveNext

Ik weet niet zeker of dit werkt, want ik gebruik deze methode zelf nooit.

(\__/) Ik wist totaal niet wat hier neer te zetten....
(='.'=) Dus het werd....
("")("") Een konijn!!


Verwijderd

Topicstarter
Nope, helaas, nog steeds hetzelfde probleem als hierboven staat...

Is er ook een compleet andere manier om dit te doen? Want ik wil eigelijk geen standaard verwijder knop gaan gebruiken...

  • Boss
  • Registratie: September 1999
  • Laatst online: 04-09 10:35

Boss

+1 Overgewaardeerd

Wat wil je nu doen?

Als ik het goed lees, heb je in een tabel meerdere records staan met hetzelfde veld ID. Deze wil je met 1 druk op een knop kunnen verwijderen?

Dan kan je ook wat SQL gebruiken: "
code:
1
DoCmd.RunSQL "DELETE * FROM [tabel] WHERE ID = " & ID

Eventueel kan je met DoCmd.SetWarnings False/True de verwijder-waarschuwing uitzetten.

En a;s het niet meerdere maar 1 record is dat je moet verwijderen: DoCmd.RunCommand acCmdDeleteRecord.

The process of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it is an aesthetic experience much like composing poetry or music.

Pagina: 1