PDA

Vollständige Version anzeigen : Blutiger Anfänger


Katta
13.09.2001, 09:34
Hallo Ihr,
ich bin blutiger Anfänger mit VBA Programmierung in Excel und hab vielleicht 'ne ganz einfache Frage: Wie öffnet man von Excel eine Access-Datenbank?
Wäre sehr dankbar für hilfreiche Tipps!
Bis bald

Katta

<p align="left"><font size="1" face="Century Gothic"><font color="#000000">Moderatorenanmerkung: die Überarbeitung dieses Beitrages ist im Zuge der Arbeiten zu sehen, die durch den Wechsel der Forensoftware zum 01.01.2003 verursacht wurden.

Es wurde in diesem Beitrag ein Link entfernt.</font>

Stema
13.09.2001, 12:31
Hallo Katta,

als erstes mußt Du den Verweis "Microsoft Access 8.0" und "Microsoft DAO 3.51" einbinden (im VBA-Modus ich glaube über Tools (Extras?)).
Dann im Code:

Dim DB As Database
Dim R As Recordset

Set DB = OpenDatabase("c:\Pfad\Datenbank.mdb")
Set R = DB.OpenRecordset("DeineTabelleInDerDB")
oder
Set R = DB.OpenRecordset("SELECT * FROM DeineTabelleInDerDB WHERE DeinFeldInDerTabelle = 'Hallo'")




------------------

Gruß Stema
------------------

Katta
14.09.2001, 06:55
Vielen Dank! Aber irgendwie funktioniert das trotzdem nicht. Ich bekomme zwar keine Fehlermeldungen, aber passieren tut nichts. Woran kann das liegen????

Gruß, Katta

Stema
14.09.2001, 13:11
Hallo Katta,

dann poste uns mal Deinen Code, damit wir schauen können, was Du überhaupt machst und schreibe was genau Du machen möchtest. Welche Tabellen und Felder der DB usw. Und vor allem, was nicht funktioniert. Sonst stochern wir nur planlos im Dunkeln.

------------------

Gruß Stema
------------------

Katta
16.09.2001, 13:39
Hallo!
Tut mir leid, dass ich mich jetzt erst melde, aber konnte ein paar Tage nicht online gehen. Also, ich habe einen Button mit der Prozedur, die Du mir geschrieben hast, also:

Dim DB as Database
Set DB=OpenDatabase ("Meine Datenbank")...

Es soll ganz einfach eine Access Datenbank geöffnet werden, also das dort definierte Starformular soll sich sofort öffnen, um dort dann Einträge vornehmen zu können.
bei Betätigung des Buttons passiert dann gar nichts-keine Fehlermeldung geschweige ein Öffnen der Datenbank. Hab ich vielleicht irgendeine Kleinigkeit vergessen????

Gruß, Katta

jinx
16.09.2001, 14:38
<font size="2" face="Century Gothic">Moin, Katta,

Welche Versionen von Excel und Access nutzt Du?
Sind die Verweise unter Excel bzw. Access erstellt worden?
Der "Button" ruft idR nur das Makro auf, insofern muss ihm (z.B. per Doppelklick im Entwurfmodus) in dem sich öffnenden Fenster mitgeteilt werden.

IMHO sollte sich ein "blutiger Anfänger" erst einmal einen Überbklick über die Möglichkeiten der VBA-Programmierung verschaffen. Wenn man die einfachen Strukturen erkannt hat, treten halt zum einen weniger Fehler bei "anspruchsvollen" Projekten auf, zum anderen erkennt man mögliche Fehler im Ablauf....

Deine "einfache Frage" lässt sich - wie Du siehst - nicht so auf die Schnelle beantworten; vor allem nicht, wenn einige (nicht ganz unwichtige) Informationen fehlen....

<font size="1" face="Century Gothic">Moderatorenanmerkung: die Überarbeitung dieses Beitrages ist im Zuge der Arbeiten zu sehen, die durch den Wechsel der Forensoftware zum 01.01.2003 verursacht wurden.

Es wurde in diesem Beitrag die Signatur angepasst...</font>

jinx
16.09.2001, 16:15
<font size="2" face="Century Gothic">Moin,

ich nochmal. Auf einem Spaziergang fiel mir eben dieser Teil Deines Schreibens ein, den ich dann doch gerne interpretiert haben möchte:Es soll ganz einfach eine Access Datenbank geöffnet werden, also das dort definierte Starformular soll sich sofort öffnen, um dort dann Einträge vornehmen zu können.Verstehe ich das richtig, dass Du aus Excel eine Access-Datenbank öffnen willst, um dort (in der Access-Datenbank) Eintragungen vorzunehmen, Excel also quasi als Steuerzentrale von Office einsetzen?

Die Werbung in vergangenen Zeiten pflegte zu sagen: Wir wissen nicht, was dieser freundliche Herr empfiehlt...
Bisher waren mir überwiegend Lösungen bekannt, in denen in Excel Daten aus Access aufbereitet wurden - man lernt halt nicht aus...

<font size="1" face="Century Gothic">Moderatorenanmerkung: die Überarbeitung dieses Beitrages ist im Zuge der Arbeiten zu sehen, die durch den Wechsel der Forensoftware zum 01.01.2003 verursacht wurden.

Es wurde in diesem Beitrag die Signatur angepasst...</font>

Katta
17.09.2001, 06:13
Ja, das hast Du ganz richtig verstanden! Excel soll quasi als Start dienen-von dort aus soll man die Möglichkeit haben, verschiedene Access-Datenbanken zu öffnen, um dort Einträge vornehmen zu können!
Frag jetzt nicht nach dem Warum-es soll ganz einfach so gemacht werden!
Aber wie Du sagtest, werde ich mich erstmal mit den Strukturen beschäftigen. Ich dachte, es gibt da einfache Befehle, wie das zu tun ist, aber scheint wohl komplizierter zu sein, als ich dachte!
Also, einen schönen Tag,

Katta

jinx
17.09.2001, 06:55
<font size="2" face="Century Gothic">Moin, Katta,

kompliziert wird´s eigentlich immer nur dann, wenn Fragen gestellt werden und auf Nachfragen keine oder nur ausweichende Antworten gegeben werden.

Nein, es ist nicht zu kompliziert; aber sowohl Stema als auch ich haben Fragen gestellt, die nicht von Dir beantwortet wurden.

Ich spreche jetzt nur für mich: Hilfe kann ich nur generell leisten (dann würde ich mich wohl als Buchautor bewerben) oder aber gezielt auf hinreichend beschriebene Probleme.

Ich kenne Deinen Kenntnisstand in VBA für Office (sind z.B. Kenntnisse in Access vorhanden?) nicht, weiß also nicht, ob ich bei "Adam und Eva" anfangen muss, ich kenne Deine benutzten Versionen nicht - kurz: ich verdiene mein Geld nicht als Hellseher auf Jahrmärkten.
Ich denke, dass es da anderen Teilnehmern genauso geht....

Gib´ uns Informationen - dann können und werden wir auch helfen.

P.S.: Der Tipp hinsichtlich des Erlernens soll hinweisen auf: Grundlagen legen und darauf aufbauen.
Und dann wird noch eine Menge Arbeit auf Dich zukommen (erster Beitrag: Wie öffnet man von Excel eine Access-Datenbank?; letzter Eintrag: verschiedene Access-Datenbanken)...

<font size="1" face="Century Gothic">Moderatorenanmerkung: die Überarbeitung dieses Beitrages ist im Zuge der Arbeiten zu sehen, die durch den Wechsel der Forensoftware zum 01.01.2003 verursacht wurden.

Es wurde in diesem Beitrag die Signatur angepasst...</font>

Katta
17.09.2001, 07:48
Es existieren verschiedene Buttons-und jeder einzelne dieser Buttons soll eine andere Access-Datenbank öffnen-soviel zu meinen vielleicht widersprüchlichen Angaben!
Desweiteren arbeite ich mit Excel 97 und Access 97. Die Verweise, die Stema die mir genannt hat, hab ich unter Excel so eingebaut!

Katta
18.09.2001, 06:26
Guten Morgen,
tut mir leid, wenn ich irgendwas falsch gemacht habe oder nicht ausreichend geantwortet habe! Ich hab halt nun mal nicht soviel Erfahrungen mit den ganzen Sachen.
Desweiteren hab ich zwecks meines Problems schon Bücher gewälzt, wo der gleiche Code drin stand, den Stema mir gegeben hat. Falls irgendjemand weiß, worn es liegen kann, würd ich mich freuen, wenn nicht, werd ich weiter probieren und hoffen!
Einen schönen tag @all!

Gruß, Katta

StrgAltEntf
18.09.2001, 09:44
Moin Katta,

ich glaube erkannt zu haben, wo Dein Problem liegt ... :-)

Mit Set DB = OpenDatabase("c:\Pfad\Datenbank.mdb") öffnest Du zwar die Datenbank, allerdings nicht so, wie Du es wohl gerne möchtest. Du erzeugst in diesem Moment nur einen Verweis auf die DB und könntest sie dann über diesen Verweis steuern - Objekte und Daten bearbeiten, löschen, erstellen ... (z.B. DB.OpenRecordset("Name") um eine Tabelle oder Abfrage zu öffnen oder Daten mit SQL abzuholen (DB.OpenRecordset("SELECT * FROM Name WHERE ...")) Mit diesen Sachen sollte sich allerdings noch kein blutiger Anfänger rumschlagen - Du solltest erstmal mit VBA laufen lernen, bevor Du rennen kannst ;-)

Das was Du vermutlich benötigst ist der Shell-Befehl
Shell "C:\mso97\Office\msaccess.exe C:\Dokumente\test.mdb"
Da der Shell-Befehl nicht so "intelligent" ist und anhand der Dateiendung *.mdb die Datenbank öffnen kann, musst Du auch den Pfad der dazugehörigen Anwendung (msaccess.exe) mit angeben.

Noch'n Tipp ...
Du schreibst, dass Du mehrere unterschiedliche Datenbanken auf diesem Weg öffnen willst. Da der Pfad zur Anwendung sich mit ziemlicher Sicherheit nicht allzuoft ändern wird, würde ich eine öffentliche Konstante deklarieren und diese dann im Programmcode verwenden.

<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet"><pre><span class="TOKEN">Public</span> <span class="TOKEN">Const</span> PROGPFAD <span class="TOKEN">As</span> <span class="TOKEN">String</span> = &quot;C:\mso97\Office\msaccess.exe&quot;
<span class="TOKEN">Sub</span> test()
Shell PROGPFAD &amp; &quot; C:\Dokumente\test.mdb&quot;
<span class="TOKEN">End</span> <span class="TOKEN">Sub</span></pre></div>
Code eingefügt mit dem MOF Code Converter (http://www.ms-office-forum.net/forum/codeconverter.php)

Das hat dann den Vorteil, dass, wenn eine Anwendung mal woanders installiert wird, Du nur diese Konstante ändern musst und nicht in jede Prozedur rein musst ... :-)

Ich hoffe es hilft etwas weiter ... :-)

Schönen Gruss
<font size="2">Schorsch Dabbeljuh</font size>

<hr width="50%" align="left"><font size="3">It's not a bug, it's a feature ...</font size>
<hr width="50%" align="left">

<font size="1" face="Century Gothic">Moderatorenanmerkung: die Überarbeitung dieses Beitrages ist im Zuge der Arbeiten zu sehen, die durch den Wechsel der Forensoftware zum 01.01.2003 verursacht wurden.

Es wurde in diesem Beitrag der Code für dieses Forum angepasst.<font>

Katta
18.09.2001, 12:23
VIELEN DANK! Das war genau das, was ich brauchte! Und nochmal Entschuldigung, falls ich mich unklar ausgedrückt habe!!!!
DANKE!

Gruß, Katta