Hallo,
ich möchte gerne eine Access Datenbank per Code erstellen.
Das geh auch nur wenn ich nun Tabellen aus einer anderen Datenbank dort hinein kopieren will meckert VB das das Passwort nicht korrekt ist.
Erstelle ich die Datenbank ohne Passwort geht es.
wenn ich die Datenbank ohne Passwort erstelle und nachträglich ein Passwort erstellen möchte bekomme ich die Fehlermeldung, dass die Datenbank noch geöffnet ist.
Ich habe das Gefühl, dass nach
die Datenverbindung nicht geschlossen wird und VB deswegen meckert. In dem Verzeichniss in dem die Datenbank erstellt wird steht auch immer noch eine .ldb Datei und die stehen ja, soweit ich weiß, nur dort wenn noch eine offene Verbindung exitstiert.
ich möchte gerne eine Access Datenbank per Code erstellen.
VB.NET-Quellcode
Das geh auch nur wenn ich nun Tabellen aus einer anderen Datenbank dort hinein kopieren will meckert VB das das Passwort nicht korrekt ist.
Erstelle ich die Datenbank ohne Passwort geht es.
VB.NET-Quellcode
- Private Sub Tabelle_kopieren(QuelleDBName As String, QuelleTabelleName As String, ZielDBName As String, ZielTabelleName As String)
- 'Eine Tabelle aus einer mdb in eine andere mdb kopieren ohne Daten, nur die Struktur
- ' Verbindung zur Datenbank herstellen
- Dim connQuelle As New OleDb.OleDbConnection
- Dim connZiel As New OleDb.OleDbConnection
- 'Kopieren aus einer "externen" Source-Datenbank heraus
- connQuelle.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" &
- "Data Source=" & QuelleDBName & ";Jet OLEDB:Database Password=" & MyDbPassword
- connZiel.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; " &
- "Data Source=" & ZielDBName & "; Jet OLEDB:Database Password=" & MyDbPassword
- Try
- connQuelle.Open()
- connZiel.Open()
- ' SelectCommand erstellen
- Dim cmdQuelle As New OleDb.OleDbCommand
- Dim cmdZiel As New OleDb.OleDbCommand
- cmdQuelle.Connection = connQuelle
- cmdZiel.Connection = connZiel
- cmdQuelle.CommandText = "SELECT * INTO [" & ZielDBName & "].[" & ZielTabelleName &
- "] FROM [" & QuelleDBName & "].[" & QuelleTabelleName & "]"
- cmdQuelle.ExecuteNonQuery()
- connQuelle.Close()
- connZiel.Close()
- Catch ex As OleDbException
- MessageBox.Show(ex.Message, "OleDbException", MessageBoxButtons.OK,
- MessageBoxIcon.Exclamation)
- ' Return False
- Catch ex As Exception
- MessageBox.Show(ex.Message, "Exception", MessageBoxButtons.OK,
- MessageBoxIcon.Exclamation)
- ' Return False
- Finally
- connQuelle.Close()
- connZiel.Close()
- End Try
- connQuelle.Close()
- connZiel.Close()
- End Sub
wenn ich die Datenbank ohne Passwort erstelle und nachträglich ein Passwort erstellen möchte bekomme ich die Fehlermeldung, dass die Datenbank noch geöffnet ist.
VB.NET-Quellcode
- Private Sub PasswortSetzen(DatenBank As String)
- Dim sDatabasePath As String = DatenBank & ";"
- Dim conPaasswort As New OleDbConnection
- Dim cmdPaswort As New OleDb.OleDbCommand
- conPaasswort.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" &
- sDatabasePath & ";Jet OLEDB:Database Password=" & MyDbPassword
- cmdPaswort.Connection = conPaasswort
- cmdPaswort.CommandText = "ALTER Database Password " & MyDbPassword & " " & MyDbPassword & ";"
- conPaasswort.Open()
- cmdPaswort.ExecuteNonQuery()
- conPaasswort.Close()
- MsgBox("Passwort geändert zu " & MyDbPassword)
- End Sub
Ich habe das Gefühl, dass nach
die Datenverbindung nicht geschlossen wird und VB deswegen meckert. In dem Verzeichniss in dem die Datenbank erstellt wird steht auch immer noch eine .ldb Datei und die stehen ja, soweit ich weiß, nur dort wenn noch eine offene Verbindung exitstiert.