Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

aus DB externe DB aufrufen

Begonnen von uwe01, August 14, 2011, 15:46:32

⏪ vorheriges - nächstes ⏩

uwe01

Hallo,

Ich möchte gerne aus einer bestehenden DB eine andere DB über eine Befehlsschaltfläche öffnen. Habe mir schon eine Schaltfläche erstellt doch beim Click erhalte ich die Meldung ungültige Prozeduraufruf oder ungültiges Argument.
die Ereignisprozedur bei Click lautet

Private Sub DB_Compex_Spuren_öffnen_Click()
On Error GoTo Err_DB_Compex_Spuren_öffnen_Click

    Dim stAppName As String

    stAppName = "H:\FP Manager\Spuren _Comp.mdb"
    Call Shell(stAppName, 1)

Exit_DB_Compex_Spuren_öffnen_Click:
    Exit Sub

Err_DB_Compex_Spuren_öffnen_Click:
    MsgBox Err.Description
    Resume Exit_DB_Compex_Spuren_öffnen_Click
   
End Sub

Hat da einer eine Idee warum es nicht geht.

Ps. Beide DB liegen im selben Ordner und auf gleichem Laufwerk

Uwe01
Gruß Uwe01
Win 10, Access 2002/2013
Bitte um Verständliche Antworten !

DF6GL

Hallo,
versuch zunächst(im Fall von A2003):

stAppName = """%ProgramFiles%\Microsoft Office\Office11\MsAccess.exe"" ""H:\FP Manager\Spuren _Comp.mdb"""


wenn das nicht hilft, benutze Shellexecute, um die DB zu starten..

http://dbwiki.net/wiki/VBA_Tipp:_Anwendung_mit_ShellExecute_starten

uwe01

ist ja schon ein Anfang, jetzt bekomme ich die Meldung ,,Datei nicht gefunden". Muss ich da nicht  Office 2003 angeben und nicht Office 11.  Und mit dem link weiß ich nicht richtig was anzufangen muss ich das dann als Ereignisprozedur schreiben. Die Seite ist ja nicht schlecht werde da mal einwenig rum stöbern.

Gruß Uwe01
Win 10, Access 2002/2013
Bitte um Verständliche Antworten !

database

#3
Hallo uwe01

ZitatMuss ich da nicht  Office 2003 angeben und nicht Office 11.
NEIN, Die Installation des Office 2003 - Pakets hat im Verzeichnis C:\Programme (Standard) einen Verzeichnisbaum erstellt in dem das Unterverzeichnis Office11 (steht für die installierte Version des MS-Office-Pakets)
unter anderem auch die Datei MSACCESS.EXE enthält.
In der Systemvariablen %ProgramFiles% ist der genaue Pfad zu den Iínstallierten Programmen in deinem System gespeichert und wird bei der Gelegenheit abgerufen.

Der Fehler "Datei nicht gefunden" KÖNNTE m.E. eher daher rühren, dass sich die Datei Spuren_Comp.mdb NICHT am angegebenen Speicherort befindet!
Suche mal die Datei und KOPIERE sie zu Testzwecken in ein Verzeichnis 'TEST' welches du direkt unter C:\ erstellst.

Danach versuche den Code von Franz wie folgt abgewandelt zu verwenden um die Funktionalität des Aufrufes zu testen:

stAppName = """%ProgramFiles%\Microsoft Office\Office11\MsAccess.exe"" ""C:\Test\Spuren _Comp.mdb"""


Zur der Sache mit ShellExecute:

Die Funktion stellt eine s.g. API Funktion dar, die du in einem Standardmodul zur allgemeinen Verwendung unterbringen KANNST.
Erzeuge dazu einfach ein Modul und speichere dieses mal unter einem beliebigen Namen.
Dann kopierst du folgenden Code da rein:


Option Compare Database
Option Explicit

Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _
 ByVal lpParameters As String, ByVal lpDirectory As String, _
 ByVal nshowcmd As Long) As Long

Public Const SW_HIDE = 0                  ' Versteckt öffnen
Public Const SW_MAXIMIZE = 3              ' Maximiert öffnen
Public Const SW_MINIMIZE = 6              ' Minimiert öffnen
Public Const SW_NORMAL = 1
Public Const SW_RESTORE = 9
Public Const SW_SHOWMAXIMIZED = 3
Public Const SW_SHOWMINIMIZED = 2
Public Const SW_SHOWMINNOACTIVE = 7
Public Const SW_SHOWNOACTIVATE = 4


die Zeilen ...  Option Compare Database   und
                    Option Explicit

.... sollten bereits im Modul vorhanden sein, wenn du es anlegst bzw. öffnest.

Im Formular, von dem aus du die fremde DB aufrufen willst schreibst du ins Click-Ereignis eines Button ...


Private Sub DeinButton_Click()

    Call ShellExecute(Me.hWnd, "open", _
                  "C:\Test\TestDatenBank.mdb", "", _
                  "", SW_NORMAL)

End Sub


Beachte bitte, dass der Dateiname und der Pfad dorthin DEINEN Gegebenheiten angepasst werden MUSS!

HTH

uwe01

Ich danke euch beiden für die Prompte antworten. Habe das Problem gelöst, in dem ich eine Word befehlsschaltfläsche genommen habe und diese dann auf die andere BD verwiesen habe siehe VBA Code
Private Sub Compex_Spuren_Click()
On Error GoTo Err_Compex_Spuren_Click

    Dim oApp As Object

    Set oApp = CreateObject("H:\FP Manager\Spuren _Comp.mdb")
    oApp.Visible = True

Exit_Compex_Spuren_Click:
    Exit Sub

Err_Compex_Spuren_Click:
    MsgBox Err.Description
    Resume Exit_Compex_Spuren_Click
   
End Sub

Jetzt stellt sich mir ein anderes Problem. Wenn ich die DB starte möchte ich gerne dass sie gleich in ein bestimmtes Formular startet ohne erst ein Acces Fenster zu öffnen. Geht das? Müsste man doch glaub ich über Makro hinbekommen.
Gruß Uwe01
Win 10, Access 2002/2013
Bitte um Verständliche Antworten !

database

Hallo,

ZitatGeht das? Müsste man doch glaub ich ...
Makro = Pfui Deibl!   :D ;) ;D

Gehe bei angezeigtem Datenbankfenster der zu öffnenden DB (H:\FP Manager\Spuren _Comp.mdb) in der Menüleiste auf Extras ...  Start ...

Im angezeigten Assistentenfenster kannst du nun die Startoptionen deiner Datenbank bestimmen.
So z.B. auch unter 'Formular/Seite anzeigen:' ein Formular auswählen, dass beim Datenbankstart automatisch geöffnet werden soll.

HTH

uwe01

Danke
Habe einfach das eröffnungs Fenster auf ganz klein gezogen, und hinter dem Formular Fenster gesetzt geht auch so.
Gruß Uwe01
Win 10, Access 2002/2013
Bitte um Verständliche Antworten !

database

Hallo,

wenn du meinen Tipp befolgst und dazu noch das Häkchen bei 'Daténbankfenster anzeigen' wegnimmst dann startet Access und zeigt sofort das ausgewählte Formular an, das Datenbankfenster (die Elemente der Datenbank) wird nicht agezeigt.
Access mit ausgeblendetem Applikationsfenster zu starten geht natürlich auch ... da solltest du aber schon GENAU Wissen was du tust!
Lies dazu den folgenden Artikel GANZ GENAU!

http://support.microsoft.com/kb/510049/de

Ansonsten ... schönes WE!