PDA

Vollständige Version anzeigen : löschen von Datensätzen in als Code


Bernhard_Einhaus
29.09.2005, 09:51
Hallo,

stehe im moment wie ein Ochse vor dem Berg.

Lese über visual-basic eine Tabelle1 ein vergleiche sie mit den Werten einer anderen Tabelle2 bei gleichheit soll der Datensatz aus Tabelle2 gelöscht werden.

komme einfach nicht mehr auf den Code.

kann mir da jemand schnell helfen

vielen Dank

Gruss

Berny

WMS
29.09.2005, 10:08
... da du sicher eine ID in jeder tabelle hast, weißt du bei Gleicht heit die ID der zweiten Tabelle:

="Delete * from Tabelle2 WHERE ID = " & GefundenID

Morli
29.09.2005, 10:09
Wenn Du uns jetzt noch wissen lassen würdest, wie Du Tab1 einliest und mit Tab2 vergleichst, dann wäre es sicherlich ganz einfach....!

Morli

Bernhard_Einhaus
29.09.2005, 10:43
Vielen Dank für eure Hilfe hier mein Code:

Set datenbank = DBEngine.Workspaces(0).Databases(0)
Set b2 = datenbank.OpenRecordset("berlin2", DB_OPEN_DYNASET)
Set b2a = datenbank.OpenRecordset("berlin2a", DB_OPEN_DYNASET)
Set tes = datenbank.OpenRecordset("test", DB_OPEN_DYNASET)



b2.MoveFirst
Do Until b2.EOF

b2a.MoveFirst
Do Until b2a.EOF


If b2a!straße = b2!straße Then

datensatz löschen

Nouba
29.09.2005, 10:56
Dim sSql As String

' in einem Backup testen
sSql = "DELETE berlin2a WHERE straße In(SELECT Straße FROM berlin GROUP BY straße)"
DBEngine(0)(0).Execute sSql, dbFailOnError

Bernhard_Einhaus
29.09.2005, 13:14
Hallo vielen Dank für die Hilfe leider gibt es immer eine Fehlermeldung und zwar bei sSql meldet das System Operator fehlt.

Kannst du bitte nochmal schauen. Vielen Dank

Dim datenbank As Database
Dim kunden As DAO.Recordset
Dim kunden1 As DAO.Recordset
Dim sSql As String


Set datenbank = DBEngine.Workspaces(0).Databases(0)
Set b2 = datenbank.OpenRecordset("berlin2", DB_OPEN_DYNASET)
Set b2a = datenbank.OpenRecordset("berlin2a", DB_OPEN_DYNASET)
Set tes = datenbank.OpenRecordset("test", DB_OPEN_DYNASET)



b2.MoveFirst
Do Until b2.EOF

b2a.MoveFirst
Do Until b2a.EOF


If b2a!straße = b2!straße Then

sSql = "Delete berlin2a where straße In(Select Straße from berlin group by straße)"
DBEngine(0)(0).Execute sSql, dbFailOnError

End If

b2a.MoveNext
Loop

b2.MoveNext
Loop

Nouba
29.09.2005, 13:22
Mein Kode, der eine Löschabfrage auslöst, sollte Deinen Kode zu 100% ersetzen und keineswegs ergänzen.

Bernhard_Einhaus
29.09.2005, 14:23
hallo, da blick ich jetzt gar nicht mehr durch wie du es meinst
kannst du mir bitte mal aufzeigen wie das genau auszusehen hat. Da wäre ich dir unendlich dankbar.

Vielen Dank Gruss Berny

Nouba
29.09.2005, 15:15
Ich habe das bereits genau aufgezeigt.