LOOP : verwijderen van gegevens in een tabel

Status
Niet open voor verdere reacties.

knaapies

Gebruiker
Lid geworden
25 mei 2007
Berichten
8
strSQl1 = "SELECT * from testmateriaallijst"
Set rs1 = CurrentDb.OpenRecordset(strSQl1)
Dim waarde As String
waarde = rs1.Fields("ID")

Do While waarde > "0"
Set rs1 = CurrentDb.OpenRecordset(strSQl1)
rs1.Delete
If waarde = "0" Then
MsgBox "Test"
Exit Do
End If
Loop

Het verwijderen van gegevens lukt , alleen als de tabel geen records bevat of alle record al verwijderd zijn geeft access een foutmelding geen huidge record.

dit komt omdat als de tabel regel rs1.Fields("ID") leeg is moet de loop stoppen hoe krijg ik dit voor elkaar.
ID staat op AutoNUmering als alle record zijn verwijderd dus is hij geen 1 of nul
anders zou je zeggen If waarde = "0" Then
 
Laatst bewerkt:
Gebruik de goede oude programmeer truc: Als niemand het probleem ziet, is er geen probleem.
Wat bedoel ik hiermee:

Code:
Try
     strSQl1 = "SELECT * from testmateriaallijst"
     Set rs1 = CurrentDb.OpenRecordset(strSQl1)
     Dim waarde As String
     waarde = rs1.Fields("ID")

     Do While waarde > "0"
     Set rs1 = CurrentDb.OpenRecordset(strSQl1)
     rs1.Delete
     If waarde = "0" Then
     MsgBox "Test"
     Exit Do
     End If
     Loop
Catch ex As Exception
End Try

P.S. niet letterlijk kopieëren: er stonden nogal wat haakjes te kort in bij jou ... zet er dus gewoon een try-catch blok rond ;)
 
het is geprogrammeerd in microsoft visual bsaic en niet in visual basic.net
dierdoor herkent hij de fucntie try catch block
 
Geen probleem ;) . ik veronderstel dat vb6 dit wel zou moeten aanvaarden:

Code:
On Error GoTo fout
     strSQl1 = "SELECT * from testmateriaallijst"
     Set rs1 = CurrentDb.OpenRecordset(strSQl1)
     Dim waarde As String
     waarde = rs1.Fields("ID")

     Do While waarde > "0"
     Set rs1 = CurrentDb.OpenRecordset(strSQl1)
     rs1.Delete
     If waarde = "0" Then
     MsgBox "Test"
     Exit Do
     End If
     Loop
     'Hier kan er nog code komen, maar "fout:" moet helemaal onderaan tegen "End Sub" staan!
fout:              
End Sub
 
Laatst bewerkt:
Dit kan ook en is korter:

Ik zou het anders doen:
Code:
strSQl1 = "Delete * from testmateriaallijst where ID > 0"
CurrentDb.Execute(strSQl1)
Maar wanneer is de ID <= 0?
Als dat helemaal niet het geval is dan kan je volstaan met
Code:
CurrentDb.Execute("Delete * from testmateriaallijst")
Zonder extra variabele.
 
Bedankt

Onweis bedankt voor het verhelpen van mijn probleem

Mijn programma is nu zo goed als klaar

Wat advieseren jullie om dit programma geprogrammeerd in access 2003 om een setup te maken.

Zelf dacht ik aan de package wizard in visual studio tools for office alleen het is heel moeilijk om aan dit programma te komen.
zelf heb ik wel visual studio prof

of kan je ook een setup file maken via een andere runtime programma

de bedoeling van een setup maken is zodat je niet access meer nodig heb en niet meer bij de gegevens kan komen.

groetjes michael
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan