Access 2010 Datenbank für Anwender auf Terminalserver 2008 R2 aufbereiten
Hallo,
Wie kann ich alle Entwurfselemente ausblenden bzw. ein Startformular angeben und den kompletten Bildschirm für die Anwendung nutzen; also alles so einstellen daß ein Anwender damit arbeiten kann, aber nichts im Entwurf oder VBA-Code ändern kann.
d.h. links die Spalte mit den Objekten weg, und zwar so, daß sie der Anwender nicht einblenden kann
oben: Ribbon weg, Symbolleiste (wenn man den Rest noch so nennen kann) weg.
Formular auf kompletten Bildschirm darstellen
Bei Access 2003 war´s ja ganz einfach.
Da konnt man über Extras die diversen Symbolleisten ausblenden, ein Startformular eintragen und in den Entwurfsmodus gelangt man sowieso nur mit der Shift-Taste.
PS: Soweit ich gelesen habe, gibt´s ja Arbeitsgruppenadministrator und .mdw - Datei auch nicht mehr.
Wie kann ich jetzt die DB sinnvoll schützen.
Vielen Dank
IngChris
Wie kann ich alle Entwurfselemente ausblenden bzw. ein Startformular angeben und den kompletten Bildschirm für die Anwendung nutzen; also alles so einstellen daß ein Anwender damit arbeiten kann, aber nichts im Entwurf oder VBA-Code ändern kann.
d.h. links die Spalte mit den Objekten weg, und zwar so, daß sie der Anwender nicht einblenden kann
oben: Ribbon weg, Symbolleiste (wenn man den Rest noch so nennen kann) weg.
Formular auf kompletten Bildschirm darstellen
Bei Access 2003 war´s ja ganz einfach.
Da konnt man über Extras die diversen Symbolleisten ausblenden, ein Startformular eintragen und in den Entwurfsmodus gelangt man sowieso nur mit der Shift-Taste.
PS: Soweit ich gelesen habe, gibt´s ja Arbeitsgruppenadministrator und .mdw - Datei auch nicht mehr.
Wie kann ich jetzt die DB sinnvoll schützen.
Vielen Dank
IngChris
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 150964
Url: https://administrator.de/contentid/150964
Ausgedruckt am: 05.11.2024 um 08:11 Uhr
9 Kommentare
Neuester Kommentar
N'abend,
die Runtime - Umgebung ist für 2010 kostenlos, nutze sie.
Auch unter 2010 kann man eine MDE erstellen, nutze es.
Den Ribbon kannst du nicht abschalten, maximal ausblenden/verkleinern. Erzeuge deinen eigenen Ribbon und zeige ausschließlich diesen an.
Formulare als Vollbild anzuzeigen geht nur wenn diese als POPUP definiert sind. Nachteil: alle Formulare müssen dann in deinem Fall als POPUP definiert werden.
Was ist das Problem mit dem Startformular? Trage es doch einfach ein -> Office-Button -> Access Einstellungen (unten im Rahmen des Fensters)
Das -> links .. nennt man Navigationsleiste -> diese wird im Runtime sowieso ausgeblendet.
Ja, du hast Recht, die MDW mit Benutzerverwaltung gibt es nicht mehr. Wurde aber auch sehr selten genutzt.
Grüße aus Rostock
Wolfgang
(Netwolf)
die Runtime - Umgebung ist für 2010 kostenlos, nutze sie.
Auch unter 2010 kann man eine MDE erstellen, nutze es.
Den Ribbon kannst du nicht abschalten, maximal ausblenden/verkleinern. Erzeuge deinen eigenen Ribbon und zeige ausschließlich diesen an.
Formulare als Vollbild anzuzeigen geht nur wenn diese als POPUP definiert sind. Nachteil: alle Formulare müssen dann in deinem Fall als POPUP definiert werden.
Was ist das Problem mit dem Startformular? Trage es doch einfach ein -> Office-Button -> Access Einstellungen (unten im Rahmen des Fensters)
Das -> links .. nennt man Navigationsleiste -> diese wird im Runtime sowieso ausgeblendet.
Ja, du hast Recht, die MDW mit Benutzerverwaltung gibt es nicht mehr. Wurde aber auch sehr selten genutzt.
Grüße aus Rostock
Wolfgang
(Netwolf)
N'abend,
2. der Code funktioniert wie ein Ein-Ausschalter:
Private Sub Form_Open(Cancel As Integer)
MinimizeRibbon 'siehe unten
'Navigationsleiste ausblenden
DoCmd.SelectObject acTable, , True
RunCommand acCmdWindowHide
End Sub
Function MinimizeRibbon(Optional TimeOut As Long = 1) As Boolean
Dim T As Single
MinimizeRibbon = True
If RibbonState = -1 Then Exit Function
T = Timer()
Do While (RibbonState = 0) And (Timer - T) < TimeOut
SetForegroundWindow Application.hWndAccessApp
SetActiveWindow Application.hWndAccessApp
apiSetFocus Application.hWndAccessApp
SendKeysAPI "{^F1}"
DoEvents
Loop
MinimizeRibbon = (Timer - T) < TimeOut
End Function
Die beste Vorgehensweise:
- aus einer .accdb eine .mde erstellen
- Office-Button
- Entwickler
- Lösung packen
es wird ein Runtime-Installationspaket geschnürt.
Grüße aus Rostock
Wolfgang
(Netwolf)
D.h. Änderung im Designmaster durchführen, alle aus der DB aussteigen lassen, Batchjob ausführen...
(klingt vielleicht nich so professionell, funktioniert seit Jahren perfekt!)
klar, würde ich auch so machen (klingt vielleicht nich so professionell, funktioniert seit Jahren perfekt!)
Weißt Du, ob diese beiden Varianten auch für den Einsatz unter Terminalserver 2008 R2 mit Access 2010 bzw. für die
Aufteilung in FE + BE geeignet sind?
ich kenne keine EinschränkungenAufteilung in FE + BE geeignet sind?
Denkbare Varianten:
Variante1)
DB in FE und BE aufteilen
BE als "normale" DB (oder auch .mde?)
normal, da nur die Tabellen dort drin sind und der User die Datei eigentlich nicht "sieht"Variante1)
DB in FE und BE aufteilen
BE als "normale" DB (oder auch .mde?)
FE als .mde
JAHab´ mal testweise aus einer TestDB (nicht aufgeteilt) eine .mde erzeugt;
Entwurf ist ausgeblendet
Ribbon + Navigationsleiste vorhanden
Nachteil: Anwender kann noch immer über Navigationsleiste direkt eine Tabelle aufrufen und Änderungen durchführen
--> möchte ich so nicht zulassen! (gibt´s hier vielleicht die Möglichkeit per VBA die Nav.leiste auszublenden?
1. die Tabellen/Formulare etc. unsichtbar machenEntwurf ist ausgeblendet
Ribbon + Navigationsleiste vorhanden
Nachteil: Anwender kann noch immer über Navigationsleiste direkt eine Tabelle aufrufen und Änderungen durchführen
--> möchte ich so nicht zulassen! (gibt´s hier vielleicht die Möglichkeit per VBA die Nav.leiste auszublenden?
2. der Code funktioniert wie ein Ein-Ausschalter:
Private Sub Form_Open(Cancel As Integer)
MinimizeRibbon 'siehe unten
'Navigationsleiste ausblenden
DoCmd.SelectObject acTable, , True
RunCommand acCmdWindowHide
End Sub
Function MinimizeRibbon(Optional TimeOut As Long = 1) As Boolean
Dim T As Single
MinimizeRibbon = True
If RibbonState = -1 Then Exit Function
T = Timer()
Do While (RibbonState = 0) And (Timer - T) < TimeOut
SetForegroundWindow Application.hWndAccessApp
SetActiveWindow Application.hWndAccessApp
apiSetFocus Application.hWndAccessApp
SendKeysAPI "{^F1}"
DoEvents
Loop
MinimizeRibbon = (Timer - T) < TimeOut
End Function
Variante 2)
DB in FE und BE aufteilen
klar, immer wenn eine Datenbank im Netz genutzt werden sollDB in FE und BE aufteilen
Ich war jetzt der Meinung, ich muß aus meiner .accdb-DB eine Runtime-Version der DB erzeugen.
Das ist ja anscheinend nicht so.
Das ist ja anscheinend nicht so.
Die beste Vorgehensweise:
- aus einer .accdb eine .mde erstellen
- Office-Button
- Entwickler
- Lösung packen
es wird ein Runtime-Installationspaket geschnürt.
lt. Microsoft: Mit der Microsoft Access 2010-Runtime können Sie Access 2010-Anwendungen an Benutzer verteilen, die keine
vollständige Version von Access 2010 auf ihren Computern installiert haben.
ja, das ist der Sinn der Sachevollständige Version von Access 2010 auf ihren Computern installiert haben.
Ich nehme an, keine vollständige Access-Version bedeutet nur die Access Runtime auf dem Zielrechner ?
auf dem User (Client) PC ! "Zielrechner" wäre dann der ServerBrauche ich auf dem
Zielrechner, wo die Anwendung im Runtime-Modus laufen würde - in diesem Fall überhaupt eine Access - Lizenz ?
nein, brauchst du nichtZielrechner, wo die Anwendung im Runtime-Modus laufen würde - in diesem Fall überhaupt eine Access - Lizenz ?
Dz. experimentiere ich nur mit einer einfachen Test-DB (email senden direkt aus Access) auf meinem Notebook (Hier ist access 2010
installiert)
Habe jetzt etwas vorschnell die Access - Runtime auch direkt auf diesem Notebook installiert (wo schon Access installiert ist)
Stört das, wenn sowohl Access 2010 und die Access Runtime auf dem gleichen Rechner installiert sind?
nein stört nicht, da die Datenbank mit Runtime nur per LNK-Datei aufgerufen wird. Siehe Entwickler -> Lösung packeninstalliert)
Habe jetzt etwas vorschnell die Access - Runtime auch direkt auf diesem Notebook installiert (wo schon Access installiert ist)
Stört das, wenn sowohl Access 2010 und die Access Runtime auf dem gleichen Rechner installiert sind?
Testweise habe ich auf meinem Notebook die Test-DB mit /runtime aufgerufen. Lt Internet kann man so testen, ob die DB als runtime
läuft.
auch eine Möglichkeitläuft.
Zu meiner Entäuschung sah ich zuerst nur einen hellblauen Hintergrund und den Menüpunkt "DATEI", bis ich
draufgekommen bin, daß ich natürlich ein Formular festlegen muss, das beim Start geöffnet wird.
Sieht - für diese einfache DB mal ganz gut aus.
erst eine MDE erstellen und dann nochmal testen.draufgekommen bin, daß ich natürlich ein Formular festlegen muss, das beim Start geöffnet wird.
Sieht - für diese einfache DB mal ganz gut aus.
Habe das ganze jetzt auch noch auf einem anderen Notebook getestet, KEIN Access, nur Access Runtime.
Funktioniert für diese einfache DB auch.
sollte es auch Funktioniert für diese einfache DB auch.
Würde das ganze auch auf dem TS 2008 R2 funktionieren?
ich kenne keinen Grund, warum nicht.Die TS-Clients sind nur Anwender der DB, d.h. Access würde auf allen TS-Clients - bis auf einen Rechner, nämlich dem
Entwickler-TS-Client - nur im Runtime - Modus betrieben werden.
genau soEntwickler-TS-Client - nur im Runtime - Modus betrieben werden.
> Ja, du hast Recht, die MDW mit Benutzerverwaltung gibt es nicht mehr. Wurde aber auch sehr selten genutzt.
fand ich ganz gut, da im Prinzip zusätzl. zur DB eine zweite Datei (.mdw) erforderlich war (ist wahrscheinlich
Anschauungssache).
die hat mehr Probleme bereitet als dass sie genutzt hat fand ich ganz gut, da im Prinzip zusätzl. zur DB eine zweite Datei (.mdw) erforderlich war (ist wahrscheinlich
Anschauungssache).
ja, ja Fragen über Fragen ...
einige solltest du beantwortet bekommen haben..Grüße aus Rostock
Wolfgang
(Netwolf)
Hallo IngChris,
- Access ist die Runtime & Entwicklungsumgebung
- Access Runtime ist nur die Runtimeumgebung
Option Compare Database
' Code: Sascha Trowitzsch: https://mvp.support.microsoft.com/profile/Sascha.Trowitzsch
Declare Function SetForegroundWindow Lib "user32.dll" ( _
ByVal hwnd As Long) As Long
Declare Function SetActiveWindow Lib "user32.dll" ( _
ByVal hwnd As Long) As Long
Private Declare Function apiSetFocus Lib "user32.dll" Alias "SetFocus" ( _
ByVal hwnd As Long) As Long
'Status des Ribbon; Result: 0=normal, -1=minimiert
Function RibbonState() As Long
RibbonState = (CommandBars("Ribbon").Controls(1).Height < 100)
End Function
der funktioniert nur beim Event "beim Öffnen" eines Formulars
Du würdest doch auch Word nicht jedes mal neu installieren, nur weil du ein Dokument geändert hast?
Fileserver: BE in einen Ordner speichern
TerminalServer: FE & Runtime installieren (ggf. Access deinstallieren damit keiner an der offenen BE rumspielt)
fertig
Grüße aus Rostock
Wolfgang
(Netwolf)
Jetzt gibt es ja für Access Runtime anscheinend 2 Möglichkeiten:
1. Ich habe Access installiert und kann die DB mit /runtime aufrufen
2. Ich habe kein Access installiert und kann die DB ohne den /runtime Parameter aufrufen
Ist das beides das gleiche?
ja, bedenke:1. Ich habe Access installiert und kann die DB mit /runtime aufrufen
2. Ich habe kein Access installiert und kann die DB ohne den /runtime Parameter aufrufen
Ist das beides das gleiche?
- Access ist die Runtime & Entwicklungsumgebung
- Access Runtime ist nur die Runtimeumgebung
Was bedeutet das für den TS 2008 R2?
Entwicklungstätigkeiten mit Access führe ich ja nur auf einem Rechner u.U. auf einem zweiten durch.
= Vollversion von AccessEntwicklungstätigkeiten mit Access führe ich ja nur auf einem Rechner u.U. auf einem zweiten durch.
Alle anderen PCs (TS-Clients) wenden die Datenbank nur an (Runtime).
= RuntimeMuß ich auf dem Server zusätzlich zur Volumenslizenz von Office Pro 2010 (Minimum ist 5 Lizenzen) nun auch noch Access
Runtime installieren od. kann ich einfach ohne Access-Runtime Installation auf dem 6. PC die Datenbank mit /runtime aufrufen ?
du benötigst für Access dort gar keine Lizenz, sondern nur die Runtime (die ja kostenlos ist)Runtime installieren od. kann ich einfach ohne Access-Runtime Installation auf dem 6. PC die Datenbank mit /runtime aufrufen ?
Kann das eine funktionierende Vorgangsweise sein:
> 1. Aufteilung der DB in FE und BE
ja> 1. Aufteilung der DB in FE und BE
> 2. Tabellen / Formulare etc. unsichtbar machen --> kann ich mir eigentlich sparen, wenn ich zuerst in .accde konvertiere
und das ganze als Runtime ausführe (da sind TB/Forms / Ribbon sowieso weg).
jaund das ganze als Runtime ausführe (da sind TB/Forms / Ribbon sowieso weg).
Nur der Vollständigkeit halber, beim Ausprobieren des Codes ist mir folgendes aufgefallen:
a. Bei dieser anweisung erhalte ich beim Debuggen den Fehler "Sub oder Function" nicht definiert (kann hier ein Verweis
fehlen?
SetForegroundWindow
sorry, ich habe die Deklaration vergessen mit rein zu kopieren:a. Bei dieser anweisung erhalte ich beim Debuggen den Fehler "Sub oder Function" nicht definiert (kann hier ein Verweis
fehlen?
SetForegroundWindow
Option Compare Database
' Code: Sascha Trowitzsch: https://mvp.support.microsoft.com/profile/Sascha.Trowitzsch
Declare Function SetForegroundWindow Lib "user32.dll" ( _
ByVal hwnd As Long) As Long
Declare Function SetActiveWindow Lib "user32.dll" ( _
ByVal hwnd As Long) As Long
Private Declare Function apiSetFocus Lib "user32.dll" Alias "SetFocus" ( _
ByVal hwnd As Long) As Long
'Status des Ribbon; Result: 0=normal, -1=minimiert
Function RibbonState() As Long
RibbonState = (CommandBars("Ribbon").Controls(1).Height < 100)
End Function
b. 'Navigationsleiste ausblenden
DoCmd.SelectObject acTable, , True
RunCommand acCmdWindowHide
Dann hätte mal nur diesen VBA-Code ausprobiert --> passiert aber nix !?
DoCmd.SelectObject acTable, , True
RunCommand acCmdWindowHide
Dann hätte mal nur diesen VBA-Code ausprobiert --> passiert aber nix !?
der funktioniert nur beim Event "beim Öffnen" eines Formulars
> 3. aus dem FE eine .mde erzeugen
Folgenden Code für Erzeugung einer .accde habe ich gefunden (dürfte ursprüngl. für access 2007 sein,
dürfte aber unter Access 2010 auch funktionieren, oder gibt´s hier für Access 2010 was anderes?)
ja, schau dir mal die Icons im Ribbon an, alternativ kannst du dir das Icon für die MDE auch auf die Menüleiste legenFolgenden Code für Erzeugung einer .accde habe ich gefunden (dürfte ursprüngl. für access 2007 sein,
dürfte aber unter Access 2010 auch funktionieren, oder gibt´s hier für Access 2010 was anderes?)
> 4. für jeden Anwender eine Kopie des FE zur Verfügung stellen
richtig> 5. Anwender ruft FE mit /runtime auf
nö, nicht wenn er die Runtime nutzen solld.h. DB - Änderung wird auf dem Original - FE durchgeführt, danach eine .mde erzeugt und an alle verteilt (kann einfach
wieder über Batchjob erfolgen, ähnlich wie ich´s im Prinzip jetzt habe).
genauwieder über Batchjob erfolgen, ähnlich wie ich´s im Prinzip jetzt habe).
Bzw. würde das mit dem Runtime-Installationspaket auch auf dem Server funktionieren?
also für Server als Datenspeicher ist das nicht nötig, da dort ja nur die BE liegt.Wie ist hier der Ablauf ?
Müßte ich nach jeder Datenbankänderung eine Installation ausführen?
nein, die Runtime wird ein mal für die User installiert, so wie jedes andere Programm auch.Müßte ich nach jeder Datenbankänderung eine Installation ausführen?
Du würdest doch auch Word nicht jedes mal neu installieren, nur weil du ein Dokument geändert hast?
Fileserver: BE in einen Ordner speichern
TerminalServer: FE & Runtime installieren (ggf. Access deinstallieren damit keiner an der offenen BE rumspielt)
fertig
Grüße aus Rostock
Wolfgang
(Netwolf)
N'abend IngChris,
gut, dann nutze doch dieses Kommando
Grüße aus Rostock
Wolfgang
(Netwolf)
Ich hab eigentlich nur 1 Server, d.h. alles auf dem Terminalserver, wie nachfolgend geplant:
- BE in einem Ordner auf dem Terminalserver
- Original-FE in einem Ordner auf dem Terminalserver
- für jeden User eine Kopie des FE auf dem Terminalserver
- Änderung des Origninal-FE (bzw. der BE) über meinen "Entwickler"-TS-Client (dafür hab´ ich auch
Access (bzw. Office) direkt auf dem TerminalServer installiert).
- Auf den sonstigen TS-Clients (Runtime) hab ich eine Verknüpfung zum jeweiligen FE auf dem TerminalServer
ok- BE in einem Ordner auf dem Terminalserver
- Original-FE in einem Ordner auf dem Terminalserver
- für jeden User eine Kopie des FE auf dem Terminalserver
- Änderung des Origninal-FE (bzw. der BE) über meinen "Entwickler"-TS-Client (dafür hab´ ich auch
Access (bzw. Office) direkt auf dem TerminalServer installiert).
- Auf den sonstigen TS-Clients (Runtime) hab ich eine Verknüpfung zum jeweiligen FE auf dem TerminalServer
Worauf ich hinaus wollte, wenn ich jetzt BE, Original-FE und FEs für TS-Clients auf dem Terminalserver (d.h. 1TS-Client
für Access-Entwicklung/Änderung und restl. TS-Clients DB als Runtime) habe muss ich
Var1 ) zumindest 1x Access in der Vollversion UND 1x Access Runtime auf dem Server installieren und dann auf meinen sonstigen
TS-Clients die entspr. Verknüpfung des zugeordneten FEs ohne den Paramter /runtime verwenden oder
der Parameter /Runtime ist zum Testen und nicht sinnvoll für den live Betrieb, also vergiss diesen Parameter für die Clients.für Access-Entwicklung/Änderung und restl. TS-Clients DB als Runtime) habe muss ich
Var1 ) zumindest 1x Access in der Vollversion UND 1x Access Runtime auf dem Server installieren und dann auf meinen sonstigen
TS-Clients die entspr. Verknüpfung des zugeordneten FEs ohne den Paramter /runtime verwenden oder
Var 2) zumindest 1x Access in der Vollversion auf dem Server installieren und dann auf meinen sonstigen TS-Clients die entspr.
Verknüpfung des zugeordneten FEs MIT dem Parameter /Runtime verwenden (wenn ich den FE auf meinen sonstigen Clients ohne
/Runtime starte würde ich ja wahrscheinlich doch für jeden TS-Client eine Lizenz benötigen, oder)
auch mit dem Parameter /Runtime nutzt du die Vollversion = LizenzVerknüpfung des zugeordneten FEs MIT dem Parameter /Runtime verwenden (wenn ich den FE auf meinen sonstigen Clients ohne
/Runtime starte würde ich ja wahrscheinlich doch für jeden TS-Client eine Lizenz benötigen, oder)
Var 3) muss ich 2 Rechner verwenden? Access gar nicht auf dem Terminalserver sondern nur die Access Runtime und Access
Vollversion auf einem anderen Rechner installieren (auf dem ich dann die Änderungen vornehme)
ich würde das so machen, das wäre die sichere VersionVollversion auf einem anderen Rechner installieren (auf dem ich dann die Änderungen vornehme)
> PS: Ausblenden Ribbon
> SendKeysAPI "{^F1}"
Hier erhalte ich beim debuggen noch immer den Fehler "Sub oder Function nicht definiert"
Gibt´s hier auch noch eine Deklaration?
muss ich mal nachsehen, falls nötig> SendKeysAPI "{^F1}"
Hier erhalte ich beim debuggen noch immer den Fehler "Sub oder Function nicht definiert"
Gibt´s hier auch noch eine Deklaration?
Folgende Anweisung habe ich für Access 2010 gefunden --> blendet das Ribbon aus
CommandBars.ExecuteMso "MinimizeRibbon"
CommandBars.ExecuteMso "MinimizeRibbon"
gut, dann nutze doch dieses Kommando
Grüße aus Rostock
Wolfgang
(Netwolf)