Rubrik: Datenbanken · ADO.NET Allgemein | VB-Versionen: VB2005, VB2008, VB2010 | 27.07.12 |
Datenbanktabelle mit Primärschlüssel kopieren (Accesstabelle) Kopiert den Inhalt einer Tabelle aus einer Accessdatenbank in eine andere Tabelle der gleichen Datenbank und fügt dieser einen Primärschlüssel hinzu | ||
Autor: Rainer Henke | Bewertung: | Views: 10.228 |
ohne Homepage | System: WinXP, Win7, Win8, Win10, Win11 | kein Beispielprojekt |
Mit nachfolgendem Code lässt sich der Inhalt einer Tabelle aus einer Accessdatenbank in eine andere Tabelle der gleichen Datenbank kopieren. Der Name der neuen Tabelle kann angegeben werden.
Erweiterung des Tipps:
Datenbanktabelle in eine andere Tabelle kopieren (Accesstabelle)
Soll jedoch mit der kopierten Tabelle weitergearbeitet werden, ist ein Primärschlüssel erforderlich. In diesem erweiterten Tipp wird der Primärschlüssel in die kopierte Tabelle eingefügt, da er beim kopieren nicht mit
übernommen wird. Ferner wird zuvor geprüft, ob die Tabellenbezeichnung bereits existiert.
Eventuell läßt sich das Ganze noch ein wenig kompakter umsetzen.
Private Sub Tabelle_kopieren() Dim Datenbank As String = "C:\Test\Datenbank.mdb" Dim oTabelle_neu As String = "2014" Dim oTabelle_von As String = "Daten" Dim oSQL As String = "SELECT * INTO [" & Datenbank & "]." & _ oTabelle_neu & " FROM " & oTabelle_von Dim ovorhanden As Boolean = False ' Tabelle bereits vorhananden? Using oConn As OleDbConnection = New OleDbConnection(oConnection) oConn.Open() Using oTabelle As DataTable = oConn.GetSchema("Tables") For Each oRow As DataRow In oTabelle.Rows If oRow("TABLE_NAME").ToString = oTabelle_neu Then MsgBox("Tabelle bereits vorhanden!") ovorhanden = True Exit For End If Next End Using If ovorhanden = False Then Using cmd As OleDbCommand = New OleDbCommand cmd.Connection = oConn cmd.CommandText = oSQL Try cmd.ExecuteNonQuery() Catch ex As Exception MsgBox("Fehler beim Kopieren" & vbCrLf & ex.Message) Exit Sub End Try End Using ' Primärschlüssel hinzufügen Dim oKey As String = "ALTER TABLE " & oTabelle_neu & " ADD CONSTRAINT ps PRIMARY KEY (ID);" Using cmd As New OleDbCommand cmd.Connection = oConn cmd.CommandText = oKey Try cmd.ExecuteNonQuery() Catch ex As Exception MsgBox("Fehler beim Primärschlüssel setzen" & vbCrLf & ex.Message) End Try End Using End If End Using End Sub