Geschrieben von dudoof am 28.08.2004, 22:36

Datenbank nutzen ohne MS-Access??

Du hast bei Dir nur MS-Word auf dem Rechner und willst trotzdem gerne mit Access arbeiten?? Kein Ding,
mit VBA ist das Ruck zuck erledigt..Das geniale daran ist, das es aus allen!! Office-Anwendungen funktioniert, also auch aus Excel heraus..und das Grundgerüst ist überall gleich, darum braucht man sich auch nicht mit den Details auseinandersetzen...

1. Datenbank erstellen
-----------------------------

* Du startest Word (geht ab Word 97) und öffnest mit ALT + F11 den VBA-Editor.
* Dort gehst Du ins Menü Extras/Verweise und setzt einen Haken bei Microsoft DAQ 3.x Library
* Dann klickst Du im Linken Fenster doppelt auf den Eintrag ThisDocument. Und rechts daneben im Code-Fenster
fügst Du dann folgenden Code ein:

--------------- Sample ---------------
Option Explicit
Const PFAD As String = "C:\MeineDB"
Sub Datenbank_Neu()
Dim WS As Workspace
Dim DB As Database
Set WS = DBEngine.Workspaces(0)
Set DB = WS.CreateDatabase(PFAD, dbLangGeneral)
' Hier kommt die Tabellendefinition
Set DB = Nothing
Set WS = Nothing
End Sub
--------------- Sample ---------------

Wenn Du nun mit F5 den Code ausführst, hast Du auf Deinem Laufwerk C:\ eine Datenbank die MeineDB.mdb heisst.

Die DB ist natürlich noch leer, aber auch Tabellen einfügen ist kein Problem.
Lösch aber bevor Du weitermachst die erstellte DB wieder.

2. Tabellen und Felder einfügen
----------------------------------------

* Du nimmst wieder das obige Beispiel und da wo 'Hier kommt die Tabellendefinition steht, fügst Du folgenden
Code ein:

--------------- Sample ---------------
Dim TBL As TableDef
Dim FELD As Object
'Tabellen definieren
Set TBL = DB.CreateTableDef()
TBL.Name = "Telefonliste"
Set FELD = TBL.CreateField("Name", dbText, 30)
TBL.Fields.Append FELD
Set FELD = TBL.CreateField("Vorname", dbText, 30)
TBL.Fields.Append FELD
Set FELD = TBL.CreateField("Telefon", dbText, 20)
TBL.Fields.Append FELD
'Erstellen der Tabelle in der Datenbank
DB.TableDefs.Append TBL
'Hier kommt das einfügen von Datensätzen
--------------- Sample ---------------
Für weitere Felder fügst Du einfach neue Set FELD - Zeilen ein und speicherst die mit TBL.Fields.Append FELD.
Brauchst Du andere Datentypen, gibt hier ne kleine Übersicht über die wichtigsten (für mehr infos mal googlen nach DBEngine + Datentyp):
DB_BOOLEAN
DB_BYTE
DB_INTEGER
DB_LONG
DB_CURRENCY
DB_SINGLE
DB_DOUBLE
DB_DATE
DB_TEXT
DB_MEMO

Lass das ganze wieder mit F5 laufen und guck Dir die DB mal an, da gibts nun eine Tabelle mit drei Feldern.

Eine Tabelle ohne Inhalt is aber doof, also kommt da nun auch was rein..

3. Tabelle mit Datensätzen füllen
-----------------------------------------

* Gleiche Procedure, DB löschen,..letztes Beispiel nehmen und da wo 'Hier kommt das einfügen von Datensätzen
steht, folgendes einfügen:

--------------- Sample ---------------
Dim RS As Recordset
Set RS = DB.OpenRecordset("Telefonliste", dbOpenTable)
With RS
.AddNew
!Vorname = "Hein"
!Name = "Doof"
!Telefon = "01234/5678"
.Update
End With
Set RS = Nothing
--------------- Sample ---------------

Willst Du mehrere Daten einfügen, kannst Du das z.B. in einer Schleife machen:

* Wieder DB löschen nicht vergessen!
* und anstelle des Codes von grad eben nimmst nun diesen hier:

--------------- Sample ---------------
Dim RS As Recordset
Set RS = DB.OpenRecordset("Telefonliste", dbOpenTable)
With RS
Do
.AddNew
!Vorname = InputBox("Vorname:")
!Name = InputBox("Nachname:")
!Telefon = InputBox("Telefon:")
.Update
Loop Until MsgBox("Neuen Datensatz anlegen?", vbYesNo, "Neu..") = vbNo
End With
Set RS = Nothing
--------------- Sample ---------------

Das geht zwar auch eleganter, ist aber nur zum ausprobieren.
Wenn Du Dir nun in Word z.B. ein Symbol erstellst, mit dem Du mal eben eine Word-Tabelle
nach Access bringen willst oder Du nur schnell einen Eintrag in eine DB aus Word heraus machen
möchtest, nur zu....

Next week so god will kommt noch öffnen einer neuen DB, Abfragen und Verwalten der Datensätze...aber erstmal guggen
ob das überhaupt jemanden interessiert..
Aber ist schon geil, weil Du Dir damit die Kohle für Office-Professional sparst *gg*

Bewertung Anzahl
6
100,0 %
3 Bewertungen