vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
VB,NET Dynamischer Excel-Bereich in existierende Access Tabelle exportieren 
Autor: bitstar
Datum: 11.01.15 10:10

Liebe VB.Net Kollegen
nach erfolgloaser Suche im NET wende ich mich an Euch!
Folgende Spzifikationen:
- Projekt ist eine VB.Net Excel Application
- Datenquelle ist eine Access Datenbank
- Über ein eingefügtes Ribbon öffne ich ein externes Excel File und exportiere einen Tabellenbereich welcher nicht bei "A1" anfängt in eine existierende Access Tabelle.

Mit der Excel Application öffne ich ein externes .xls File und exportiere einen definierten Bereich in eine existierende Access Tabelle welche ich vorher komplett lösche und neu vom externen Excel File update.
Der untenstehende Code funktioniert wunderbar, nur bei 60000 Einträgen etwas zu langsam.

Nun die Frage, wenn Ihr den Code anschaut, kann ich den externen Excel-Report, welcher sich bei jedem Update um viele Zeilen erweitert, in einem Rutsch in die existiereneden Access Tabelle "tblLabDate28" updaten?

Sub DataImport_Database(ImportLab28 As Boolean, ImportTecoToRel28 As Boolean, _
  ImportLab08 As Boolean, ImportTecoToRel08 As Boolean, ImportLab43 As Boolean, _
  ImportTecoToRel43 As Boolean)
        Dim newXL As Excel.Application
        Dim newWB As Excel.Workbook
        Dim newWS As Excel.Worksheet
        Dim myStream As Stream = Nothing
        Dim openFileDialog1 As New OpenFileDialog()
        Dim LastRow As Long
        Dim LastCol As Integer
 
        openFileDialog1.Title = "Please select a file to open"
        openFileDialog1.InitialDirectory = "C:"
        openFileDialog1.Filter = "Excel files (*.xls)|*.xls"
        If openFileDialog1.ShowDialog() = System.Windows.Forms.DialogResult.OK _
          Then
            Try
                Dim excelFileName As String = openFileDialog1.FileName
                newXL = New Microsoft.Office.Interop.Excel.Application
                newXL.Visible = True
                newWB = newXL.Workbooks.Open(excelFileName)
                newWS = newWB.Worksheets(1)
 
                LastRow = newXL.ActiveSheet.UsedRange.Rows.Count
                LastCol = newXL.ActiveSheet.UsedRange.Columns.Count
 
 
                        'TableAdapter ersetellen  
                        Dim mTableAdapter As New _
                          SVIZ.LabToolDataSetTableAdapters.tblLabDate28TableAda_
                          pter
                        'Tabelle erstellen und über den TableAdapter mit Daten 
                        ' füllen
                        newXL.WindowState = Excel.XlWindowState.xlMinimized
                        Dim tbl As SVIZ.LabToolDataSet.tblLabDate28DataTable = _
                          mTableAdapter.GetData()
                        Dim DeleteTable As New _
                        SVIZ.LabToolDataSetTableAdapters.QueriesTableAdapter
                        Dim frmInitial As New frmDatenImport("Datenimport von" & _
                        "LabMgd CH28 läuft")
                        With frmInitial.pgbStart
                            .Maximum = LastRow
                        End With
                        DeleteTable.qryLabDataImportCH28Delete()
                        For i = 6 To LastRow
                            frmInitial.Show()
                            frmInitial.BringToFront()
                            frmInitial.Value = i - 5
                            frmInitial.txtPgbStatus.Text = "Datensatz " & (i - _
                              5) & " von " & (LastRow - 5) & " Datensätzen"
                            Dim mRow As SVIZ.LabToolDataSet.tblLabDate28Row = _
                            tbl.NewRow()
                            For ii As Integer = 2 To LastCol
                                Try
                                    mRow(ii - 2) = newXL.ActiveSheet.Cells(i, _
                                      ii).Value
                                Catch ex As Exception
                                    MsgBox(i)
                                End Try
                            Next ii
                            tbl.Rows.Add(mRow)
                        Next i
                        frmInitial.txtTitel.Text = "Datenbank Update"
                        mTableAdapter.Update(tbl)
                        newXL.WindowState = Excel.XlWindowState.xlMaximized
                        newXL.Quit()
                        newWB = Nothing
                        newWS = Nothing
                        frmInitial.Close()
                'Die Tabeldaten in die Datenbank übernehmen' Habe 
            Catch ex As Exception
                MsgBox("Fehler: " & ex.Message)
 
            End Try
        End If
 
    End Sub



Vielen Dank für Eure Hilfe.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
VB,NET Dynamischer Excel-Bereich in existierende Access Tabe...1.751bitstar11.01.15 10:10
Re: VB,NET Dynamischer Excel-Bereich in existierende Access ...1.089Chris748318.01.15 21:46
Re: VB,NET Dynamischer Excel-Bereich in existierende Access ...1.158bitstar18.01.15 22:58
Re: VB,NET Dynamischer Excel-Bereich in existierende Access ...1.145Yammi90019.01.15 08:19
Re: VB,NET Dynamischer Excel-Bereich in existierende Access ...1.126bitstar19.01.15 09:48
Re: VB,NET Dynamischer Excel-Bereich in existierende Access ...1.182Chris748319.01.15 17:18
Re: VB,NET Dynamischer Excel-Bereich in existierende Access ...1.161Yammi90020.01.15 07:49
Re: VB,NET Dynamischer Excel-Bereich in existierende Access ...1.070bitstar20.01.15 14:54

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel