|
| |

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. |  |
 | 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 |
  |
|
sevWizard für VB5/6 
Professionelle Assistenten im Handumdrehen
Erstellen Sie eigene Assistenten (Wizards) im Look & Feel von Windows 2000/XP - mit allem Komfort und zwar in Windeseile :-) Weitere InfosTipp des Monats TOP Entwickler-Paket 
TOP-Preis!!
Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1866.50 EUR...
Jetzt nur 979,00 EURWeitere Infos
|
| |
|
Copyright ©2000-2025 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
|
|