Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: derilzemer am März 31, 2017, 19:35:17

Titel: Fehlermeldung Methode oder Datenobjekt nicht gefunden - Office 2016 Problem?
Beitrag von: derilzemer am März 31, 2017, 19:35:17
Hallo,
wenn ich nach dem starten der DB (es wird frmLogin aufgerufen) den User mit Passwort eingebe und den cmdLogin klicke, wird ein Ereignis ausgelöst. Dann aber kommt "Fehler beim Kompilieren: Methode oder Datenobjekt nicht gefunden."
Es springt dann in den VBA Teil für das Formular, markiert Private Sub cmdLogin_Click() gelb und unterlegt dazu rs.FindFirst "UserID='" & Me.txtBenutzername & "'" nur den Passus .txtBenutzername blau (siehe Bild1)
Ein Problem ist, dass ich schon eine lange Zeit das Loginformular nicht mehr vorgeschalten habe. Der Fehler überrascht mich also, da es schon ging. Das blau unterlegte .txtBenutzername existiert als Textfeld, von daher verstehe ich aktuell nicht, warum er meckert. Ich habe vor kurzem auf Access 2016 umgestellt. Könnte das ein Grund sein? Wie kann ich da vorgehen, bzw.
Hier noch der VBA Teil zum frmLogin
Option Compare Database
Option Explicit

Private Sub cmdLogin_Click()
    Dim rs As Recordset
   
    Set rs = CurrentDb.OpenRecordset("tblBenutzer", dbOpenSnapshot, dbReadOnly)
   
    rs.FindFirst "UserID='" & Me.txtBenutzername & "'"
   
    If rs.NoMatch = True Then
        Me.lblFalscherBenutzer.Visible = True
        Me.txtBenutzername.SetFocus
        Exit Sub
    End If
    Me.lblFalscherBenutzer.Visible = False
   
    If rs!Passwort <> Me.txtPasswort Then
'   Um encrypt zu nutzen folgenden Code aktivieren
'   If rs!Passwort <> Encrypt(Me.txtPasswort) Then
        Me.lblFalschesPasswort.Visible = True
        Me.txtPasswort.SetFocus
        Exit Sub
    End If
    Me.lblFalschesPasswort.Visible = False
   
    If rs!BenutzerArtID_F = 1 Then
        Dim prop As Property
        On Error GoTo SetProperty
        Set prop = CurrentDb.CreateProperty("AllowBypassKey", dbBoolean, False)

        CurrentDb.Properties.Append prop

SetProperty:
        If MsgBox("Willst du wirklich den Bypass-Key aktivieren?", vbYesNo, "Allow Bypass") = vbYes Then
            CurrentDb.Properties("AllowBypassKey") = True
        Else
            CurrentDb.Properties("AllowBypassKey") = False
        End If

    End If

    DoCmd.OpenForm "frmMenueseite"
    DoCmd.Close acForm, "frmLogin"

End Sub


Vielen Danke vorab für eure Unterstützung
Gruß Andreas
Titel: Re: Fehlermeldung Methode oder Datenobjekt nicht gefunden - Office 2016 Problem?
Beitrag von: Lachtaube am März 31, 2017, 19:38:29
Dann wird wohl das Steuerelement oder Feld einen anderen Namen tragen. :)
Titel: Re: Fehlermeldung Methode oder Datenobjekt nicht gefunden - Office 2016 Problem?
Beitrag von: MzKlMu am März 31, 2017, 19:42:51
Hallo,
und das ist auch unlogisch:
Zitatrs.FindFirst "UserID='" & Me.txtBenutzername & "'"
Wieso wird die UserID mit dem Benutzernamen verglichen, das kann doch nicht stimmen. Außerdem ist eine ID meist eine Zahl und dann sind die Hochkomma falsch.
Titel: Re: Fehlermeldung Methode oder Datenobjekt nicht gefunden - Office 2016 Problem?
Beitrag von: derilzemer am März 31, 2017, 20:12:12
Hallo Klaus und Lachtaube,

UserID ist in der Tabelle der Benutzername. Im IT Umfeld sagt man auch UserID dazu. Es ist also keine Zahl (siehe Bild1)
Hochkomma falsch?
@Lachtaube
Das Steuerelement oder Feld hat genau den Namen, der angemeckert wird, hatte ich ja schon geschrieben. (siehe Bild2)

Gruß Andreas
Titel: Re: Fehlermeldung Methode oder Datenobjekt nicht gefunden - Office 2016 Problem?
Beitrag von: DF6GL am März 31, 2017, 20:36:29
Hallo,


Dim rs As DAO.Recordset


und prüfen, ob die passende DAO-Library unter Verweise angehakt ist.
Titel: Re: Fehlermeldung Methode oder Datenobjekt nicht gefunden - Office 2016 Problem?
Beitrag von: derilzemer am März 31, 2017, 20:39:39
Hallo Franz,

das was. Hmmm, dann muss das aber von Umstieg auf 2016 gewesen sein, oder? Ich habe mal Versionen in der DB zurück geschaut, den Zusatz DAO hatte ich auch vor dem Umstieg NICHT drin. Vielen Dank.

Gruß Andreas
Titel: Re: Fehlermeldung Methode oder Datenobjekt nicht gefunden - Office 2016 Problem?
Beitrag von: Beaker s.a. am März 31, 2017, 20:49:12
Hallo Andreas,
Zitatden Zusatz DAO hatte ich auch vor dem Umstieg NICHT drin
Ist aber sicherer.
Schau mal in die Verweise, ob da eine Referenz auf ADO drin ist. Falls
ja, nimm die raus. Gebraucht wird die ja bei dir nicht, sonst hätte es wohl
schon eher "gekracht".
gruss ekkehard
Titel: Re: Fehlermeldung Methode oder Datenobjekt nicht gefunden - Office 2016 Problem?
Beitrag von: derilzemer am März 31, 2017, 21:42:05
Hi, 
ADO = MS Office 16.0 Access database engine Object Library
DAO = MS ActiveX Data Objects 6.1 Library,

ist beides noch aktiv :(. Hab jetzt mal ADO deaktiviert, dann hat es allerdings gleich beim compile gerappelt, da ich noch 2 VBA Dinge habe, die das wohl benötigen. Problem, wenn beides in use ist?

Gruß Andreas
Titel: Re: Fehlermeldung Methode oder Datenobjekt nicht gefunden - Office 2016 Problem?
Beitrag von: Beaker s.a. am März 31, 2017, 22:50:21
Hallo Andreas,
Nein, anders rum; - DAO ist die MS Office 16.0 Access database engine Object Library.
Wenn du beides brauchst, musst du das verwendete Objekt explizit ansprechen.
Dim dbe As DAO.Database
gruss ekkeard