Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
DAO Recordset - Kein aktueller Datensatz
zurück: Fehlermeldung beim Öffnen eines Formulars per VBA weiter: LastUpdated - Eigenschaften einer Datei abrufen Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Kl@vier
Excel-Kenner, etwas VBA


Verfasst am:
02. März 2007, 14:58
Rufname:
Wohnort: Schärding (A)

DAO Recordset - Kein aktueller Datensatz - DAO Recordset - Kein aktueller Datensatz

Nach oben
       Version: Office 2k (2000)

Hallo Profis,

ich benötige Unterstützung zu einer Fehlermeldung. Ich habe für meine kleine Datenbankanwendung ein Login-Forular erstellt. In Anlehnung eines Codes, den ich von diesem Forum downloaden konnte, änderte ich diesen auf meine Situation ab.

Beim Austesten jedoch bekomme ich die Fehlermeldung:
Zitat:
Laufzeitfehler 3021. Kein aktueller Datensatz.

Code:
Private Sub txtWiederNeuerCode_AfterUpdate()
    Dim rs As DAO.Recordset
   
    If IsNull(Me!AlterCode) Or IsNull(Me!txtNeuerCode) Or _
       (Nz(Me!txtNeuerCode) <> Nz(Me!txtWiederNeuerCode)) Or _
       Len(Me!txtNeuerCode) < 4 Then
        MsgBox "Das alte Passwort ist nicht angegeben oder die neuen PW " & _
               "stimmen nicht überein " & vbNewLine & _
               "oder das alte Passwort ist nicht mind. 4 Zeichen lang.", _
               vbCritical, "ACHTUNG!"
    End If
    Set rs = DBEngine(0)(0).OpenRecordset( _
        "SELECT * " & _
          "FROM DISPONENT " & _
         "WHERE NAME ='" & Me!cmbDisponent & "'")
    If rs!pw <> Me!txtBisherCode Then
        MsgBox "Das alte Passwort ist nicht korrekt!", vbCritical, _
               "Passwort verweigert!"
      Else
        rs.Edit
        rs!pw = Me!txtNeuerCode
        rs.Update
        MsgBox "Das Passwort wurde geändert", vbInformation, _
               "Passwortänderung"
        Me!txtNeuerCode = Null
        Me!txtWiederNeuerCode = Null
        Me!txtBisherCode = Null
    End If
    rs.Close
    Set rs = Nothing
End Sub
Wahrscheinlich kann ich das Recordset nicht ansprechen. Meine Variable für Passwort = PW (groß geschrieben) und VBA bessert meine kleine Rechtschreibung nicht aus.

Bei
Code:
    If rs!pw <> Me!txtBisherCode Then
bleibt die Ausführung stehen und obige Fehlermeldung kommt.
Wo kann der Fehler liegen?

_________________
Gruß - Gerhard

Der Lohn der Geduld ist die Geduld - Rückmeldung finde ich prima!
stpimi
Moderator Access


Verfasst am:
02. März 2007, 15:39
Rufname:
Wohnort: Graz


AW: DAO Recordset - Kein aktueller Datensatz - AW: DAO Recordset - Kein aktueller Datensatz

Nach oben
       Version: Office 2k (2000)

Servus Gerhard!

Vermutlich enthält der Recordset keine Datensätze. Es ist daher (am besten in einer Abfrage/SQL-Ansicht) das SQL-Statement zu prüfen.
Bist Du sicher, dass cmdDisponent den Namen und nicht einen numerischen Schlüssel zurückgibt?

_________________
Lg, Michael

Dein Feedback hilft auch anderen - vergiß es nicht!
Willi Wipp
Moderator


Verfasst am:
02. März 2007, 16:02
Rufname:
Wohnort: Raum Wiesbaden

Re: DAO Recordset - Kein aktueller Datensatz - Re: DAO Recordset - Kein aktueller Datensatz

Nach oben
       Version: Office 2k (2000)

Hi Kl@vier,

Wenn die If-Pruefung erfuellt ist, sollte auch der Rest wohl auch nicht mehr ausgefuehrt werden Wink
Code:
Private Sub txtWiederNeuerCode_AfterUpdate()
    Dim rs As DAO.Recordset
   
    If IsNull(Me!AlterCode) Or IsNull(Me!txtNeuerCode) Or _
       (Nz(Me!txtNeuerCode) <> Nz(Me!txtWiederNeuerCode)) Or _
       Len(Me!txtNeuerCode) < 4 Then
        MsgBox "Das alte Passwort ist nicht angegeben oder die neuen PW " & _
               "stimmen nicht überein " & vbNewLine & _
               "oder das alte Passwort ist nicht mind. 4 Zeichen lang.", _
               vbCritical, "ACHTUNG!"
      Else
        Set rs = DBEngine(0)(0).OpenRecordset( _
            "SELECT * " & _
              "FROM DISPONENT " & _
             "WHERE NAME ='" & Me!cmbDisponent & "'")
        If rs.BOF And rs.EOF Then
            MsgBox "Der Benutzer '" & Me!cmbDisponent & "' existiert nicht"
          Else
            rs.MoveFirst
            If rs!pw <> Me!txtBisherCode Then
                MsgBox "Das alte Passwort ist nicht korrekt!", vbCritical, _
                       "Passwort verweigert!"
              Else
                rs.Edit
                rs!pw = Me!txtNeuerCode
                rs.Update
                MsgBox "Das Passwort wurde geändert", vbInformation, _
                       "Passwortänderung"
                Me!txtNeuerCode = Null
                Me!txtWiederNeuerCode = Null
                Me!txtBisherCode = Null
            End If
        End If
        rs.Close
        Set rs = Nothing
    End If
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)
Kl@vier
Excel-Kenner, etwas VBA


Verfasst am:
02. März 2007, 16:48
Rufname:
Wohnort: Schärding (A)

AW: DAO Recordset - Kein aktueller Datensatz - AW: DAO Recordset - Kein aktueller Datensatz

Nach oben
       Version: Office 2k (2000)

Hallo Michael, Hallo Willi,

herzlichen Dank schon mal für eure Beiträge. Mit dem Code von Willi konnte ich gleich mal herausfinden, dass es ein Problem mit der Select Anweisung gibt.

Wie Michael vermutet hat, kommt die Meldung "Benutzer 1 existiert nicht".
Also ein numerischer Wert hinter der Variable "cbmDisponent"

Jetzt habe ich mal mit F8 den Code ausgetestet und herausgefunden, dass für die Variable "NAME" in der Selectanweisung der Wert "LoginDisponenten" (mein Formularname auf dem die Steuerelemente platziert sind heißt so) ausgewiesen wird.

Für die Variable "cbmDisponent" steht der numerische Wert "1". Dass das dann nicht funktionieren kann, leuchtet mir als Anfänger auch ein.

Doch wie geht es jetzt weiter?

Ist das Wort "NAME" ein geschütztes Wort in einer Select-Anweisung und kommt daher die Anweisung durcheinander? In der Tabelle Disponent gibt es die Spalte Name.
Und wie kann ich die zweite Spalte von der ComboBox ansprechen? Eine Klammer mit einer 1 (cbmDisponent(1)) drin bringt einen weiteren Fehler --> Let Prozedur der Eigenschaft ist nicht definiert ...

Über die ID-Nummer der Tabelle Disponent und die ID-Nummer der cbmDisponent kann ich nicht zusammenschlüsseln. Die sind leider nicht ident.

Was könnte ich eurer Meinung nach machen?
Nachtrag: Kl@vier am 02. März 2007 um 16:01 hat folgendes geschrieben:
Nachtrag für Willi und Michael

Muss jetzt leider weg und kann mich wahrscheinlich erst wieder am Montag im Forum melden. Bitte um Verständnis!

_________________
Gruß - Gerhard

Der Lohn der Geduld ist die Geduld - Rückmeldung finde ich prima!
Willi Wipp
Moderator


Verfasst am:
02. März 2007, 17:12
Rufname:
Wohnort: Raum Wiesbaden

Re: DAO Recordset - Kein aktueller Datensatz - Re: DAO Recordset - Kein aktueller Datensatz

Nach oben
       Version: Office 2k (2000)

Hi Kl@vier,

dafuer braeuchten wir dann (am Montag Wink) die Datensatzherkunft (RecordSoure) des Kombinationsfeldes.
Nach Moeglichkeit die SQL-Ansicht und wenn die Feldnamen nicht selbstreden sind,
dann auch den Felddatentyp und Inhalt.
Und die Info welche Spalte wird angezeigt und welche ist die gebundene Spalte?

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

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


Verfasst am:
02. März 2007, 17:55
Rufname:

AW: DAO Recordset - Kein aktueller Datensatz - AW: DAO Recordset - Kein aktueller Datensatz

Nach oben
       Version: Office 2k (2000)

Hi,
Pruefe, ob
Code:
rs.EOF = True
Falls ja, dann ist kein Datensatz vorhanden. Die einfachste Moeglichkeit, um eine NullPointer-Exception zu umgehen.

Marcus
Willi Wipp
Moderator


Verfasst am:
03. März 2007, 00:50
Rufname:
Wohnort: Raum Wiesbaden

Re: DAO Recordset - Kein aktueller Datensatz (III) - Re: DAO Recordset - Kein aktueller Datensatz (III)

Nach oben
       Version: Office 2k (2000)

@dermarcusd,
Willi Wipp - 02. März 2007, 15:02 hat folgendes geschrieben:
Code:
    '...
        If rs.BOF And rs.EOF Then
    '...
Wink
_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
Kl@vier
Excel-Kenner, etwas VBA


Verfasst am:
05. März 2007, 12:07
Rufname:
Wohnort: Schärding (A)


AW: DAO Recordset - Kein aktueller Datensatz - AW: DAO Recordset - Kein aktueller Datensatz

Nach oben
       Version: Office 2k (2000)

Kl@vier am 05. März 2007 um 07:58 hat folgendes geschrieben:
Hallo Willi, hallo Markus,

herzlichen Dank, dass ihr euch um mein Problem annehmt. Also hier mal zu dem Kombinationsfeld "Disponent" die Infos:
    Name: cmbDisponent
    Datensatzherkunft: SELECT Disponent.ID, Disponent.Name, Disponent.PW FROM Disponent;
    (Aus Tabelle Disponent: ID = Autowert - Long Integer, Name = Text, PW = Text)
    Spaltenanzahl: 3
    Spaltenbreiten: 0;3;0
    Gebundene Spalte: 1
Die Informationen stammen vom Eigenschaftenfenster des Kombinationsfeldes bzw. der Tabelle "Disponent".

Nachtrag:
Wenn ich im Eigenschaftenfenster des Kombinationsfeldes bei der Selectanweisung auf die 3 Punkte klicke, komme ich zum Abfragegenerator. Dort bekomme ich schon die Werte aus der Tabelle "Disponent" angezeigt, wenn ich die Abfrage ausführe.

Hallo Willi, hallo Markus,

ich habe mit dem Code noch experimentiert und habe eine Zeile geändert.
Code:
             "WHERE NAME ='" & Me!cmbDisponent.Column(1) & "'")
Damit spreche ich die zweite Spalte des Kombinationsfeldes direkt an, in dem der Name des Disponenten steht. Jetzt funzt es! Surprised

Ohne eure Lösungsansätze wäre ich ewig nicht weitergekommen! Herzlichen Dank nochmals!

_________________
Gruß - Gerhard

Der Lohn der Geduld ist die Geduld - Rückmeldung finde ich prima!
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: Wie kann ich Daten laden vom nächsten recordset ohne 1 MatthiasDD 696 03. Nov 2005, 10:21
rita2008 Wie kann ich Daten laden vom nächsten recordset ohne
Keine neuen Beiträge Access Tabellen & Abfragen: Problem mit Recordset 2 Bomber35 675 04. Okt 2005, 13:35
Bomber35 Problem mit Recordset
Keine neuen Beiträge Access Tabellen & Abfragen: Neuer Datensatz in Access 6 Heinz-Erich 1220 02. Okt 2005, 20:09
Gast Neuer Datensatz in Access
Keine neuen Beiträge Access Tabellen & Abfragen: unlöschbaren Datensatz erstellen 1 Vincent_Vega 899 15. Aug 2005, 21:45
stpimi unlöschbaren Datensatz erstellen
Keine neuen Beiträge Access Tabellen & Abfragen: Datensatz über Formular suchen 3 Sandnet 2166 10. Jun 2005, 10:52
Dalmatinchen Datensatz über Formular suchen
Keine neuen Beiträge Access Tabellen & Abfragen: Recordset für mehrere Tabellen? 7 Thomas83 1528 05. Jun 2005, 16:41
jens05 Recordset für mehrere Tabellen?
Keine neuen Beiträge Access Tabellen & Abfragen: Reduzierung mehrerer Datensätze auf einen Datensatz 2 Pulldown 819 03. Jun 2005, 09:32
Pulldown Reduzierung mehrerer Datensätze auf einen Datensatz
Keine neuen Beiträge Access Tabellen & Abfragen: Datensatz automatisch kopieren??? 0 Edelschnitt 701 11. Mai 2005, 19:41
Edelschnitt Datensatz automatisch kopieren???
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: Tabellen zugriff über DAO 2 f_mal 817 16. Sep 2004, 08:31
f_mal Tabellen zugriff über DAO
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Excel Tipps