Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: Stapi am Januar 16, 2011, 18:05:24

Titel: Tabellen verbergen
Beitrag von: Stapi am Januar 16, 2011, 18:05:24
Guten Abend

Ich habe eine Datenbank die einer Replikat Gruppe läuft. In der habe ich meine Tabellen mit folgende Code verborgen so das sie nicht (so einfach) in eine andere Datenbank importiert werden kann.
Der Code:
Sub HideTables(Optional Hide As Boolean = True)
Dim dbs As Database
Dim tdf As TableDef
Dim a As Long
Set dbs = CurrentDb
For Each tdf In dbs.TableDefs
If Mid(tdf.Name, 2, 3) <> "Sys" Then
If Hide Then
tdf.Attributes = tdf.Attributes Or dbHiddenObject
Else
tdf.Attributes = tdf.Attributes And (&HFFFFFFF Xor dbHiddenObject)
End If
End If
Next tdf
dbs.TableDefs.Refresh
RefreshDatabaseWindow
Set dbs = Nothing
Set tdf = Nothing
End Sub

Nun soll auch das Replikat in Abständen komprimiert werden und dafür muss ich die Tabellen wieder einblenden da sonst die Gefahr besteht das die Tabellen im ausgeblendeten Zustand gelöscht werden. Dafür ändere ich den Sub wie folgt in der ersten Zeile:
Sub HideTables(Optional Hide As Boolean = false)
Nun kommt die Fehlermeldung:
Laufzeitfehler 3452
Sie können in diesem Replikat keine Änderung am Entwurf der Datenbank vornehmen.
Bei dem Desingmaster ist das kein Problem.

Könnt ihr mir ein Tipp geben?

Gruß Stefan
Titel: Re: Tabellen verbergen
Beitrag von: database am Januar 16, 2011, 19:18:16
Hallo,

abgesehen davon, dass die Replikation sowieso ein ganz eigenes Kapitel ist, erscheint mir dein Problem logisch.
Der Designmaster stellt ja praktisch das Ausgangsprodukt dar und in dieser Rolle sollte diese Datei die einzige sein,
an der Änderungen an der Datenstruktur, dem Tabellenentwurf etc. vorgenommen werden können.

Geht man nun davon aus, dass dieser Designmaster sich deshalb in einer 'geschützten' Umgebung befindet,
scheint es mir nicht unlogisch zu sein, dass an den Replikaten die Änderungen 'verboten' sind.
Diese würden ja beim nächsten Replikationsvorgang 1:1 auf den Designmaster übertragen werden - und ich könnte mir vorstellen dass das nicht unbedingt wünschenswert ist.

Ich würde daher in deinem Fall folgendes versuchen:

1. Vollständige Replikation in der Gruppe durchführen
2. Designmaster ordnungsgemäß komprimieren - danach die Tabelle wie gehabt verstecken.
3. Replikate löschen
4. Neue Replikate anlegen

Somit sollten die neu erstellten Replikate die komprimierte Form angenommen haben.
Scheint zwar sehr umständlich zu sein aber nach meinem - vielleicht nicht replikationsfreudigem - Verständnis ein gangbarer Weg

Vielleicht hilfts (hoffentlich)  ;)
Titel: Re: Tabellen verbergen
Beitrag von: Stapi am Januar 16, 2011, 20:11:26
Hallo Peter

Es ist richtig das der Desingmaster den Vorgang erlaubt. Aber den Weg den Desingmaster zu komprimieren und dann alles neue Replika zu erstellen ist in meinem Fall doch sehr Umständlich da nicht  immer Zugriff auf die Rechner habe (Mitarbeiter sind im Außendienst). Ein abgleich findet manchmal erst nach vier wochen statt.
Vieleicht gibt es ja noch eine andere Lösung, werd mal weiter suchen.

Danke
Gruß Stefan
Titel: Re: Tabellen verbergen
Beitrag von: database am Januar 16, 2011, 20:14:09
Hallo Stefan,

ja, ich weiß mein Vorschlag beschreibt einen umständlichen Vorgang - aber leider kann ich mit keiner besseren Variante aufwarten.

Eine Möglichkeit wäre es natürlich auch eine andere Sicherheitsstrategie anzuwenden als die Tabelle zu verstecken.
So wäre es vielleicht eine Überlegung wert, den Zugriff auf das Datenbankfenster zu unterbinden und so ein kopieren der Tabellen zu verhindern ...

Hoffe du findest noch was Besseres
Titel: Re: Tabellen verbergen
Beitrag von: Stapi am Januar 17, 2011, 21:07:21
Guten Abend Peter

Nun hast du mich aber Neugierig gemacht.  ;) ;)
Mein Ziel ist die Datenbank und auch die Daten somit in erster Linie die Tabellen vor einen ungewollten Import zu schützen. Da es sich wie schon erwähnt um eine Replikat Gruppe handelt ist das wahrscheinlich mit Einschränkungen verbunden. Habe schon im Netz  nach Möglichkeiten gesucht, aber die richtige Lösung war noch nicht dabei. Nun muss ich aber auch zugeben das ich als Hobby Accessler einige Bücher gelesen habe, zu diesem besagten Thema die Profi Welt ein wenig mit Informationen zurück hält.
ZitatEine Möglichkeit wäre es natürlich auch eine andere Sicherheitsstrategie anzuwenden als die Tabelle zu verstecken.
So wäre es vielleicht eine Überlegung wert, den Zugriff auf das Datenbankfenster zu unterbinden und so ein kopieren der Tabellen zu verhindern
Möchte keine fertige Lösung aber vieleicht verräst du mir wie oder wo ich suchen kann, oder Ansatz weise wie ich meine Ziel erreichen könnte. ;) ;) ;)
So mal einen echten Tipp vom echten Access Profi.
Gruß Stefan
Titel: Re: Tabellen verbergen
Beitrag von: database am Januar 17, 2011, 21:35:45
Hallo Stefan,

also ich muss von meiner Seite aus einräumen, dass ich mit Replikation (bei Access) bis auf Grundzüge nie was gemacht habe.

Zu der von mir angeregten Änderung der Sicherheitsstrategie: (mußt du halt testen, wie weit das im Replikationsumfeld brauchbar einzusetzen ist)

Es gibt verschiedene Möglichkeiten den Zugriff auf das Datenbankfenster zu sperren und so auch den Zugriff auf die Tabellen und deren Definition zu unterbinden.

Wenn du in den Start-Einstellungen deiner Datenbank angibst das Datenbankfenster zu verbergen, die Access-Spezialtasten NICHT zu verwenden, angepasste Menü und Kontextmenüleisten zu verwenden
so bringt das schon einiges an Sicherheit. Wenn du dann noch festlegst, dass das Drücken der SHIFT-Taste beim Starten der DB wirkungslos ist, ist die Sache schon sehr sicher.

Ein Lösungsansatz die SHIFT-Taste lahm zu legen sowie weitere möglichkeiten OHNE mit dem Arbeitsgruppensicherheitsystem zu arbeiten ist bei donkarl.com recht gut beschrieben...

http://www.donkarl.com?FAQ1.8 (http://www.donkarl.com?FAQ1.8)
http://www.donkarl.com?FAQ1.11 (http://www.donkarl.com?FAQ1.11)
http://www.donkarl.com?FAQ1.12 (http://www.donkarl.com?FAQ1.12)

Bitte UNBEDINGT Versuche diesbezüglich mit einer KOPIE der Original-DB unternehmen! Wenn beim unterbinden der SHIFT-Taste bzw dem Notaustieg daraus was schief geht oder übersehen wird kannst du selbst nicht mehr in den Entwurf der DB gelangen!

HTH
Titel: Re: Tabellen verbergen
Beitrag von: Stapi am Januar 17, 2011, 22:10:54
Hallo Peter

Die Shift Taste, Datenbankfenster sind gesperrt oder ausgeblendet. Meine Ziel soll sein die geschlossene Datenbank vor Import in eine andere Datenbank zu schützen. Habe auch hier das VBA Paßwort gesetzt um eine einfachen Importieren der Formular zu erschweren. Wäre das den mit dem Arbeitsgruppensicherheitssystem möglich im Grundsatz zu erreichen?
Hab zwar einiges drüber gelesen aber für mich immer wieder zurück gestellt und nach anderen Lösungsansätzen gesucht. Die heutigen Nutzer melden sich an ihren Rechner mit Kennwort und Paßwort an,  für die Datenbank wolte ich nicht nochmals eine Paßwort abfrage.

Gruß Stefan