vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 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 Laden von mehreren grossen TableAdaptern in einem Modul 
Autor: bitstar
Datum: 01.02.15 10:31

Liebe VB.Net Kollegen
bei folgender Situation bleibe ich gerade hängen.
Ich arbeite mit Visual Studio 2012 und Access 2010, das Projekt ist eine Excel Application mit einer Auswertungsform und einem Ribbon, welcher die Form öffnet.
In meinem Projekt habe ich 12 TabelAdapter von der Access Datenbank mit über 100000 records gebunden.

Ziel: Alle Daten beim öffnen oder im Hintergrund laden und als Public darauf zugreifen können ohne weitere Ladezeiten.

Hier der Code, welchen ich im Moment in einem Modul zum Laden verwende. (Relativ langsam)
Module mdlLoadTable
    Public qryMaterial As New SVIZ.LabToolDataSet.qryMaterialDataTable
    Public QryMaterialBindingSource As System.Windows.Forms.BindingSource
    Public QryMaterialTableAdapter As _
      SVIZ.LabToolDataSetTableAdapters.qryMaterialTableAdapter
 
    Public qryWorkcenter As New SVIZ.LabToolDataSet.qryWorkcenterDataTable
    Public QryWorkcenterBindingSource As System.Windows.Forms.BindingSource
    Public QryWorkcenterTableAdapter As _
      SVIZ.LabToolDataSetTableAdapters.qryWorkcenterTableAdapter
 
    Public tblRechte As New SVIZ.LabToolDataSet.tblRechteDataTable
    Public TblRechteBindingSource As System.Windows.Forms.BindingSource
    Public TblRechteTableAdapter As _
      SVIZ.LabToolDataSetTableAdapters.tblRechteTableAdapter
 
    Public tblSite As New SVIZ.LabToolDataSet.tblSiteDataTable
    Public TblSiteBindingSource As System.Windows.Forms.BindingSource
    Public TblSiteTableAdapter As _
      SVIZ.LabToolDataSetTableAdapters.tblSiteTableAdapter
 
 
    u. s. w. insgesamt 12 Adapter
 
    Public Sub LoadTB()
 
        QryMaterialBindingSource = New System.Windows.Forms.BindingSource
        QryMaterialTableAdapter = New _
          SVIZ.LabToolDataSetTableAdapters.qryMaterialTableAdapter
        QryMaterialTableAdapter.Fill(qryMaterial)
 
        QryWorkcenterBindingSource = New System.Windows.Forms.BindingSource
        QryWorkcenterTableAdapter = New _
          SVIZ.LabToolDataSetTableAdapters.qryWorkcenterTableAdapter
        QryWorkcenterTableAdapter.Fill(qryWorkcenter)
 
        TblRechteBindingSource = New System.Windows.Forms.BindingSource
        TblRechteTableAdapter = New _
          SVIZ.LabToolDataSetTableAdapters.tblRechteTableAdapter
        TblRechteTableAdapter.Fill_UserRechte(tblRechte)
 
        TblSiteBindingSource = New System.Windows.Forms.BindingSource
        TblSiteTableAdapter = New _
          SVIZ.LabToolDataSetTableAdapters.tblSiteTableAdapter
        TblSiteTableAdapter.Fill(tblSite)
 
    u. s. w. insgesamt 12 Adapter
    End Sub
 
End Module
Bei der Fett markierten Zeile schmeisst er mich beim laden der Form gleich mal mit der Meldung: [u]Fehler: Die Objektvariable oder die With- Blockvariable wurde nicht festgelegt.
Sub Unselect()
        Try
            dgvSVIZ.DataSource = QryMaterialBindingSource
            dgvWC.DataSource = QryWorkcenterBindingSource
            dgvSVIZ.DataSource = QryMaterialBindingSource
            QryMaterialBindingSourceMat = QryMaterialBindingSource
            QrySVIZBindingSourceBatch = QrySVIZBindingSource
            QrySVIZBindingSourceLot = QrySVIZBindingSource
            cmbMaterial.DataSource = QryMaterialBindingSourceMat
            cmbBatch.DataSource = QrySVIZBindingSourceBatch
            cmbLot.DataSource = QrySVIZBindingSourceLot
 
QryMaterialBindingSourceMat.Filter = "Site = '" & _
  cmbSite.SelectedItem.Row.Site & "' AND Jahr = " & CInt( _
  cmbJahr.SelectedItem.ToString) & ""
 
QrySVIZBindingSourceBatch.Filter = "Site = '" & cmbSite.SelectedItem.Row.Site & _
  "' AND Jahr = " & CInt(cmbJahr.SelectedItem.ToString) & ""
 
QrySVIZBindingSourceLot.Filter = "Site = '" & cmbSite.SelectedItem.Row.Site & _
  "' AND Jahr = " & CInt(cmbJahr.SelectedItem.ToString) & ""
 
        Catch ex As Exception
            MsgBox("Fehler: " & ex.Message)
        End Try
        My.Settings.bSperr = False
    End Sub
Nun die Frage, wie kann ich mehrere Tables schnell und einfach in einem Modul laden (die Datenbankverbinung besteht bereits durch die Bindung) und in der Form oder anderen Modulen verwenden?
Respektiv auch ein Beispiel für die Verwendung eines BindingSource.Filter?

Mein Beispiel:
dgvSVIZ.DataSource = QrySVIZ_AllSample_Closed_no_UDBindingSource
 
QrySVIZ_AllSample_Closed_no_UDBindingSource.Filter = "Site = '" & _
  cmbSite.SelectedItem.Row.Site & "' AND Jahr = " & CInt( _
  cmbJahr.SelectedItem.ToString)
Vielen Dank für Eure Hilfe.

Gruss
Ivan
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
VB.NET Laden von mehreren grossen TableAdaptern in einem Mod...1.004bitstar01.02.15 10:31

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