PDA

Vollständige Version anzeigen : DB dicht machen


Vicky Morgan
03.08.2001, 10:06
Und zwar hab ich das so gelöst: Der Autostart von Access führt "Makro1" aus, welches die Funktion Verweis() aufruft und dort steht drin call abc()

Und die Prozedur sieht folgernermaßen aus:
Sub abc()
Const DB_Text As Long = 10
Const DB_Boolean As Long = 1
ChangeProperty "StartupForm", DB_Text, "Formular1"
ChangeProperty "StartupShowDBWindow", DB_Boolean, False
ChangeProperty "StartupShowStatusBar", DB_Boolean, False
ChangeProperty "AllowBuiltinToolbars", DB_Boolean, False
ChangeProperty "AllowFullMenus", DB_Boolean, True
ChangeProperty "AllowBreakIntoCode", DB_Boolean, False
ChangeProperty "AllowSpecialKeys", DB_Boolean, True
ChangeProperty "AllowBypassKey", DB_Boolean, True
End Sub

Function ChangeProperty(strEigName As String, varEigTyp As Variant, varEigWert As Variant) As Integer
Dim dbs As Object, Eig As Variant
Const conEigNichtgefundenFehler = 3270

Set dbs = CurrentDb
On Error GoTo Change_Error
dbs.Properties(strEigName) = varEigWert
ChangeProperty = True

Change_End:
Exit Function

Change_Error:
If Err = conEigNichtgefundenFehler Then
Set Eig = dbs.CreateProperty(strEigName, _
varEigTyp, varEigWert)
dbs.Properties.Append Eig
Resume Next
Else
ChangeProperty = False
Resume Change_End
End If
End Function

Und wenn ich mich recht entsinne, macht das die DB dicht. Jedoch schaff ich das mit 2 Methoden zu durchbrechen:
1. Shift und Enter 'beim öffnen der DB.
2. Es steht noch immer das Anpassen-Fenster zur Verfügung, an die ich über das leere, aber noch zu sehende Symbolleiste, herankomme. Ich erhalte zwar ne Fehlermeldung, aber das Fenster wird geöffnet. Dann seh ich im Registerblatt Symbolleiste den Eintrag Menüleiste, den ich zwar anfangs nicht aktivieren kann, dies jedoch schaffe, wenn ich über Eigenschaften den Punkt "Einblenden/Ausblenden zulassen" markiere. Und dann kann ich über Extras/Einblenden das Datenbankfenster wieder anzeigen lassen.Und dann gehts ...

Ich meine das ist erstens nicht sooo schwer hinzubekommen, und zweitens habe ich mich auch nicht hingesetzt und gesagt, ich will das jetzt knacken.Gibt's noch nen Befehl(e) mit dem die beiden Sachen unterdrücken kann, denn dann dürfte der User später wirklich garnichts mehr, außer auf das Formular zuzugreifen.

martiniz
03.08.2001, 10:14
Hallo Vicky,

kann man an hand dieser prozedur eine gewöhnliche db sperren so ganz ohne developer tool?

Vicky Morgan
03.08.2001, 10:36
Also ein Problem habe ich schon gelöst.
Einfach folgende Zeile in die Prozedur abc einfügen:

ChangeProperty "AllowShortcutMenus", DB_Boolean, False

Und schon wird das Kontextmenü auch gesperrt.
Bleibt die Sache mit Shift+Enter.

Ach übrigens habe ich jetzt das geöffnete Formulare mit Docmd.Maximize in die Vollbildansicht gebracht, jedoch habe ich dann noch den Wiederherstellen-Knopf, den ich in den Eigenschaften des Formulars nicht abstellen kann. Irgendwelche Ideen?? Danke für die Hilfe.

Morli
03.08.2001, 10:42
Hi Vicky,

um Shift + Enter zu umgehen, muß du

ChangeProperty "AllowBypassKey", DB_Boolean, False

eingeben.


Gruß

Rainer ;)

se7en
03.08.2001, 10:43
Öhhh... also wenn das hier einer sagen kann dann knutsch ich euch alle. ich brauch auch so was. sonst könnte ja jemand meine geklauten prozeduren klauen [:D *spass*
aber mich würde das auch interessieren.
- BRENNEND -

se7en
03.08.2001, 10:44
Rainer kannst du das jetzt nochmal komplett im Code angeben?
Bidde....
also den Code oben plus das was du gesagt hast...ich meine komplett :eek: blöd ausgedrückt...

marmic55
03.08.2001, 10:45
Hallo,

Ausschalten der Shifttaste (beim nächsten Start) mit 'False' (=).

Set db = CurrentDb
db.Properties!AllowBypassKey = false

Gruß

Michael

Vicky Morgan
03.08.2001, 11:06
Habe mal ne Beispieldatei erstellt(140kb) Darf man die so einfach unter Downloads reinstellen, und wenn ja, wie mach ich das???

Marc-Oliver
03.08.2001, 11:11
hallo,

hier der link zum upload.

mfg, marc-oliver

A.S.
03.08.2001, 11:14
Hallo Vicky,

natürlich darfst Du Deine Beispieldatei in den Downloadbereich stellen. Im oberen Teil des Downloadbereichs ist die Vorgehensweise beschrieben.

Bitte denke auch daran einen Beitrag im Downloadbereich zu erstellen, in welchem sowohl die Datei als auch der Bezug zum Forumsthema verlinkt sind.

Gruß

Arno

Vicky Morgan
03.08.2001, 11:38
Ich habe zwar die Datei "geuploadet", aber konnte keine Nachricht erstellen. Unter AccessDichtGemacht.zip steht sie. Die Datenbank einfach mit Shift+Enter öffnen, in Modul1 gehen und in Zeile 19 den Wert von True auf False setzen. Danach die Datenbank noch einmal so öffnen, dann klappt es danach mit shift+enter auch nicht mehr.

marmic55
03.08.2001, 13:51
Hallo,

unzufrieden bin ich nicht, habe aber überlesen, dass Du vermutl. A00 hast ;)

Dennoch ein kleiner Vorschlag:
Ich habe in meinen Anwendungen ein sog. Dialogformular, welches als erstes geöffnet u. als letztes geschlossen wird.
Hier habe ich 2 versteckte Schaltflächen, über die die Startoptionen gesetzt werden. Wird die Shifttaste eingeschaltet, so ist per Inputbox ein Passwort vonnöten (in einer MDE-DB!). So hat man doch ein Hintertürchen offen.
Hier ein Teilausschnitt (o. Fehlerbeh.) :


Function StartOptionenEin(flag As Boolean) As Integer
' Aufruf: StartOptionenEin(True)
Set DB = CurrentDb
DB.Properties!AllowBypassKey = flag
' * Ab hier werden alle (wichtigen) Start-Eigenschaften -siehe Menü *
' * "Extras / Start" ein- oder ausgeschaltet

DBFensterAnzeigen (flag)
UnbeschraenkteMenues (flag
Menuaenderungen (flag)
Spezialtasten (flag)
CodeAnsicht (flag)
StandardKontext (flag)

If flag = True Then 'naja, dass True kann raus
StandardMenueLeiste ("(Standard)")
Else
StandardMenueLeiste ("mnDialog")
' Aufruf Funct. ggf. auskommentieren o. Namen ändern bei anderer LeisteEnd If
End Function

----------------------------------
' Beispielhaft 1 aufger. Function
Function DBFensterAnzeigen(flag As Boolean)
Set DB = CurrentDb
DB.Properties!StartUpShowDBWindow = flag ' DB-Fenster anzeigen

End Function

usw.

Wie gesagt, vielleicht hast Du es ja auch so (Datei kann ich nicht öffnen).

Gruß

Michael

Phillip-Berlin
03.08.2001, 23:27
@ vicky

hast du schon daran gedacht etwas gegen den import all deiner db inhalte in eine leere db mittels datei - externe daten - importieren zu tun?
nein? na dann erstmal viel spaß mit dem access sicherheitssystem

:)

DB-Sicherheit (http://www.ms-office-forum.net/forum/showthread.php?s=&threadid=44305)

Datenbank mit Workgroup öffnen (http://www.ms-office-forum.net/forum/showthread.php?s=&threadid=40973)

Zugriffsberechtigung (http://www.ms-office-forum.net/forum/showthread.php?s=&threadid=46285)

erwin
03.08.2001, 23:52
@ vicky + den Rest (bis auf Phillip ;-))

Also mit "dichtmachen" hat das alles recht wenig zu tun, bzw. ist schlichtweg dafür ungeeignet. Schau dir mal *grummel ärger* auf im "Spotlight"-Forum Rubrik Access also www.*******************/msa/m/msa-996324439-5451.html (http://www.*******************/msa/m/msa-996324439-5451.html) an !

"Netterweise" zensiert Günther hier den Verweis auf das Spotlight Forum, obwohl er selber immer wieder dort postet - ist sowas nötig ??

so long erwin...


[Dieser Beitrag wurde von erwin am 04.08.2001 editiert.]

Günther Kramer
04.08.2001, 10:27
Hallo,

zu der Behauptung von Erwin gibt es einen eigenen Beitrag, worauf ich Stellung beziehe.
@ Günther - was soll das ? Zensur von Spotlight (http://www.ms-office-forum.net/forum/showthread.php?s=&threadid=62574)