PDA

Vollständige Version anzeigen : aus db weitere db per code öffnen????


Hurricane300
07.01.2002, 11:34
hallo an alle,

möchte in einer geöffneten datenbank benutzer und passwort abfragen bzw. eingeben, dann mit den beiden angaben eine weitere datenbank die mit mdw gesichert ist öffnen und schlußendlich die erste datenbank schließen.

gibt zwar schon viele postings, habe es aber nicht hinbekommen...

kennt wer einen funktionstüchtigen code, den ich aus dem formular mit übergabe der beiden angaben (name & passwort) ansteuern kann, so dass es wie beschrieben abläuft ?????


danke im voraus


vg


hurricane

Sascha Trowitzsch
07.01.2002, 15:58
Schau mal hier:

<a href="http://www.trigeminal.com/utility.asp?1031" target="_blank">http://www.trigeminal.com/utility.asp?1031</a>

und lade dir das TSI-SOON-Util runter. Es ist ein Code-Beispiel mit dabei.

Das ist, soweit ich weiß, die einzige Möglichkeit, eine andere DB in der gleichen Sitzung zu starten, ohne Access zu schließen.

Ciao, Sascha

Hurricane300
07.01.2002, 21:04
ne echt???

keine andere möglichkeit, z.b. reiner code?

wie verhält sich dann die datenbank bei weitergabe, dann muss ich ja dieses tool mit geben oder???


vg

hurricane

AWSW
07.01.2002, 21:15
Hallo Hurricane300,
bin mir nicht sicher, ob Dir das hilft, da ich es nur kurz überflogen habe, aber auf <a href="http://www.donkarl.com" target="_blank">http://www.donkarl.com</a> steht glaube ich was dazu:
<hr>
6.19 DATENBANK-KENNWORT ÜBERGEBEN

P r o b l e m
Du möchtest eine MDB in einer neuen Access-Instanz öffnen und dabei das Datenbank-Kennwort mit übergeben, damit es nicht extra eingegeben werden muss.

L ö s u n g e n
Anm. Für das DB-Kennwort gibt es - anders als für Benutzername und Passwort - keine Möglichkeit der Übergabe mittels Befehlszeilenparameter in einer Verknüpfung.

Will man eine MDB aus einer anderen MDB per Code öffnen, kann man das Kennwort (bis inkl. Version A00) offiziell nur beim unsichtbaren Öffnen per OpenDatabase übergeben. Also in der Art:

DBEngine.Workspaces(0).OpenDatabase "C:\Foo\Meine.mdb", False, False, ";PWD=Kennwort")

Was das sichtbare Öffnen in einer neuen Access-Instanz per Code betrifft, gibt es in AX einen neuen Parameter für das Kennwort bei der Methode OpenCurrentDatabase. z.B.

Dim appAcc As Access.Application
Set appAcc = CreateObject("Access.Application")
appAcc.OpenCurrentDatabase, "C:\Foo\Meine.mdb", False, "Kennwort"

Für Versionen vor AX gibt es Günther Ritters Trick:
(von der CD von <a href="http://www.access-hilfe.de)" target="_blank">http://www.access-hilfe.de)</a>

Private Sub cmdOpen_Click()
Dim db As DAO.Database, strDb As String
Dim acc As New Access.Application 'weitere Access-Instanz erstellen
Const strPWD As String = ";pwd=123456"
strDb = "C:\DbMitKennwort.mdb"
'Datenbank mit Kennwort öffnen
Set db = acc.DBEngine.OpenDatabase(strDb, False, False, strPWD)
acc.OpenCurrentDatabase strDb
acc.RunCommand acCmdAppRestore 'erforderlich um Applikation nachfolgend zu maximieren
acc.RunCommand acCmdAppMaximize
acc.DoCmd.Maximize
db.Close
End Sub
<hr>

Hurricane300
07.01.2002, 21:31
teste ich gleich mal...

vg

hurricane

Sascha Trowitzsch
07.01.2002, 22:31
Ja, so geht das natürlich.

Ich war davon ausgegangen, dass keine neue Instanz von Access gestartet werden sollte. Und das geht nur mit dem Trigeminal-Tool, das dann tatsächlich mit weitergegeben werden muss.
(...Und darf; es ist lediglich die kleine tsisoon.dll ins Systemverzeichnis zu kopieren und mit regsvr32 zu registrieren.)

Ciao, Sascha

Hurricane300
07.01.2002, 23:22
@Sascha Trowitzsch und andere...

es muss das tool und (zumindest bei mir) noch vb runtimes dann mitgegeben werden...

würde gerne ohne auskommen...

tool klappt wunderbar, nur stürzt nach 2-3 versuchen bzw. wechseln access ab (xp), woran kann das liegen???

kriege selbst den code mit neuer instanz nicht zum laufen, passiert nichts...

hilfe... :confused:


vg

hurricane

Hurricane300
07.01.2002, 23:41
zusatz:

...mit dem tool kriege ich zwar eine normale db zum öffnen (abgesehen von teilw. abstürzen von access) nur die werte zur mdw bzw. generell die /wrkgrp option kriege ich nich übergeben...

geht das mit dem tool überhaupt??


vg

hurricane

Hurricane300
08.01.2002, 13:55
hat jemand noch eine idee?????

Sascha Trowitzsch
08.01.2002, 15:58
Dann mach's doch einfach über SHELL:

Dim strShell as String, i as long

strShell =Chr(34) & "C:\Programme\Microsoft Office\Office\msaccess.exe" & Chr(34)
strShell = strShell & " /wrkgrp "
strShell = strShell & Chr(34) & "C:\Programme\Gemeinsame Dateien\Meine.mdw" & Chr(34)
strShell = strShell & " /user " & strUser
strShell = strShell & " /pwd " & strPasswort

i= Shell(strShell, vbNormalFocus)
DoCmd.Quit

strUser ist die Stringvariable des Nutzernamens aus deinem Dialogfeld, strPasswort die mit dem Passwort.

Ciao, Sascha

PS: Ob TSIsoon auch mit XP funktioniert weiß ich nicht.

Hurricane300
08.01.2002, 19:06
ok danke, klappt soweit wunderbar, bis auf dass es eine zweite access instanz kurzzeitig gibt, bin aber mit zufrieden, vielen vielen dank...

kannst du mir gerade noch die parameter für mdw's bei TSIsoon geben?? dann hätte ich noch eine 2te alternative...


vg

hurricane