Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: DaKain am November 23, 2018, 02:13:34

Titel: Environ Abfrage beim Start der Datenbank
Beitrag von: DaKain am November 23, 2018, 02:13:34
Hallo Acces-O-Mania Gemeinde,

ich sitze vor einem Problem. Ich möchte eine Datenbank durch eine Environ Abfrage "schützen". Der Code sieht so aus:

Private Sub Form_Open(Cancel As Integer)

Select Case Environ("Username")
Case "User0", "User1", "User2", "User3", "User4", "User5", "User6", "User7", "User8", "User9", "User10"
  DoCmd.OpenForm "Start"
Case Else
DoCmd.OpenForm "Kein_Zugriff"
End Select

End Sub

(Ich weiß das man durch drücken der Schift-Taste trotzdem ins Backend gelangt, aber die die mit der DB arbeiten sollen sind alles Ahnungslose und die wissen nicht wie Access funktioniert.)  :)

Der VBA Code funktioniert auch soweit. Zumindest wenn ich damit Buttons Belege in einem Formular "beim klicken"

Jetzt möchte ich aber diese Environ Abfrage schon beim Start also beim Öffnen des Startformulars der Datenbank ausführen. Das soll über eine Autoexec Makro wohl möglich sein, aber ich bekomme es nicht zum laufen.

Kann mir einer den Weg (möglichst einfach) Schildern? Muss ich ein Modul erstellen? Oder was genau muss ich tun???

Ich wäre euch für eure Hilfe wirklich sehr dankbar

VG

Kain
Titel: Re: Environ Abfrage beim Start der Datenbank
Beitrag von: Beaker s.a. am November 23, 2018, 15:55:01
Hallo Kain,
- Schreibe die Prozedur in ein allgemeines Modul.
- Erstelle das Macro "AutoExec"
- füge den Befehl "AusführenCode" hinzu und übergebe dieser den
Namen der obigen Prozedur als Parameter.
Wie selbst schon angemerkt lässt sich das allerdings auch durch "Shift"
beim Start aushebeln.
gruss ekkehard
Titel: Re: Environ Abfrage beim Start der Datenbank
Beitrag von: DaKain am November 27, 2018, 15:58:26
Hi,

so erst mal danke für die schnelle Antwort. Ich habe die obige Prozedur in ein Modul eingefügt und dieses "Environ" genannt. Dann habe ich das Makro erstellt den Befehl Code ausführen hinzugefügt und dort den Funktionsnamen "Environ" eingetragen nun kommt die Fehlermeldung:

"Microsoft kann den angegebenen Namen "Environ" nicht finden"

Was mache ich nur falsch? :-(

Hoffe ihr habt noch ne Idee.

Grüße Kain
Titel: Re: Environ Abfrage beim Start der Datenbank
Beitrag von: markusxy am November 27, 2018, 16:08:56
Du nennst also das Modul so wie eine Funktion?  ???

Titel: Re: Environ Abfrage beim Start der Datenbank
Beitrag von: PhilS am November 27, 2018, 16:09:26
Zitat von: DaKain am November 27, 2018, 15:58:26
Ich habe die obige Prozedur in ein Modul eingefügt und dieses "Environ" genannt.
Ein Modul darf nicht denselben Namen haben wie eine Funktion.
Nenn dein Modul doch einfach modEnviron.
Titel: Re: Environ Abfrage beim Start der Datenbank
Beitrag von: DaKain am November 27, 2018, 16:34:35
Okay  ::) da habe ich nicht geschaltet, sorry. Aber ich habe es jetzt umbenannt und das ergebnis bleibt das gleiche :-( Die Fehlermeldung kommt erneut
Titel: Re: Environ Abfrage beim Start der Datenbank
Beitrag von: DaKain am November 27, 2018, 16:40:49
Das ist die besagte Fehlermedung
Titel: Re: Environ Abfrage beim Start der Datenbank
Beitrag von: markusxy am November 27, 2018, 17:33:51
Dann zeig mal deinen Code.
Oder glaubst du wir sind Hellseher?

Im autoexec Macro musst du "Code ausführen" verwenden und dann den Namen deiner Funktion anführen.
Keinesfalls den Namen des Moduls.
Titel: Re: Environ Abfrage beim Start der Datenbank
Beitrag von: MzKlMu am November 27, 2018, 17:33:53
Hallo,
wie heißt die Funktion ?
Wie heißt das Modul ?
Titel: Re: Environ Abfrage beim Start der Datenbank
Beitrag von: DaKain am November 27, 2018, 17:52:04
@markus888: der Code der Environ ist im ersten Post! Da brauchste auch nicht Hellsehen für, trotzdem danke für die Antwort! Mir ist nicht klar was du mit Name der Funktion meinst?!


@MzKlMu
Das Modul heisst: "modenviron"
Und das Makro heisst: "autoexec"
Titel: Re: Environ Abfrage beim Start der Datenbank
Beitrag von: MzKlMu am November 27, 2018, 18:01:51
Hallo,
Du brauchst 3 Sachen:
- Funktion
- Modul als Container für die Funktion
- Autoexecmacro das die Funktion aufruft
Titel: Re: Environ Abfrage beim Start der Datenbank
Beitrag von: markusxy am November 27, 2018, 18:05:24
Zitat von: DaKain am November 27, 2018, 17:52:04
@markus888: der Code der Environ ist im ersten Post! Da brauchste auch nicht Hellsehen für, trotzdem danke für die Antwort! Mir ist nicht klar was du mit Name der Funktion meinst?!

So wie der Code oben steht funktioniert das ja nicht.
Du brauchst eine Public Function, sonst kommt deine Fehlermeldung!  ;)

Public Function Startup()
Select Case Environ("Username")
Case "User0", "User1", "User2", "User3", "User4", "User5", "User6", "User7", "User8", "User9", "User10"
  DoCmd.OpenForm "Start"
Case Else
DoCmd.OpenForm "Kein_Zugriff"
Docmd.quit
End Select
Titel: Re: Environ Abfrage beim Start der Datenbank
Beitrag von: Beaker s.a. am November 27, 2018, 18:31:39
Hallo,
@Regulars
Hatte ich das echt so schlecht erklärt? Danke an euch für weitere
Erklärungen.

@Kain
ZitatDu brauchst eine Public Function, sonst kommt deine Fehlermeldung
Und du musst im Macro die beiden Klammern mit reinschreiben.
Startup()
(Name aus Markus' letztem Post, - also anpassen)

gruss ekkehard