Excel97 Datei nach Access97 konvertieren

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox


Excel-Version: 8.0 (Office 97)
nach unten

Betrifft: Excel97 Datei nach Access97 konvertieren
von: Stefan Teschendorff
Geschrieben am: 23.06.2002 - 17:30:08

Hallo an alle !
Ich habe folgendes Problem.
Ich habe in Excel97 eine Datei erstellt diese möchte ich nach Access97 konvertieren.
Als erstes habe ich in Excel97 mittels des ADD-IN-MANAGER die Funktion " AccessLinks-Add-In " aktiviert.
Jetzt steht mir unter "Daten", "Zu MS Access konvertieren ", zur Verfügung.
Beim Ausführen dieser Funktion heißt es " Bitte die Datei erst Speichern ".
OK, diesem Wunsch folge ich. Also ich Speicher die Datei unter einen Name z.B. " TEST.xls ".
Und wiederhole die Funktion "Zu MS Access konvertieren".
Wähle jetzt "neue Datenbank erstellen".
Und wähle die Schaltfläche "OK".
Es wird jetzt MS-Access geöffnet, und bekomme folgende Fehlermeldung.

Der Assistent kann auf die Inhalte der Datei 'C:\test.xls' nicht zugreifen.
Überprüfen Sie bitte, ob die Datei existiert und im richtigen Format vorliegt.

Habe jetzt nur noch die Möglichkeit auf "OK" zu klicken.
Befinde mich jetzt in MS-Access und eine Datenbank mit dem Namen "TEST" ist geöffnet.
Habe im Register "Tabelle" keine weiter Datei.
Ich kann jetzt Access einfach schließen. Es befindet sich jetzt eine Test.mdb
auf meine Rechner, aber es steht nichts drin.

In meine Excel Tabelle steht jetzt noch das meine Tabelle nach "c:\test.mdb" konvertiert wurde.
Was habe ich falsch gemacht ?

Ich bin mir der Funktion in Access bewußt, die es zuläßt eine Excel-Datei zu importieren.
Würde auch mittels STRG +C und STRG +V gehen. Aber ich möchte Access nicht anfassen, brauche aber eine MDB für das weiterführende Verfahren.

Über jede Hilfe würde ich mich sehr freuen.

Danke an alle im voraus.

CU Stefan

nach oben   nach unten

Re: Excel97 Datei nach Access97 konvertieren
von: Jutta Neu
Geschrieben am: 23.06.2002 - 17:49:14

Hallo Stefan,

ich meine Excel-Dateien direkt in Accesss über Datei >Externe Daten>Importieren bzw. verknüpfen geladen. Klappt wunderbar.
Vielleicht hilft dir das weiter.

Gruß
Jutta


nach oben   nach unten

Re: Excel97 Datei nach Access97 konvertieren
von: Stefan Teschendorff
Geschrieben am: 23.06.2002 - 18:04:39

Hallo Jutta,

es ist leider so das ich Access nicht anfassen will, ist später bei der Benutzung zu aufwendig.
Ich möchte eigentlich nur, mittels eines Makros, das mir Excel selbständig eine Access-Datei bastelt.
Die Access-Datei ist eigentlich nur eine Transportdatei und wird nicht in Access bearbeitet.

Aber dennoch danke für deine Hilfsbereitschaft.

CU Stefan


nach oben   nach unten

Re: Excel97 Datei nach Access97 konvertieren
von: Manfred B.
Geschrieben am: 23.06.2002 - 20:43:17

Folgendes Makro erzeugt eine Tabelle mit 37 Spalten und 10000 Zeilen , einfach An Deine Belange anpassen.

In Extras Verweise einen Haken vor: DAO 2.5/3.51 Compatibility Library setzen.
Vorgehensweise:
Einmal eine Access Datenbank anlegen und einmal die Tabelle aus Excel importieren.
Das Makro löscht dann die alte Tabelle und erzeugt eine neue


'Dateiname der Datenbank
Public Const Dateiname = "D:\Maschinenbelegung.mdb"
'Tabellenname in der Datenbank
Public Const Tabellenname = "Stunden"

Dim Datenbank As Database
Dim Datensatz As Recordset
Dim Tabelle As TableDef

'Tabelle löschen
Public Sub Tabelle_löschen()
'Datenbank zum Löschen öffnen
Set Datenbank = OpenDatabase(Dateiname)
'Tabelle löschen
Datenbank.TableDefs.Delete Tabellenname
'Datenbank schliessen
Datenbank.Close
Call Datenbank_und_Tabelle_erzeugen
End Sub

'Prüft, ob eine Tabelle in einer
'Datenbank bereits vorhanden ist
Public Function TableExists(Dateiname, MyTableName)
Dim i
'Prüfen, ob die Datenbank existiert
If Dir(Dateiname) = "" Then
TableExists = False
Exit Function
End If
'Datenbank öffnen
Set Datenbank = OpenDatabase(Dateiname)
TableExists = False
'alle Tabellen durchkaufen
For i = 0 To Datenbank.TableDefs.Count - 1
If Datenbank.TableDefs(i).Name = MyTableName Then
TableExists = True
Exit Function
End If
Next i
Datenbank.Close

End Function

'Erzeugen der Datenbank und Tabelle
Public Sub Datenbank_und_Tabelle_erzeugen()

Dim Feld1 As Field
Dim Feld2 As Field
Dim Feld3 As Field
Dim Feld4 As Field
Dim Feld5 As Field
Dim Feld6 As Field
Dim Feld7 As Field
Dim Feld8 As Field
Dim Feld9 As Field
Dim Feld10 As Field
Dim Feld11 As Field
Dim Feld12 As Field
Dim Feld13 As Field
Dim Feld14 As Field
Dim Feld15 As Field
Dim Feld16 As Field
Dim Feld17 As Field
Dim Feld18 As Field
Dim Feld19 As Field
Dim Feld20 As Field
Dim Feld21 As Field
Dim Feld22 As Field
Dim Feld23 As Field
Dim Feld24 As Field
Dim Feld25 As Field
Dim Feld26 As Field
Dim Feld27 As Field
Dim Feld28 As Field
Dim Feld29 As Field
Dim Feld30 As Field
Dim Feld31 As Field
Dim Feld32 As Field
Dim Feld33 As Field
Dim Feld34 As Field
Dim Feld35 As Field


'On Error Resume Next

'Prüfen, ob Datenbank bereits vorhanden
If Dir(Dateiname) = "" Then
'falls nicht, neu erzeugen
Set Datenbank = CreateDatabase(Dateiname, dbLangGeneral, dbEncrypt)
Else
'ansonsten öffnen
Set Datenbank = OpenDatabase(Dateiname)
End If

'Prüfen, ob Tabelle bereits vorhanden
If Not TableExists(Dateiname, Tabellenname) Then
'Tabelle erzeugen
Set Datenbank = OpenDatabase(Dateiname)
Set Tabelle = Datenbank.CreateTableDef(Tabellenname)

'Felder erzeugen
'Die Namen der Felder werden aus den
'entsprechenden Zellen geholt
With Tabelle
Set Feld1 = .CreateField(Range("A1"), dbText, 50)
Set Feld2 = .CreateField(Range("B1"), dbLong)
Set Feld3 = .CreateField(Range("C1"), dbText, 255)
Set Feld4 = .CreateField(Range("D1"), dbDate)
Set Feld5 = .CreateField(Range("E1"), dbDate)
Set Feld6 = .CreateField(Range("F1"), dbDate)
Set Feld7 = .CreateField(Range("G1"), dbDate)
Set Feld8 = .CreateField(Range("H1"), dbDate)
Set Feld9 = .CreateField(Range("I1"), dbDate)
Set Feld10 = .CreateField(Range("J1"), dbDate)
Set Feld11 = .CreateField(Range("K1"), dbDate)
Set Feld12 = .CreateField(Range("L1"), dbDate)
Set Feld13 = .CreateField(Range("M1"), dbDate)
Set Feld14 = .CreateField(Range("N1"), dbDate)
Set Feld15 = .CreateField(Range("O1"), dbDate)
Set Feld16 = .CreateField(Range("P1"), dbDate)
Set Feld17 = .CreateField(Range("Q1"), dbDate)
Set Feld18 = .CreateField(Range("R1"), dbDate)
Set Feld19 = .CreateField(Range("S1"), dbDate)
Set Feld20 = .CreateField(Range("T1"), dbDate)
Set Feld21 = .CreateField(Range("U1"), dbDate)
Set Feld22 = .CreateField(Range("V1"), dbDate)
Set Feld23 = .CreateField(Range("W1"), dbDate)
Set Feld24 = .CreateField(Range("X1"), dbDate)
Set Feld25 = .CreateField(Range("Y1"), dbDate)
Set Feld26 = .CreateField(Range("Z1"), dbDate)
Set Feld27 = .CreateField(Range("AA1"), dbDate)
Set Feld28 = .CreateField(Range("AB1"), dbDate)
Set Feld29 = .CreateField(Range("AC1"), dbDate)
Set Feld30 = .CreateField(Range("AD1"), dbDate)
Set Feld31 = .CreateField(Range("AE1"), dbDate)
Set Feld32 = .CreateField(Range("AF1"), dbDate)
Set Feld33 = .CreateField(Range("AG1"), dbDate)
Set Feld34 = .CreateField(Range("AH1"), dbDate)
Set Feld35 = .CreateField(Range("AI1"), dbDate)


.Fields.Append Feld1
.Fields.Append Feld2
.Fields.Append Feld3
.Fields.Append Feld4
.Fields.Append Feld5
.Fields.Append Feld6
.Fields.Append Feld7
.Fields.Append Feld8
.Fields.Append Feld9
.Fields.Append Feld10
.Fields.Append Feld11
.Fields.Append Feld12
.Fields.Append Feld13
.Fields.Append Feld14
.Fields.Append Feld15
.Fields.Append Feld16
.Fields.Append Feld17
.Fields.Append Feld18
.Fields.Append Feld19
.Fields.Append Feld20
.Fields.Append Feld21
.Fields.Append Feld22
.Fields.Append Feld23
.Fields.Append Feld24
.Fields.Append Feld25
.Fields.Append Feld26
.Fields.Append Feld27
.Fields.Append Feld28
.Fields.Append Feld29
.Fields.Append Feld30
.Fields.Append Feld31
.Fields.Append Feld32
.Fields.Append Feld33
.Fields.Append Feld34
.Fields.Append Feld35

End With

'Tabelle hinzufügen
Datenbank.TableDefs.Append Tabelle
End If

'Datenbank schliessen
Datenbank.Close

If Err.Number <> 0 Then MsgBox Err.Description
Call Daten_schreiben
End Sub

'Daten aus einem Bereich in die Datenbank schreiben
Public Sub Daten_schreiben()
Dim x%
Dim y%
'Prüfen, Tabelle existiert
If Not TableExists(Dateiname, Tabellenname) Then
MsgBox "Datenbank oder Tabelle ist nicht vorhanden !", vbExclamation
Exit Sub
End If
'Datenbank und Tabelle öffnen
Set Datenbank = OpenDatabase(Dateiname)
Set Datensatz = Datenbank.OpenRecordset(Tabellenname)
With Datensatz
'Bereich A1:AI10000
For x = 2 To 10000
.AddNew
For y = 1 To 35 'Spalte 1 bis 35
.Fields(Cells(1, y)).Value = Cells(x, y).Value
Next y
'Datensatz updaten
.Update
.Bookmark = .LastModified
Next x
End With
Datenbank.Close
End Sub

nach oben   nach unten

Re: Excel97 Datei nach Access97 konvertieren
von: Stefan Teschendorff
Geschrieben am: 23.06.2002 - 23:19:43

Hallo Manfred,

danke für deine Hilfe, habe es gleich ausprobiert :-)
Habe ein bißchen getestet bis mir Excel abgestürzt ist.
Hatte bis dahin aber alles gut funktioniert.

Ist genau das was ich gesucht habe.

CU Stefan

PS : Gibt es eigentlich eine Möglichkeit diesen Haken bei „DAO 2.5/3.51 Compatibility Library“ durch ein Makro zu setzten ?

nach oben   nach unten

Re: Excel97 Datei nach Access97 konvertieren
von: Manfred B.
Geschrieben am: 24.06.2002 - 19:48:29

Hallo Stefan,

über DAO wird der Zugriff auf Access-Datenbanken ermöglicht,
lass es einfach in VBA aktiviert.

Bitte beachten:
Access 97 DAO 3.51
Access 2000 DAO 3.6

nach oben   nach unten

Re: Excel97 Datei nach Access97 konvertieren
von: Stefan Teschendorff
Geschrieben am: 24.06.2002 - 20:58:51

Hallo Manfred,

habe eigentlich nur gefragt weil der Haken wieder weg ist ?

Ich habe meine Datei geschlossen und eine neu Arbeitsmappe geöffnet und der Haken war weg.
Nun dachte ich dieser Haken bezieht sich nur auf die jeweilige Arbeitsmappe aber das war es auch nicht.
Daher meine Frage nach der Möglichkeit durch ein Makro.

CU Stefan


 nach oben

Beiträge aus den Excel-Beispielen zum Thema "Excel97 Datei nach Access97 konvertieren"