Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Datensatz aus EndlosFormular löschen
Gehe zu Seite Zurück  1, 2
zurück: Listenfeld zu TExtfeld weiter: Login für verschiedene User 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
leenas
Einsteiger, VBA-Learner


Verfasst am:
30. Okt 2008, 12:28
Rufname:

AW: Datensatz aus EndlosFormular löschen - AW: Datensatz aus EndlosFormular löschen

Nach oben
       Version: Office 2003

Hallo Willi,

meine löschen Funktion sieht folgendermaßen aus:
Code:
    Dim rs As DAO.Recordset
    Dim cid As String
    Dim userid As String
    Dim db As DAO.Database
    Dim deletesql As String
    Dim pro As String, fromUserValue As String
   
    'Me!NameContact.SetFocus
    If MsgBox("Want you really delete this record?", vbYesNo) = vbYes Then
        If Me.Parent!Bezeichnungsfeld0.Caption = "KeyUser" Or _
           Me.Parent!Bezeichnungsfeld0.Caption = "Admin" Then
            With Forms![_KeyUser_AllResults_Testperson]
                !DeleteId = Me![Contact ID]
                Set db = CurrentDb()
                Set rs = Me.RecordsetClone
                If Not IsNull(![_Sub_AllResults]![Contact ID]) Then
                    cid = ![_Sub_AllResults]![Contact ID]
                End If
                userid = ![userid]
                rs.MoveFirst
                If Me.Parent!Bezeichnungsfeld0.Caption = "Admin" Then
                    pro = !ProjectName.Caption
                    fromUserValue = !FromUser
                    Do
                        If rs.Fields("[Contact ID]") = cid Then
                            deletesql = DeleteContactForUser(cid, _
                                                             fromUserValue)
                            CurrentDb.Execute deletesql, dbFailOnError
                        End If
                        rs.MoveNext
                    Loop Until rs.EOF = True
                  Else
                    Do
                        If rs.Fields("[Contact ID]") = cid Then
                            deletesql = DeleteContactForUser(cid, _
                                                             fromUserValue)
                            CurrentDb.Execute deletesql, dbFailOnError
                        End If
                        rs.MoveNext
                    Loop Until rs.EOF = True
                End If
                Me.Requery
                Set rs = Me.RecordsetClone
                !Count = rs.RecordCount
            End With
            With Forms![_Standarduser_AllResults_Testperson]
                If rs.RecordCount > 0 Then
                    !Count = rs.RecordCount
                  Else
                    ![_Sub_AllResults].Form.Visible = False
                    !Message.Visible = True
                End If
            End With
          ElseIf Me.Parent!Bezeichnungsfeld0.Caption = "Standarduser" Then
            With Forms![_Standarduser_AllResults_Testperson]
                ![DeleteId] = Me![Contact ID]
                Set db = CurrentDb()
                Set rs = Me.RecordsetClone
                If Not IsNull(![_Sub_AllResults]![Contact ID]) Then
                    cid = ![_Sub_AllResults]![Contact ID]
                End If
                userid = ![userid]
                rs.MoveFirst
                Do
                    If rs.Fields("[Contact ID]") = cid Then
                        deletesql = DeleteContactForUser(cid, fromUserValue)
                        CurrentDb.Execute deletesql, dbFailOnError
                    End If
                    rs.MoveNext
                Loop Until rs.EOF = True
                Me.Requery
                Set rs = Me.RecordsetClone
                If rs.RecordCount > 0 Then
                    !Count = rs.RecordCount
                  Else
                    ![_Sub_AllResults].Form.Visible = False
                    !Message.Visible = True
                End If
            End With
        End If
    End If
End Sub
wobei die Methode DeleteContactForUser(cid, fromUserValue). So aus sieht:
Code:
Public Function DeleteContactForUser(ByVal cid As String, _
                                     ByVal iden As String) As String
    Dim userid As String
   
    userid = getUserIdForIdentifier(iden)
    SQL = "DELETE * " & _
            "FROM 0000_ResultsTestpersons_Standarduser " & _
           "WHERE ContactID=" & cid & " " & _
             "AND UserId=" & userid & ";"
    DeleteContactForUser = SQL
End Function
Willi Wipp
Moderator


Verfasst am:
30. Okt 2008, 16:08
Rufname:
Wohnort: Raum Wiesbaden


Re: Datensatz aus EndlosFormular löschen (V) - Re: Datensatz aus EndlosFormular löschen (V)

Nach oben
       Version: Office 2003

Hi leenas,

und Du wunderst Dich wirklich das nach dem Requery der 1. DS aktiv ist?
Bevor Du die Aktualisierung durchfuehrst kannst Du pruefen ob noch ein DS vorher vorhanden ist,
wenn Nein, dann kannst Du auch noch mal nach Hinten schaun.
Dann holst Du dir den entsprechenden Primaerschluessel z.B. aus dem RecordsetClone,
speicherst ihn zwischen, aktualisierst (Requery) und suchst (FindFirst) den DS wieder.

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
leenas
Einsteiger, VBA-Learner


Verfasst am:
03. Nov 2008, 10:37
Rufname:

AW: Datensatz aus EndlosFormular löschen - AW: Datensatz aus EndlosFormular löschen

Nach oben
       Version: Office 2003

Und wie mache ich das konkret?

Denn diese Abfrage hier funktioniert schon mal nicht:
Code:
    If rs1.MoveNext = True Then
        cid2 = rs1.Fields("[Contact ID]")
    End If
Embarassed
Willi Wipp
Moderator


Verfasst am:
07. Nov 2008, 04:30
Rufname:
Wohnort: Raum Wiesbaden

Re: Datensatz aus EndlosFormular löschen (VI) - Re: Datensatz aus EndlosFormular löschen (VI)

Nach oben
       Version: Office 2003

Hi leenas,

leider durchschaue ich noch nicht so ganz was (und warum) Du da machst?
Warum wird fromUserValue nur ein Wert zugewiesen wenn es der Admin ist,
die Variable aber auch sonst, dann halt leer, verwendet?
Was willst Du mit den Variablen pro und userid (auch Stuerelementname!) anfangen?
Warum durchlaeufst Du das Recordset, wenn Du dann doch eine Loeschabfrage ausfuehrst?
Warum der mindestens "annaehernd" gleiche Code fuer unterschiedliche Anwender?
Wuerde es nicht ausreichen eine Prozedur zu entwickeln und dieser das entsprechende Form-Objekt zu uebergeben?

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

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


Verfasst am:
06. Mai 2010, 13:23
Rufname:


AW: Datensatz aus EndlosFormular löschen - AW: Datensatz aus EndlosFormular löschen

Nach oben
       Version: Office 2003

Zitat:
Hallo KlausMZ,

sorry das ich mich erst jetzt melde.

Den oben gepostet code:
Code:
    DoCmd.SetWarnings False 'Warnmeldung aus
    DoCmd.RunCommand acCmdDeleteRecord
    DoCmd.SetWarnings True 'Warnmeldung ein

hatte ich bereits angewendet.
Er gibt nur einen Laufzeitfehler:
Zitat:
Laufzeitfehler '2046':
Der Befehl oder die Aktion 'DatensatzLöschen' steht momentan nicht zur Verfügung.

Woher kann diese Fehlermeldung kommen?

Feedback ohne vorherige Frage, denn ich habs selber lösen können:
Hatte exakt das selbe Problem. Ich habe hier im Forum und sonstwo nix passendes gefunden.
Habe einen Button im Endlosformular, der mir den Datensatz löschen sollte, bekam aber immer nur die Fehlermeldung wie oben: "Löschen nicht momentan möglich".
Ursache: ich habe das Formular gegen Eingabe und LÖSCHEN geschützt, so daß nur über einen Buttondruck Datensätze ergänzt oder gelöscht werden können. Die Erleuchtung kam mir, als ich beim Datensatz einfügen auch den Schreibschutz temporär aufheben musste - ...so auch beim Löschen:
Code:
    Me.AllowDeletions = True
    DoCmd.SetWarnings False 'Warnmeldung aus
    DoCmd.RunCommand acCmdDeleteRecord
    DoCmd.SetWarnings True 'Warnmeldung ein
    Me.AllowDeletions = False

Rolling Eyes
OBWOHL sich der Löschschutz ja eigentlich auf das Formular bezieht und der Datensatz in der Tabelle verschwinden soll, verhindert der Löschschutz des Formulars auch den löschenden Zugriff auf die Tabelle. Idea

Ciao
Lutz
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Gehe zu Seite Zurück  1, 2
Diese Seite Freunden empfehlen

Seite 2 von 2
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: duplikatabfrage, löschen der doppelten datensätze.... 1 nebbio 1489 30. Jan 2005, 16:58
hommy duplikatabfrage, löschen der doppelten datensätze....
Keine neuen Beiträge Access Tabellen & Abfragen: Durch Abfrage die 2 letzten Zeichen löschen? 2 Maik_er 1325 17. Jan 2005, 14:48
Maik_er Durch Abfrage die 2 letzten Zeichen löschen?
Keine neuen Beiträge Access Tabellen & Abfragen: Aus 1 Datensatz mit 10 Infos mache 10 Datensätze à 1 Info 2 Steve 914 14. Jan 2005, 00:43
Steve Aus 1 Datensatz mit 10 Infos mache 10 Datensätze à 1 Info
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage soll nur jeweils ersten Datensatz liefern (Group By? 2 MichaelN 2552 28. Dez 2004, 15:06
MichaelN Abfrage soll nur jeweils ersten Datensatz liefern (Group By?
Keine neuen Beiträge Access Tabellen & Abfragen: Bei der Aktualisierung eines Tabellenwertes neuen Datensatz 6 zheng 810 07. Dez 2004, 22:35
zheng Bei der Aktualisierung eines Tabellenwertes neuen Datensatz
Keine neuen Beiträge Access Tabellen & Abfragen: Einmalige Datensätze löschen 18 frankkugler 1614 18. Okt 2004, 15:33
frankkugler Einmalige Datensätze löschen
Keine neuen Beiträge Access Tabellen & Abfragen: Tabellenbeziehungen löschen ? 2 Gast 612 15. Okt 2004, 11:42
Gast Tabellenbeziehungen löschen ?
Keine neuen Beiträge Access Tabellen & Abfragen: leere Datensätze löschen 3 umbroboy 2666 07. Okt 2004, 16:51
Skogafoss leere Datensätze löschen
Keine neuen Beiträge Access Tabellen & Abfragen: Tabelleninhalt löschen 2 Tobi 988 23. Sep 2004, 12:14
Tobi Tabelleninhalt löschen
Keine neuen Beiträge Access Tabellen & Abfragen: CurrentUser() in neuen Datensatz eintragen 2 mafke 924 16. Aug 2004, 15:49
mafke CurrentUser() in neuen Datensatz eintragen
Keine neuen Beiträge Access Tabellen & Abfragen: Formular aus Endlosformular öffnen ? 10 G-Markus 1619 20. Jul 2004, 15:38
Gast Formular aus Endlosformular öffnen ?
Keine neuen Beiträge Access Tabellen & Abfragen: in einem Textfeld letztes Zeichen löschen? 2 mokona.s 1923 19. Jul 2004, 13:24
mokona.s in einem Textfeld letztes Zeichen löschen?
 

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