Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Datensätze löschen in MS-Access mit VBA-Code....

Empfohlene Antworten

Veröffentlicht

Hi Leute,

also nun bin ich echt am A...., ich habe für eine DB in MS-Access ein Formular erstellt, in das Firmendaten (Adresse, Branche etc) eingegeben werden sollen. Damit man nun einen "schönen" Überblick hat, welche Firmen denn so alles schon in der DB erfasst sind, habe ich ein Listenfeld eingefügt, dass den Firmennamen und -ort anzeigt. Beim Löschen eines Datensatzes geschieht nun folgendes:

Alle Daten aus den verknüpften Tabellen werden gelöscht, nur in der tbl_firmen (Haupttabelle) bleiben die Firmendaten drin, somit auch in meinem Listenfeld.

Hier mal der Quellcode, damit Ihr mich vielleicht besser versteht:

Der LÖSCHBUTTON:

Private Sub cmdDeleteDS_Click()

On Error GoTo Err_cmdDeleteDS_Click

Dim antw As Byte

Beep

antw = MsgBox("Wollen Sie diesen Datensatz wirklich löschen?", _

vbYesNo + vbQuestion, "Löschwarnung!")

If antw = vbYes Then

DoCmd.SetWarnings False

DoCmd.RunCommand acCmdDeleteRecord

DoCmd.SetWarnings True

antw = MsgBox("Der Datensatz wurde endgültig gelöscht!", _

vbOKOnly + vbExclamation, "Info!")

Me.list_firmenliste.Requery

End If

Exit_cmdDeleteDS_Click:

Exit Sub

Err_cmdDeleteDS_Click:

MsgBox Err.Description

Resume Exit_cmdDeleteDS_Click

End Sub

Das LISTFELD:

Private Sub list_firmenliste_Click()

Dim rst As Recordset

Dim strGesuchterName As String

cmdBearbeiten.Visible = True

cmdDeleteDS.Visible = True

Set rst = Me.RecordsetClone

rst.FindFirst "[iD_FIRMA] = " & list_firmenliste.Value

If rst.NoMatch Then

MsgBox " Datensatz nicht gefunden "

Else

Me.Bookmark = rst.Bookmark

End If

rst.Close

End Sub

Bei den Verweisen ( in VBA)sind

Visual-Basic for Application

MS-Access 9.0 Object-Libary

OLE-Automation und

MS-DAO 3.51 Object-Libary

eingeschaltet. In einer anderen Anwendung die ich programmiert habe funktioniert der abgleich mit dem Listenfeld übrigens. Bei gleichen Quellcode und Verweisen...

Seltsam, oder ?????

Hat jemand einen Tipp ???

Euer Jörg

Schade das keiner eine Antwort weiss... Ich habe leider immer noch keine Lösung für meoin Prob....

Naja

Wenn jemand ne Idee hat, ich bin immer dankbar für nen tipp....

in welcher Umgebung schreibst Du diesen Code in VB oder VBA???

den einen Eintrag aus nem Listview oder der DB zu löscehnist nicht so kompliziert!

In VBA, das seltsame ist das er aus dem Formular heraus ... also folgendes:

es gibt drei Tabellen

1. tbl_firma (Haupttabelle)

2. tbl_stellenbeschreibung

3. tbl_anforderungsprofil

die tbl_firma ist mit der tbl_stellenbeschreibung mit ner 1 :n Beziehung und die tbl_stellenbeschreibung mit der tbl_anforderungsprofil ebenfalls mit ner 1:n Beziehung verbandelt.

Nun zu dem Seltsamen : Beim Clicken des Löschbutton( auf dem Formular), löscht er mir alle Daten aus den Untertabellen (stellenbesch / anforderung...) die Daten in der tbl_firma läßt er drin, und aktualisiert mein Listfeld nicht.... Die Beziehungen sind mit Lösch- und Aktualisierungsweitergaber usw ausgestattet...

Wir rätseln schon seit gestern hier rum, was da schief läuft....

Auf dem Formular ist die Stellenbeschreibung als Unterformular eingebunden....

Hast Du ne Idee ????

Isch nisch... ;-)

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.