| |
VB & DatenbankenADO Recordset delete-Funktion | | | Autor: SpaXX2 | Datum: 08.06.05 21:24 |
| Hallo,
Ich benutze ein ADO.Recordset um eingescannte Artikeldaten zwischenzuspeichern. Der benutzer kann alle Daten zusammentragen, löschen, neu scannen und die Daten, wenn der Kunde zufrieden ist, endgültig in die Datenbank (Access2000) übertragen.
Folgendes geschieht dabei. Für den seltenen Fall, dass aus dem Recordset zum zwischenspeichern (rsData) alle Daten gelöscht werden und anschließend neue Daten eingelesen werden, zeigt die Software dieses zwar noch an, doch beim Übertragen in die datenbank werden keine Daten übertragen.
Hier die aus meiner Sicht entscheidende Codestelle:
If rsData.EOF = True And rsData.BOF = True Then
MsgBox "Kein Eintrag vorhanden"
Exit Sub
Else
If MsgBox("Wollen Sie den Artikel wirklich stornieren?", vbYesNo) = vbYes _
Then 'Sicherheitsabfrage, ob Artikel wirklich storniert werden soll
rsStornoSum = rsData.Fields("Preis").Value _
'Auslesen des aktuellen Wertes und Zuweisen an Variable
...
rsData.Delete _
'Aktuellen Datensatz löschen
rsData.MoveFirst
rsData.UpdateBatch adAffectCurrent
End If Die Datenübertragung sieht so aus:
Do While Not rsData.EOF 'Schleife zum Einfügen
' aller Datensätze bis erreichen EOF
rsUmsätze.AddNew 'Datensatz in
' Datenbank einfügen
rsUmsätze!Verk_ID = lbl_VerkID.Caption
rsUmsätze!Artikel_ID = rsData.Fields("ArtikelNr").Value
rsUmsätze!SubArtikel_ID = rsData.Fields("LieferNr").Value
rsUmsätze!SubVerk_Preis = rsData.Fields("Preis").Value
rsUmsätze!BuchungArt = rsData.Fields("BuchArt").Value
rsUmsätze.Update
rsData.MoveNext
Loop Weiss jemand Rat?
Vielen Dank im Voraus | |
Re: ADO Recordset delete-Funktion | | | Autor: Prian0815 | Datum: 09.06.05 09:02 |
|
Probier mal das hier aus, weiß nicht obs die Umstellung von Move First und Update ist, könnte aber durchaus möglich sein.If rsData.EOF = True And rsData.BOF = True Then
MsgBox "Kein Eintrag vorhanden"
Exit Sub
Else
If MsgBox("Wollen Sie den Artikel wirklich stornieren?", vbYesNo) = vbYes
Then 'Sicherheitsabfrage, ob Artikel wirklich storniert werden soll
rsStornoSum = rsData!Preis 'Auslesen des aktuellen
' Wertes
rsData.Delete 'Aktuellen Datensatz löschen
rsData.UpdateBatch adAffectCurrent
rsData.MoveFirst
End If
Die Datenübertragung sieht so aus:
Do While Not rsData.EOF 'Schleife zum Einfügen aller Datensätze bis erreichen EOF
rsUmsätze.AddNew 'Datensatz in Datenbank einfügen
rsUmsätze!Verk_ID = lbl_VerkID.Caption
rsUmsätze!Artikel_ID = rsData!ArtikelNr
rsUmsätze!SubArtikel_ID = rsData!LieferNr
rsUmsätze!SubVerk_Preis = rsData!Preis
rsUmsätze!BuchungArt = rsData!BuchArt
rsUmsätze.Update
rsData.MoveNext
Loop
Gruß Armin
P.S.: always look on the bright side of Life! | |
Re: ADO Recordset delete-Funktion | | | Autor: SpaXX2 | Datum: 14.06.05 00:17 |
| Das war es. Vielen Dank für den Tipp. Allerdings bin ich etwas überrascht, denn den Tipp mit der Bewegung des Datensatzzeigers habe ich aus einer Dokumentation. Angeblich wird rs.delete erst ausgeführt, wenn der Datensatzzeiger sich vom gelöschten Eintrag entfernt hat. Dehalb erst rs.move und dann rs.update. Aber offensichtlich habe ich da etwas nicht ganz verstanden.
Vielen Dank
spaxx | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevGraph (VB/VBA)
Grafische Auswertungen
Präsentieren Sie Ihre Daten mit wenig Aufwand in grafischer Form. sevGraph unterstützt hierbei Balken-, Linien- und Stapel-Diagramme (Stacked Bars), sowie 2D- und 3D-Tortendiagramme und arbeitet vollständig datenbankunabhängig! Weitere InfosTipp des Monats Access-Tools Vol.1
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|