Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: lukyluke68 am November 24, 2013, 15:07:14

Titel: Kennwort aus einer tab abrufen
Beitrag von: lukyluke68 am November 24, 2013, 15:07:14
Hallo,

ich möchte das Kennwort zum Öffnen eines Formulares aus einer Tabelle abrufen. Die Tabelle hat den Namen Kennwort.tab. Bei ID1 steht im Feldnamen Kennwort der Text zange.

Bis jetzt habe ich es so geregelt. Wenn ich aber das Kennwort ändern möchte, muss ich den Code ändern. Das möchte ich vermeiden.


Private Sub Kennworteingabe_AfterUpdate()
On Error GoTo Err_personal_werkstatt_Click

MeinKennwort = Me.Kennworteingabe

    If MeinKennwort = "zange" Then
        DoCmd.OpenForm "Personal_form"
    Else
        MsgBox "Das Kennwort ist leider falsch."
    End If

Exit_personal_werkstatt_Click:
    Exit Sub

Err_personal_werkstatt_Click:
    MsgBox Err.Description
    Resume Exit_personal_werkstatt_Click
End Sub


Kann mir jemand behilflich sein?

gruß Ludwig
Titel: Re: Kennwort aus einer tab abrufen
Beitrag von: bahasu am November 24, 2013, 15:41:49
Hi Ludwig,

dieses Thema kommt mir bekannt vor.  ;D

Gibt es in der Tabelle nur ein Kennwort?
Vermutlich nicht.

Gibt es es im Formular eine Eingabe, wer sich anmeldet?
Hoffentlich ja.

Aus einer Tabelle ist ein Inhalt erreichbar mit:

Dim Gesuchtes_Kennwort as String

Gesuchtes_Kennwort = dlookup("Name des Tabellenfeldes, das das Kennwort enthält", "Name der Tabelle mit den Kennwörtern", "FeldName_des_Benutzers_in_der_Tabelle = '" & Me.Name_vom_Steuerelement_im_Formular_das_zur_Eingabe_Benutzers_dient" & "'")

Harald

Titel: Re: Kennwort aus einer tab abrufen
Beitrag von: lukyluke68 am November 24, 2013, 15:50:33
Hallo Harald,

ja in der Tabelle Kennwort, steht unter ID2 ein anderes Kennwort. ID1 Kennwort zange ist für das Öffnen des Formulares Personal gedacht.

In dem Formular zur Kennworteingabe zum Öffnen des Formulares Personal, habe ich nur ein Textfeld zur Kennworteingabe. Ein Kombifeld zum auswählen einer Person, habe ich nicht.

Wohin soll ich deinen Vorschalg in meinen Code positionieren?

gruß Ludwig
Titel: Re: Kennwort aus einer tab abrufen
Beitrag von: bahasu am November 24, 2013, 16:04:11
Hi,

nach meinem Verständnis war das Kennwort abhängigi von dem Benutzer.

So wie ich Dich verstanden habe, ist für jedes Formular (bislang zwei) ein anderes Kennwort zugeordnet.

Private Sub Kennworteingabe_AfterUpdate()
  Dim Gesuchtes_Kennwort as String


On Error GoTo Err_personal_werkstatt_Click

MeinKennwort = Me.Kennworteingabe

Gesuchtes_Kennwort = nz(dlookup("Kennwort", "[Kennwort.tab]", "bitte anpassen ID bin mir aber dessen unsicher (siehe unten) = '" & Me.Name" & "'"),"")

   if Gesuchtes_Kennwort = "" then
      msgbox "Kein Kennwort gefunden"

  else
      If MeinKennwort = Gesuchtes_Kennwort Then
          DoCmd.OpenForm "Personal_form"
      Else
         MsgBox "Das Kennwort ist leider falsch."
      End If
 end if

Exit_personal_werkstatt_Click:
   Exit Sub

Err_personal_werkstatt_Click:
   MsgBox Err.Description
   Resume Exit_personal_werkstatt_Click
End Sub


Ein Tabellenname mit "." ist suboptimal.


Mit ID1 und ID2 komme ich jetzt nicht zurecht. Eine Bezeichnung wie Formularname wäre für mich verständlicher.

Harald
Titel: Re: Kennwort aus einer tab abrufen
Beitrag von: lukyluke68 am November 24, 2013, 16:18:40
Hallo Harald,

ich habe jetzt mal aus der Tabelle Kennwort, das zweite Kennwort entfernt. Also liegt nur auf ID1 das Kennwort zange[/b.

Leider hängt es noch.

MeinKennwort = Me.Kennworteingabe

Gesuchtes_Kennwort = nz(dlookup("Kennwort", "[Kennwort_tab]", "Personal_form= '" & Me.Name" & "'"),"")
Titel: Re: Kennwort aus einer tab abrufen
Beitrag von: bahasu am November 24, 2013, 18:14:12
Hi Ludwig,

Zitat von: lukyluke68 am November 24, 2013, 16:18:40
ich habe jetzt mal aus der Tabelle Kennwort, das zweite Kennwort entfernt. Also liegt nur auf ID1 das Kennwort.

Leider hängt es noch.


Gesuchtes_Kennwort = nz(dlookup("Kennwort", "[Kennwort_tab]", "Personal_form= '" & Me.Name" & "'"),"")

Definiere "hängt noch": Gibt es Fehler? Werden keine Daten gefunden?

Ist "Personal_form"  der Name des Feldes, in dem der Name vom Formular gespeichert ist?
Ist "[Kennwort_tab]" die jetzt korrigierte Fassung, in der früher ein "." verwendet wurde?

Weiterhin ist mir id1 unklar. Ist das ein autowert-Feld oder ein Fremdkey-Feld?

Harald
Titel: Re: Kennwort aus einer tab abrufen
Beitrag von: lukyluke68 am November 24, 2013, 20:47:29
Hallo Harald,

Kennwort_tab ist der richtige Name der Tabelle in dem unter Kennwort_ID (AutoWert) das Kennwort   zange liegt.
Personal_Form ist der Name des Formulares das sich nach Eingabe des Kennwortes öffnen soll.
Titel: Re: Kennwort aus einer tab abrufen
Beitrag von: bahasu am November 24, 2013, 22:06:04
Hi Ludwig,

ok meine Annahme zu dem Ablauf war falsch.
Probier mal:

Gesuchtes_Kennwort = nz(dlookup("Kennwort", "[Kennwort_tab]", "Name vom Feld in dem der Name vom aufzurufenden Formular steht = 'Personal_Form'"),"")

Sorry, aber vielleicht verstehe ich heute nur Bahnhof. Der letzten Antwort entnehme ich, dass das Feld, in dem das Kennwort liegt, den Namen "Kennwort_id" und vom Typ "autowert" ist und als Inhalt "zange" hat. Bei der Kombination von "autowert" und "zange" komme ich ins Grübeln.
Bitte den Teil mit "Kennwort" der Realität anpassen und das gleiche gilt für "Name vom Feld in dem der Name vom aufzurufenden Formular steht

Harald

Titel: Re: Kennwort aus einer tab abrufen
Beitrag von: lukyluke68 am November 25, 2013, 11:06:27
Hallo Harald,

im Anhang eine kleine Datei
Titel: Re: Kennwort aus einer tab abrufen
Beitrag von: bahasu am November 25, 2013, 12:21:19
Hi Ludwig,

anbei die angepasste db:
- Tabellen-Struktur erweitert um den Namen des aufzurufenden Formulars
- Ereignis "Nach Aktualisierung" vereinfacht.

Harald
Titel: Re: Kennwort aus einer tab abrufen
Beitrag von: lukyluke68 am November 25, 2013, 15:54:53
Hallo Harald,

danke für deine Hilfe. Genau so soll es sein.  Tolle Hilfe - Tolles Forum :)

gruß Ludwig
Titel: Re: Kennwort aus einer tab abrufen
Beitrag von: lukyluke68 am Dezember 04, 2013, 11:12:44
Hallo,

ich habe meinen Beitrag nochmals geöffnet.

Ich möchte dasselbe Formular zur Eingabe des Kennwortes nutzen zum öffnen eines anderen Berichtes. Also in VBA nur eine Erweiterung der Abfrage. Ich weis nicht wie ich das umschreiben soll.

Hier das aktuelle Bsp.

Private Sub Kennworteingabe_AfterUpdate()
    On Error GoTo Err_personal_werkstatt_Click

    If Me.Kennworteingabe = Nz(DLookup("Kennwort", "[Kennwort_tab]", "FormularName = 'Personal_Form'"), "") Then
        DoCmd.OpenForm "Personal_form"
   
    Else
        MsgBox "Das Kennwort ist leider falsch."
    End If

Exit_personal_werkstatt_Click:
    Exit Sub

Err_personal_werkstatt_Click:
    MsgBox Err.Description
    Resume Exit_personal_werkstatt_Click
End Sub


Und hier die Erweiterung:
Me.Kennworteingabe = Nz(DLookup("Kennwort", "[Kennwort_tab]", "FormularName = 'Meister_form'"), "") Then
        DoCmd.OpenForm "Meister_form"

Bin für jede Hilfe dankbar.

Ich möchte dieses kleine Problem mit nur einem Eingabeformular lösen, sonst müsste ich nochmals ein Formular erstellen.
Titel: Re: Kennwort aus einer tab abrufen
Beitrag von: DF6GL am Dezember 04, 2013, 11:41:25
Hallo,

vielleicht so:

Private Sub Kennworteingabe_AfterUpdate()
    On Error GoTo Err_personal_werkstatt_Click

    If Me!Kennworteingabe = Nz(DLookup("Kennwort", "[Kennwort_tab]", "FormularName = 'Personal_Form'"), "") Then
        DoCmd.OpenForm "Personal_form"
   
    ElseIf  Me!Kennworteingabe = Nz(DLookup("Kennwort", "[Kennwort_tab]", "FormularName = 'Meister_form'"), "") Then
        DoCmd.OpenForm "Meister_form"

    Else
        MsgBox "Das Kennwort ist leider falsch."
    End If


Exit_personal_werkstatt_Click:
    Exit Sub

Err_personal_werkstatt_Click:
    MsgBox Err.Description
    Resume Exit_personal_werkstatt_Click
End Sub



Titel: Re: Kennwort aus einer tab abrufen
Beitrag von: lukyluke68 am Dezember 04, 2013, 12:26:37
Hallo,

danke für die schnelle Hilfe. Darauf kann ich nun aufbauen

gruß Ludwig