Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Mit VBA aus Excel eine Datenbank öffnen

Forumthread: Mit VBA aus Excel eine Datenbank öffnen

Mit VBA aus Excel eine Datenbank öffnen
21.12.2004 12:38:23
Christian
Hallo miteinander,
ich habe einen Code geschrieben, der Daten von Excel in eine Access-Datenbank schreibt. Da ich, nachdem die Daten in der Datenbank sind dort damit weiterarbeiten möchte, will ich, das mein Makro zum Schluß noch die besagte Datenbank öffnet und anzeigt.
Mein bisheriger Code:

Private Sub CommandButton3_Click()
Dim DB1 As Database
Dim RS1 As Recordset
Dim sMDBFile1 As String
Dim sPasswort1 As String
Dim b, x, UebNr As Double
Dim A, Z As String
sMDBFile1 = (ThisWorkbook.Path & "\Orientierungswerte.mdb")
Set DB1 = DBEngine.OpenDatabase(sMDBFile1)
Set RS1 = DB1.OpenRecordset(Name:="tblXWert", Type:=dbOpenDynaset)
b = Sheets("Tabelle1").Range("C25").Value
x = Sheets("Tabelle1").Range("C40").Value
A = Sheets("Tabelle1").Range("C12").Text
Z = Sheets("Tabelle1").Range("C13").Text
UebNr = Sheets("Tabelle1").Range("C24").Value
With RS1
.MoveFirst
.Edit
.Fields("b").Value = b
.Fields("x").Value = x
.Fields("AS").Value = A
.Fields("ZS").Value = Z
.Fields("UebNr").Value = UebNr
.Update
End With
End Sub


Vielen Dank für Eure Hilfe im Voraus
MfG
Christian
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mit VBA aus Excel eine Datenbank öffnen
21.12.2004 13:08:24
Uduuh
Hallo,
schau dir mal die SHELL-Funktion an.
Gruß aus'm Pott
Udo

Das Forum lebt auch von den Rückmeldungen an die Antworter!
AW: Mit VBA aus Excel eine Datenbank öffnen
21.12.2004 14:42:33
Christian
Hallo,
vielen Dank für den super Tipp erstmal!!!
Aber es funktioniert noch nicht ganz, ich habs probiert mit:
Shell(ThisWorkbook.Path & "\Orientierungswerte.mdb",4) und mit
Ergebnis = Shell(\\erlm701A\Ad_pt6\DTP_ALLG_Info\TWC_allgemein\Kennzahlen\test\Orientierungswerte.mdb)
aber er gibt einen Syntaxfehler an, aber der Pfad stimmt...
Danke,
Christian
Anzeige
AW: Mit VBA aus Excel eine Datenbank öffnen
21.12.2004 14:46:42
Christian
Da fehlen natürlich die Gänsefüßchen... Aber daran liegts nicht
AW: Mit VBA aus Excel eine Datenbank öffnen
21.12.2004 14:54:25
Christian
Das ist der aktuelle Stand, der leider nicht funktioniert wegen:
Unzulässiger Prozeduraufruf oder ungültiges Argument (Fehler 5)

Dim Ergebnis
.
.
.
Ergebnis = Shell("\\erlm701a\AD_PT6\Ad_pt6\DTP_ALLG_Info\TWC_allgemein\Kennzahlen\test\Orientierungswerte.mdb", vbNormalNoFocus)
Anzeige
AW: Mit VBA aus Excel eine Datenbank öffnen
21.12.2004 15:15:09
Christian
Er öffnet nur .exe's!!!
Ich habe gerade den Pfad gegen den Pfad von Access selbst ausgetauscht und das öffnet er ohne Probleme.
Jetzt würde ich ihn aber - wenn möglich - gerne soweit bringen, dass er mir die richtige Datenbank selbständig öffnet und wenn möglich auch noch das Form5.
Kannst du mir da auch noch helfen?
Anzeige
AW: Mit VBA aus Excel eine Datenbank öffnen
21.12.2004 15:31:50
TOM
Hallo Christian
Ich habe das so gelöst:

Private Sub cmdAccessNr_Click()
Dim strProg As String, strPara As String, R
strProg = Chr$(34) + "C:\Programme\Microsoft Office\Office\MSACCESS.EXE" + Chr$(34)
strPara = Chr$(34) + "H:\Logistik\Voith\Verlagerung_Rosenberger\Lieferungen_Rose- Voith.mdb" + Chr$(34)
R = Shell(strProg + " " + strPara, 1)
End Sub

Gruss
Anzeige
AW: Mit VBA aus Excel eine Datenbank öffnen
21.12.2004 15:42:01
Christian
Hallo,
danke!
Ich habe es gerade mit Hilfe eines Kollegen wie folgt gelöst:
Dim Ergebnis
.
.
.
Ergebnis = Shell("C:\***\MSACCESS.EXE \\***\Orientierungswerte.mdb", 1)
Eigentlich ganz simple!
Danke nochmal für Eure Hilfe
;
Anzeige

Infobox / Tutorial

Mit VBA in Excel eine Access-Datenbank öffnen


Schritt-für-Schritt-Anleitung

  1. Öffne den VBA-Editor in Excel, indem Du ALT + F11 drückst.
  2. Erstelle ein neues Modul: Rechtsklicke im Projekt-Explorer auf "VBAProject (DeineArbeitsmappe)", wähle "Einfügen" und dann "Modul".
  3. Füge den folgenden Code ein, um die Access-Datenbank zu öffnen:
Private Sub cmdOpenAccess_Click()
    Dim strProg As String, strPara As String, R
    strProg = Chr$(34) + "C:\Programme\Microsoft Office\Office\MSACCESS.EXE" + Chr$(34) ' Pfad zur Access-Anwendung
    strPara = Chr$(34) + ThisWorkbook.Path & "\Orientierungswerte.mdb" + Chr$(34) ' Pfad zur Datenbank
    R = Shell(strProg + " " + strPara, vbNormalFocus)
End Sub
  1. Passe den Pfad zur Access-Anwendung und zur Datenbank an Deine Bedürfnisse an.
  2. Füge einen Button in Dein Excel-Arbeitsblatt ein und verlinke ihn mit dem oben geschriebenen Makro.
  3. Speichere die Datei als Makro-fähige Arbeitsmappe (.xlsm).

Häufige Fehler und Lösungen

  • Fehler 5: Unzulässiger Prozeduraufruf oder ungültiges Argument
    Lösung: Überprüfe, ob der Pfad zur Access-Datenbank korrekt ist und dass die Datei existiert.

  • Datenbank öffnet sich nicht
    Lösung: Stelle sicher, dass der Pfad zur MSACCESS.EXE korrekt ist und dass Du die nötigen Berechtigungen hast, um die Datei zu öffnen.

  • Shell öffnet nur .exe-Dateien
    Lösung: Verwende den vollständigen Pfad zur MSACCESS.EXE und übergebe den Pfad zur Datenbank als Parameter.


Alternative Methoden

Wenn Du die Access-Datenbank ohne die Access-Anwendung öffnen möchtest, kannst Du die Shell-Funktion in Kombination mit dem Pfad zur Datenbank verwenden. Beachte jedoch, dass diese Methode möglicherweise nicht alle Funktionen von Access unterstützt.

Shell("C:\***\MSACCESS.EXE \\***\Orientierungswerte.mdb", vbNormalFocus)

Hierbei musst Du den Pfad zur Access-Anwendung und zur Datenbank entsprechend anpassen.


Praktische Beispiele

  1. VBA-Code zur Datenbanköffnung:

    Private Sub CommandButton1_Click()
       Dim dbPath As String
       dbPath = ThisWorkbook.Path & "\Orientierungswerte.mdb"
       Shell "C:\Programme\Microsoft Office\Office\MSACCESS.EXE " & dbPath, vbNormalFocus
    End Sub
  2. Datenbank direkt nach dem Schreiben öffnen: Füge den Shell-Befehl direkt nach dem Speichern der Daten in die Datenbank in Deinem bestehenden Makro hinzu.


Tipps für Profis

  • Verwende Fehlerbehandlung in Deinem VBA-Code, um Probleme frühzeitig zu erkennen:

    On Error GoTo ErrorHandler
    ' Dein Code hier
    Exit Sub
    ErrorHandler:
    MsgBox "Fehler: " & Err.Description
  • Teste den Code zuerst in einer sicheren Umgebung, um mögliche Datenverluste zu vermeiden.

  • Dokumentiere Deinen Code, um die Wartbarkeit zu erhöhen.


FAQ: Häufige Fragen

1. Kann ich eine Access-Datenbank öffnen, ohne Access installiert zu haben?
Nein, um eine Access-Datenbank zu öffnen, benötigst Du die Access-Anwendung oder eine kompatible Software.

2. Was ist die SHELL-Funktion in VBA?
Die SHELL-Funktion in VBA wird verwendet, um externe Programme oder Skripte aus einem VBA-Makro heraus zu starten.

3. Wie kann ich spezifische Formulare in Access direkt öffnen?
Um ein spezifisches Formular zu öffnen, kannst Du den Namen des Formulars als Parameter bei der Shell-Funktion hinzufügen, indem Du den entsprechenden Befehl zur Access-Anwendung hinzufügst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige