| |
VB.NET - FortgeschritteneVB,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 |
|
|
sevZIP40 Pro DLL
Zippen und Unzippen wie die Profis!
Mit nur wenigen Zeilen Code statten Sie Ihre Anwendungen ab sofort mit schnellen Zip- und Unzip-Funktionen aus. Hierbei lassen sich entweder einzelnen Dateien oder auch gesamte Ordner zippen bzw. entpacken. Weitere InfosTipp des Monats Access-Tools Vol.1
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
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
|
|