.ACCDB (Abfrage) --> DataGridView (VB.NET) --> MS SQL (Tabelle)

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    .ACCDB (Abfrage) --> DataGridView (VB.NET) --> MS SQL (Tabelle)

    Hallo Experten,

    ich hoffe man kann das Thema rel. gut vom Titel ableiten.
    Ich bekomme eine Access Abfrage zur Verfügung gestellt. Die Abfrage bekomme ich relativ leicht in eine DataGridView geladen/angezeigt.

    VB.NET-Quellcode

    1. 'Deklarationen
    2. Dim connString As String = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:\blabla.accdb"
    3. Dim MyConn As OleDbConnection
    4. Dim da As OleDbDataAdapter
    5. Dim ds As DataSet
    6. Dim tables As DataTableCollection
    7. Dim source1 As New BindingSource
    8. Dim conn As SqlConnection
    9. Dim da_Adapter As SqlDataAdapter
    10. Dim ds_Material As DataSet ' DataSet
    11. Dim dt_Material As DataTable ' DataTable (Datentabelle)


    VB.NET-Quellcode

    1. Public Sub ExportTableData()
    2. MyConn = New OleDbConnection
    3. MyConn.ConnectionString = connString
    4. ds = New DataSet
    5. tables = ds.Tables
    6. da = New OleDbDataAdapter("Select * from AccAbfrage", MyConn) 'Change items to your database name
    7. da.Fill(ds, "AccAbfrage") 'Change items to your database name
    8. Dim view As New DataView(tables(0))
    9. source1.DataSource = view
    10. DGV_Mat.DataSource = view
    11. ' *** DataSet und DataTable-Instanz bilden
    12. ds_Material = New DataSet("AccAbfrage") ' DataSet-Instanz bilden
    13. dt_Material = New DataTable("AccAbfrage") ' DataTable-Instanz bilden
    14. ds_Material.Tables.Add(dt_Material)
    15. End Sub


    Unabhängig davon ob ich die Daten ändere oder nicht möchte ich nun die Daten (komplette DGV_Mat) in eine gleich aufgebaute MS SQL DB übertragen.
    Leider komme ich mit dem SqlCommandBuilder nicht zurecht.
    Meine Ansätze waren u.a. folgendes

    VB.NET-Quellcode

    1. Public Sub ImportTableData()
    2. conn = New SqlConnection( "Data Source=LOCALDB\SQLEXPRESS;Uid=sa;Password=*******;Initial Catalog=SQLDB")
    3. conn.Open()
    4. ' *** Primärschlüssel-Informationen beim Fill mit übernehmen
    5. 'da_Adapter.MissingSchemaAction = MissingSchemaAction.AddWithKey
    6. da_Adapter = New SqlDataAdapter("", conn)
    7. da_Adapter.SelectCommand.CommandText = "SELECT * FROM tblMaterial"
    8. da_Adapter.SelectCommand.CommandType = CommandType.Text
    9. da_Adapter.Fill(dt_Material) ' DataTable füllen
    10. Dim cmdb As SqlCommandBuilder
    11. cmdb = New SqlCommandBuilder(da_Adapter)
    12. da_Adapter.Update(dt_Material)
    13. conn.Close()
    14. End Sub


    Das kann so nicht klappen glaube ich, wenn ich das halbwegs verstanden habe. Der da_Adapter öffnet bzw. baut eine Verbindung mit einer MS SQL DB auf. Lesen/Schreiben von einer Tabelle.
    Ich komme halt nicht zurecht weil meine Daten von einer Access DB kommen...
    Wäre echt Super nett, wenn ihr mir etwas auf die Sprünge helfen könntet.
    Danke und frohe Ostern noch.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „newbie“ ()