PDA

Vollständige Version anzeigen : mdb Datei in exe konvertieren


knubbie!
26.09.2005, 09:37
Hallo Programmier-Profis,
ich vermute, dass diese Frage eingentlich nicht 100%ig in dieses Forum passt, weiß aber, dass sich hier ein paar echte Programmier-Freaks tummeln, die mir bestimmt weiterhlefen können (zumindest mit Links zu anderen Sites).

Ich würde das Frontend meiner Access-DB gerne in ein exe-Datei konvertieren.
Alternativ wäre ich auch schon zufrieden, wenn ich eine kleine exe-Datei erstellen könnte, die dann meine Acccess-DB startet. Ich würde dann die Accass-DB so konfigureiren, dass sie nur über diese exe-Datei geöffnet werden kann.

Kann mir jemand einen Tip, wo ich die erforderlichen Infos (für Nichtprogrammierer-Profis) herbekomme?

stpimi
26.09.2005, 10:34
Diese FAQ (http://www.donkarl.com/index.htm?/FAQ/FAQ1Grundlagen.htm) (klick mich) sagt Dir mehr zu diesem Thema.

knubbie!
26.09.2005, 10:51
Hi stpimi,
die site kannte ich schon. Hat mir auch schon öfters weitergeholfen.
Bezüglich meiner hier beschriebenen Sache konnte ich da aber nichts finden.
Kannst du mir sagen, wo genau ich die Infos finde (vielleicht ein direkter Link zum Thema)?

Daniel B.
26.09.2005, 11:18
Mal sehen...:

1.3 Exe aus einer MDB erzeugen

Problem

Du möchtest eine mdb weitergeben und der Anwender besitzt kein Access.

Lösung

Ausführbare Datei aus einer mdb erzeugen geht nicht.
Datenbankdateien von Access (egal ob mdb, mde, mda, mdw, adp, ade) brauchen immer eine Version von Access, d.h. der msaccess.exe, um ausgeführt werden zu können.

Für die Weitergabe an Nicht-Access-Besitzer gibt es bis zur Version 2002/XP eine spezielle Access- bzw. Office-Version für Entwickler, die getrennt zu kaufen ist. Für die Version 2003 gibt es keine spezielle Office-Version mehr sondern ein Paket namens "Visual Studio Tools for the Microsoft Office System". Damit erwirbt man von MS das Recht der unbegrenzten Weitergabe seiner mdbs mit der dazugehörigen Laufzeitversion (Runtime).

Die Runtime ist eine modifizierte Version von Access, die für das Laufen der Datenbanken sorgt, in der aber z.B. keine Entwurfsansichten und keine Standard-Menüleisten verfügbar sind. (s.a. http://support.microsoft.com/?kbid=842004) Wenn die Runtime-Dateien mit den von MS zur Verfügung gestellten Assistenten erstellt werden, ist die Installation der Runtime-Versionen auf den Zielrechnern vielfach fehlerhaft. Dabei geht es um Versionskonflikte versch. DLLs, Konflikte mit bestehenden Access-Installationen am Zielrechner u.a.m. Wegen dieser Probleme, die bei Verwendung des Setup-Erstellers von MS auftreten, verwenden viele Entwickler zusätzliche externe Tools s. Alternative Setup-Programme.

Bezeichnungen der Entwickler-Versionen:
A2 --> "Access Developer's Toolkit" (ADT) für A2
A95 --> "Access Developer's Toolkit" (ADT) für A95
A97 --> "Office Developer's Edition" (ODE)
A00 --> "Microsoft Office Developer" (MOD)
AX --> "Office XP Developer"
A03 --> "Access 2003 Developer Extensions" (enthalten in den "Visual Studio Tools for the Microsoft Office System")

Ältere Versionen dieser Pakete sind meist nur noch im Second-Hand-Bereich zu bekommen. Manche Leute sind z.B. auf der Suche nach der ODE97.

Für mich war das EIN Klick...

Gruß,
Daniel

Nouba
26.09.2005, 11:35
Du kannst Dir zwar in einer beliebigen Programmiersprache ein Startprogramm (kann auch eine Access-Db sein) oder Startscript erstellen, aber ein ausführbare Datei läßt sich aus der Datenbank nicht erstellen. Während des Startens der DB kann man Dinge (Registry, eine Ini-Datei, Prozesse, u.v.a.m.) prüfen, die für das Starten notwendig sind.

Alternativ kann man auch das Frontend komplett in einer anderen Programmiersprache erstellen - dann besteht aber nur noch Zugriff auf Tabellen und Abfragen der DB.

knubbie!
27.09.2005, 07:24
Danke für die Infos!
da alle user der Access-DB Office-Pro ihren Rechnern installiert haben, entstehen für mich die hier angespróchenen Probleme nicht.

Ich werde wohl jetzt ´ne kleine Exe-Datei von nem Kumpel erstellen lassen (ich lgaub der macht das in CC+ oder so ähnlich), über die die Access-DB gstartet wird.

Seine Erklärung:
Beim Ausführen dieser exe wird eine Art Coockie auf dem PC abgelegt, der nur so lange existiert wie die db gestartet ist. In der Access-DB wird ne kleine Funktion eingebaut die bewirkt, dass die Access-DB nur gestartet werden kann, wenn der 'Cookie' auf dem PC ist.

Mal sehn, ob er´s hinberkommt.
Werde dann wieder berichten.

kama
27.09.2005, 08:59
Dafür braucht man aber kein c Programm bemühen.
Starte Deine db über eine Vorgeschalte DB die ein autoexec Makro enthält das folgende Function aufruft
<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet"><pre><span class="TOKEN">Option</span> <span class="TOKEN">Compare</span> <span class="TOKEN">Database</span>
<span class="TOKEN">Option</span> <span class="TOKEN">Explicit</span>
<span class="TOKEN">Public</span> <span class="TOKEN">Declare</span> <span class="TOKEN">Function</span> ShellExecute <span class="TOKEN">Lib</span> &quot;shell32.dll&quot; <span class="TOKEN">Alias</span> &quot;ShellExecuteA&quot; _
(<span class="TOKEN">ByVal</span> hWnd <span class="TOKEN">As</span> Long, <span class="TOKEN">ByVal</span> lpOperation <span class="TOKEN">As</span> String, <span class="TOKEN">ByVal</span> lpFile <span class="TOKEN">As</span> String, _
<span class="TOKEN">ByVal</span> lpParameters <span class="TOKEN">As</span> String, <span class="TOKEN">ByVal</span> lpDirectory <span class="TOKEN">As</span> String, _
<span class="TOKEN">ByVal</span> nshowcmd <span class="TOKEN">As</span> <span class="TOKEN">Long</span>) <span class="TOKEN">As</span> <span class="TOKEN">Long</span>
&nbsp;
<span class="TOKEN">Public</span> <span class="TOKEN">Const</span> SW_HIDE = 0 <span class="REM">' Versteckt &ouml;ffnen</span>
<span class="TOKEN">Public</span> <span class="TOKEN">Const</span> SW_MAXIMIZE = 3 <span class="REM">' Maximiert &ouml;ffnen</span>
<span class="TOKEN">Public</span> <span class="TOKEN">Const</span> SW_MINIMIZE = 6 <span class="REM">' Minimiert &ouml;ffnen</span>
<span class="TOKEN">Public</span> <span class="TOKEN">Const</span> SW_NORMAL = 1
<span class="TOKEN">Public</span> <span class="TOKEN">Const</span> SW_RESTORE = 9
<span class="TOKEN">Public</span> <span class="TOKEN">Const</span> SW_SHOWMAXIMIZED = 3
<span class="TOKEN">Public</span> <span class="TOKEN">Const</span> SW_SHOWMINIMIZED = 2
<span class="TOKEN">Public</span> <span class="TOKEN">Const</span> SW_SHOWMINNOACTIVE = 7
<span class="TOKEN">Public</span> <span class="TOKEN">Const</span> SW_SHOWNOACTIVATE = 4
&nbsp;
&nbsp;
<span class="TOKEN">Public Function</span> cokie()
<span class="TOKEN">Open</span> &quot;c:\cokie.txt&quot; <span class="TOKEN">For</span> <span class="TOKEN">Output</span> <span class="TOKEN">As</span> #1
<span class="TOKEN">Write</span> #1, &quot;Hallo Welt&quot;
<span class="TOKEN">Close</span> #1
<span class="TOKEN">Call</span> ShellExecute(1, &quot;open&quot;, _
&quot;Deinlaufwerk:\Deimpafd\DeinezweiteDB.mdb&quot;, &quot;&quot;, _
&quot;&quot;, SW_NORMAL)
Quit
<span class="TOKEN">End</span> <span class="TOKEN">Function</span>
&nbsp;</pre></div>