Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Auf Haupt- und Unterformular löschen
zurück: Inhalt in einem Kombinationsfeld filtern weiter: Feldinhalt in Abhängigkeit von anderem Feld anzeigen Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Antwort Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Gast4
Gast


Verfasst am:
11. März 2008, 18:07
Rufname:

Auf Haupt- und Unterformular löschen - Auf Haupt- und Unterformular löschen

Nach oben
       Version: Office 2003

Hallo zusammen.

ich habe folgendes Problem.

Ich habe zwei Tabellen erstellt: PC_Info und PC_Info_Aenderungen.
Die beiden Tabellen sind über Computer_Name verknüpft.
In der Tabelle PC_Info ist der Schlüssel (ohne AutoWert) der Computer_Name.
In der Tabelle PC_Info_Aenderungen ist der Schlüssel das Feld ID (mit AutoWert).

Im Hauptformular lade ich alle Felder von PC_Info und lasse die über Listenfeld (Liste43) auswählen.
Es gibt auch ein Unterformular (Name: Durchgeführte Änderungen), in dem tabellarisch
nur die Datensätze angezeigt werden, die den gleichen Wert Computer_Name im Hauptformular haben.

Mein Problem besteht darin, dass ich im Hauptformular über einen Button NUR Datensatz in einem Hauptformular (sprich in der Tabelle: PC_Info) löschen kann, aber nicht dazu gehörige Datensätze in der Tabelle: PC_Info_Aenderungen.

Kann mir jemand bitte helfen ( mit Code usw.)

Vielen, vielen Dank!!!
Zed2k
Im Profil kannst Du frei den Rang ändern


Verfasst am:
12. März 2008, 11:31
Rufname:


AW: Auf Haupt- und Unterformular löschen - AW: Auf Haupt- und Unterformular löschen

Nach oben
       Version: Office 2003

Hi,
am bestern du bastelst dir einen Button im Hauptformular und belegst ihm mit dem Ereignis "Bei Klick" wie folgt:
Code:
Private Sub btnDelete_Click()
On Error GoTo Err_btnDelete_Click
    Dim db As DAO.Database
    Dim strSQL As String
   
    Set db = CurrentDb
    strSQL = "DELETE FROM PC_Info_Aenderungen " & _
              "WHERE Computer_Name Like '" & Me!computername & "'"
    db.Execute strSQL, dbFailOnError
    strSQL = "DELETE FROM PC_Info " & _
              "WHERE Computer_Name Like '" & Me!computername & "'"
    db.Execute strSQL, dbFailOnError
    Me.Requery
Exit_btnDelete_Click:
    Exit Sub
Err_btnDelete_Click:
    MsgBox "An Error occured: " & Err.Number & vbCrLf & Err.Description, _
           vbCritical + vbOKOnly, "Error in Delete Button"
    Resume Exit_btnDelete_Click
End Sub
Dabei müsstest du den Computer Namen irgendwo im selben Formular, wie den Button anzeigen, in einem Feld namens ComputerName. Ich weiß gar nicht, gibt die Liste nur einen Zahlenwert für ihre Auswahl zurück oder kann sie auch den Inhalt weitergeben, d.h. hier den Computer Namen?
_________________
Grüße, Zed
Gast4
Gast


Verfasst am:
12. März 2008, 14:12
Rufname:

AW: Auf Haupt- und Unterformular löschen - AW: Auf Haupt- und Unterformular löschen

Nach oben
       Version: Office 2003

Hallo Zed2k

danke für den Tipp. Ich werd es gleich ausprobieren.

Bei mir ist es so , dass ich im Listenfeld aus mehreren Einträgen einen auswähle (Im Formularkopf), und dann werden im Detailbereich alle Felder zum ausgewählten Eintrag gefühlt, inklusive Computer_Name (der auch im Listenfeld steht).

Danach wird im Unterformular (ist schon auf dem Hauptformular vorhanden) Tabelle PC_Info_Aenderungen) geladen und es werden dadrin nur die Datensätze (tabelarische Ansicht) angezeigt, die mit dem Feld Computer_Name verknüpft sind.

Und mein Problem ist, dass ich nur Datensatz im Hauptformular löschen kann (sprich in der Tabelle PC_Info), aber nicht die Datensätze oder Datensatz im Unterformular geladen sind bzw verknüpft sind (sprich in der Tabelle PC_Info_Aenderungen).
Zed2k
Im Profil kannst Du frei den Rang ändern


Verfasst am:
12. März 2008, 14:20
Rufname:

AW: Auf Haupt- und Unterformular löschen - AW: Auf Haupt- und Unterformular löschen

Nach oben
       Version: Office 2003

Hi,
also der Code löscht zuerst alle Tupel in PC_Info_Aenderungen mit dem angezeigten Computer_Name-Wert und dann alle Tupel in PC_Info mit dem Comupter_Name-Wert (sollte nur ein Tupel sein).
Aber mir fällt gerade ein, besteht eine Beziehung zwischen den Tabellen? Ist dort die referentielle Integrität aktiviert und die Löschweitergabe darin auch? Dann sollte eigentlich beim Löschen den Datensatzes in der Haupttabelle das Löschen der Tupel in der untergeordneten Tabelle erzwingen.

_________________
Grüße, Zed
Gast4
Gast


Verfasst am:
12. März 2008, 15:33
Rufname:


AW: Auf Haupt- und Unterformular löschen - AW: Auf Haupt- und Unterformular löschen

Nach oben
       Version: Office 2003

Hi Zed2k

ich hab jetzt so gemacht, das ich in der Beziehung eine Löschweitergabe aktiviert habe und es hat funktioniert.

Super! Vielen, vielen Dank für den Tipp.

ich hab da noch eine Frage.

Kann man diesen blöden Dialog-Fenster, wo steht: ...
Zitat:
Beziehungen, die Löschweitergabe angeben, haben zur Folge, dass 1 Datensätze aus dieser Tabelle sowie aus verwandten Tabellen gelöscht werden.
usw bla bla bla....
umgestallten (wo einfach steht: Wollen Sie löschen? Ja Nein) oder deaktivieren??
Willi Wipp
Moderator


Verfasst am:
12. März 2008, 15:38
Rufname:
Wohnort: Raum Wiesbaden

Re: Auf Haupt- und Unterformular löschen - Re: Auf Haupt- und Unterformular löschen

Nach oben
       Version: Office 2003

Hi Gast4,

schau Dir mal das Formular-Ereignis Vor Loeschen (BeforeDelete) an.
Damit solltest Du weiter kommen Wink
Code:
Private Sub Form_BeforeDelConfirm(Cancel As Integer, Response As Integer)
    'Löschen wird auf jeden Fall durchgeführt (keine Anzeige der Abfrage!)
    'Die Entscheidung wird bereits in Form_Delete getroffen!
    Response% = acDataErrContinue
End Sub

Private Sub Form_Delete(Cancel As Integer)
    Dim str     As String
    Dim vAnswer As Variant
   
    str$ = "Sollen die Daten dieses Kunden gelöscht werden?" & vbCrLf & _
           vbCrLf & "Abbrechen des Löschvorganges mit [Nein]"
    vAnswer = MsgBox(str$, vbYesNo + vbQuestion, _
                     "Löschabfrage [Kundendaten]")
    If vAnswer <> vbYes Then Cancel% = True
End Sub

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
Zed2k
Im Profil kannst Du frei den Rang ändern


Verfasst am:
12. März 2008, 15:48
Rufname:

AW: Auf Haupt- und Unterformular löschen - AW: Auf Haupt- und Unterformular löschen

Nach oben
       Version: Office 2003

Hi Willi,
ich hab gerade versucht rauszufinden, ob und wenn was die Dollar- bzw. Prozentzeichen hinter den Variablen bewirken. Oder ist das nur als Namenskonvention zur Unterscheidung der Datentypen gedacht?

_________________
Grüße, Zed
Gast4
Gast


Verfasst am:
12. März 2008, 16:53
Rufname:

AW: Auf Haupt- und Unterformular löschen - AW: Auf Haupt- und Unterformular löschen

Nach oben
       Version: Office 2003

Gast4 am 12. März 2008 um 15:37 hat folgendes geschrieben:
Hi Willi Wipp

coooool......es funktioniert!!!!

Jetzt bin ich diese blöde und grausame Meldung los!!!

Vielen Dank an alle!!!

Ooooooooooooh,

da ist mir noch was eingefallen.

Wenn ich den Löschvorgang abbreche, dann kommt die Meldung:
Zitat:
Die Aktion DoMenuItem wurde abgebrochen.
OK
Ist zwar nur zur Info, aber sieht trozdem nicht so schön aus.

Kann man da auch was machen???
Willi Wipp
Moderator


Verfasst am:
12. März 2008, 18:44
Rufname:
Wohnort: Raum Wiesbaden

Re: Auf Haupt- und Unterformular löschen (II) - Re: Auf Haupt- und Unterformular löschen (II)

Nach oben
       Version: Office 2003

@Zed2k,

bei dem $ (String) und dem % (Integer) handelt es sich um das jeweilige Typkennzeichen
fuer den entsprechenden Datentyp der Variable.
Ist Heute nicht mehr notwendig, mehr ein alte Angewohnheit aus Q-Basic- und PB-Basic-Zeiten.
Die Verwendung von Typkennzeichen ist manchmal noch notwendig, bei der Berechnung mit Konstanten,
um den entsprechenden Berechnungsraum zu erzwingen.
Habe ich mir inzwischen in Access zwar abgewoehnt, aber es handelte sich noch um ein altes Beispiel ;) Heute wohl eher so
Code:
Private Sub Form_BeforeDelConfirm(Cancel As Integer, Response As Integer)
    'Löschen wird auf jeden Fall durchgeführt (keine Anzeige der Abfrage!)
    'Die Entscheidung wird bereits in Form_Delete getroffen!
    Response = acDataErrContinue
End Sub

Private Sub Form_Delete(Cancel As Integer)
    Dim strText     As String
    Dim varAnswer   As Variant
   
    strText = "Sollen die Daten dieses Kunden gelöscht werden?" & vbCrLf & _
              vbCrLf & "Abbrechen des Löschvorganges mit [Nein]"
    varAnswer = MsgBox(strText, vbYesNo + vbQuestion, _
                       "Löschabfrage [Kundendaten]")
    If varAnswer <> vbYes Then Cancel = True
End Sub

Hi Gast4,

wenn Du uns noch mitteilen wuerdes wie genau Du das Loeschen ausfuehrst?

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
Gast4
Gast


Verfasst am:
12. März 2008, 21:42
Rufname:

AW: Auf Haupt- und Unterformular löschen - AW: Auf Haupt- und Unterformular löschen

Nach oben
       Version: Office 2003

Hi Willi Wipp

ich lösche über Beziehungen mit Löschweitergabe
Willi Wipp
Moderator


Verfasst am:
13. März 2008, 02:51
Rufname:
Wohnort: Raum Wiesbaden

Re: Auf Haupt- und Unterformular löschen (III) - Re: Auf Haupt- und Unterformular löschen (III)

Nach oben
       Version: Office 2003

Hi Gast4,

und sprichst Du dazu in die Maus: "Computer: Bitte DS loeschen"? Very Happy
Also wie genau loest Du das Loeschen des "Haupt"-DS aus?

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
Gast4
Gast


Verfasst am:
13. März 2008, 09:51
Rufname:

AW: Auf Haupt- und Unterformular löschen - AW: Auf Haupt- und Unterformular löschen

Nach oben
       Version: Office 2003

ich hab einen Button auf dem Hauptformular mit Befehlschaltflächen-Assistenten erstellt
Willi Wipp
Moderator


Verfasst am:
13. März 2008, 11:10
Rufname:
Wohnort: Raum Wiesbaden


Re: Auf Haupt- und Unterformular löschen (IV) - Re: Auf Haupt- und Unterformular löschen (IV)

Nach oben
       Version: Office 2003

Hi Gast4,

und was liegt fuer ein Code dahinter ....?
Code:
Private Sub btnLoescheDS_Click()
    On Error Resume Next
    DoCmd.RunCommand acCmdDeleteRecord
    If Err <> 0 And Err <> 2501 Then 'Kein Fehler oder Befehl abgebrochen
        MsgBox Err & ": " & Err.Description
    End If
    On Error GoTo 0
End Sub
Oder Du machst es ohne die Formular-Ereignisse auf die ganz harte Tour
Code:
Private Sub btnLoescheDS_Click()
    ' Eventuell ein eigener Loeschdialog mit If-Block
    With Me.RecordsetClone
        .Bookmark = Me.Bookmark
        .Delete
    End With
End Sub

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: Löschen von Datensätzen in mehreren Tabellen (Access 2000) 4 AndyW 3783 17. Feb 2006, 20:48
jens05 Löschen von Datensätzen in mehreren Tabellen (Access 2000)
Keine neuen Beiträge Access Tabellen & Abfragen: Tabellerstellungsabfrage will sich selbst löschen 2 Gast 599 03. Feb 2006, 17:29
Gast Tabellerstellungsabfrage will sich selbst löschen
Keine neuen Beiträge Access Tabellen & Abfragen: Letzten Buchstaben löschen 1 ssesche 1325 26. Nov 2005, 09:38
jens05 Letzten Buchstaben löschen
Keine neuen Beiträge Access Tabellen & Abfragen: Eine Spalte - ein Zeichen löschen 2 Gregor_Greg 3163 25. Nov 2005, 18:35
Gregor_Greg Eine Spalte - ein Zeichen löschen
Keine neuen Beiträge Access Tabellen & Abfragen: Daten löschen 3 shine05 718 27. Sep 2005, 08:49
stpimi Daten löschen
Keine neuen Beiträge Access Tabellen & Abfragen: doppelte Datensätze ausblenden aber nicht löschen 1 baumi-fdorf 1228 21. Sep 2005, 10:04
eddo51 doppelte Datensätze ausblenden aber nicht löschen
Keine neuen Beiträge Access Tabellen & Abfragen: Duplikate löschen 2 Katta 4696 06. Sep 2005, 12:16
Forley Duplikate löschen
Keine neuen Beiträge Access Tabellen & Abfragen: Führende Leerzeichen in Tabellen löschen 1 Marie_22 6098 19. Aug 2005, 11:19
Gast Führende Leerzeichen in Tabellen löschen
Keine neuen Beiträge Access Tabellen & Abfragen: Duplikate löschen? 2 famous72 1022 03. Aug 2005, 10:07
amq Duplikate löschen?
Keine neuen Beiträge Access Tabellen & Abfragen: Dublikate immer wieder aus Textdatei löschen 3 Smile 815 11. Mai 2005, 09:21
Willi Wipp Dublikate immer wieder aus Textdatei löschen
Keine neuen Beiträge Access Tabellen & Abfragen: Generierte Felder aus Unterformular auslesen 2 gott50000 831 03. März 2005, 13:45
gott50000 Generierte Felder aus Unterformular auslesen
Keine neuen Beiträge Access Tabellen & Abfragen: nur ersten DS aus Unterformular? 5 wagnerjury 525 09. Feb 2005, 17:21
lothi nur ersten DS aus Unterformular?
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Expression Web Forum