1) Warum funktioniert der Code bei dem einen Projekt, bei den anderen beiden aber nicht, bzw. bei dem einen Projekt nicht mehr (hat da ja mal funktioniert. Mir ist nur nicht klar welche Änderung da plötzlich quer schießt und warum)
Klaus Löffelmann
2004-07-06 21:05:45 UTC
Permalink
Hallo Marco,hast Du Option Strict und Option Explicit eingeschaltet?
Etwas ausführlicherer Code wäre hilfreich, sonst wird's schwierig.
Insbesondere Code, aus dem hervorgeht, wo genau die Variablen deklariert
werden und wie du das Formular anzeigst.
Gruß
Klaus
---
Visual Basic .NET - Das Entwicklerbuch
//entwicklerbuch.ichbrauch.info
Also, ich arbeite an einem VB Projekt und erstelle beim laden des Programm
Connection, Datenadapter,
Dataset und befülle alles.
Die notwendigen Variablen und Prozeduren befinden sich in einer Moduldatei
die eine Sub Main() enthält.
OK, Variablendeklaration
Friend frmMDI As New frmStart
Friend frmLoad As New frmLoad
Friend objConn As New System.Data.OleDb.OleDbConnection
Friend objAD As New OleDb.OleDbDataAdapter
Friend objDS As New DataSet
(ich bringe nicht den ganzen Code, wäre einfach zu viel).
OK, der ganze Ablauf im Modul funzt einwandfrei, auch das Dataset enthält
zum schluss
verschiedene Datenbanktabellen.
Ich muss auf diese Daten (deshalb lade ich Sie im Vorfeld) später im
Programm zugreifen.
Weil ich faul bin habe ich Dataset und adapter etc. mit Friend deklariert,
in der Hoffnung
eben dieses weiter verwenden zu können.
Aber ..... no.
frmLoad.Label1.Text = "Dataset enthält " &
objDS.Tables("tblKunden").Rows.Count & " Datensätze"
liefert im Modul einen korrekten werden.
Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt
Wo liegt der Fehler ?
Kann ich die Variablen so nicht verwenden ?
--
mit freundlichen Grüssen
Marco Fischer
//www.vb24.info
Marco Fischer
2004-07-07 04:03:39 UTC
Permalink
Hallo Klaus,habe bis jetzt Option Strict und Option Explicit nicht angefasst.
Hier der Code der Moduldatei. Diese wird zum, Programmstart erfolgreich
ausgeführt und öffnet dann die Programmoberfläche:
Module ModStart
Friend frmMDI As New frmStart
Friend frmLoad As New frmLoad
Friend objConn As New System.Data.OleDb.OleDbConnection
Friend objAD As New OleDb.OleDbDataAdapter
Friend objDS As New DataSet
Private strConn As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data
Source=" & Application.StartupPath & "\DBACC.mdb"
Sub Main()
Dim sSQL As String
frmLoad.Text = "Einen Moment bitte ..."
frmLoad.GroupBox1.Text = " Programmoptionen erstellen "
frmLoad.Label1.Text = "Startoptionen für das Programm werden
geladen"
frmLoad.Show()
'
#####################################################################
' Kundendaten im Dataset generieren
frmLoad.Label1.Text = "SQL String Kundendaten erstellen ..."
Application.DoEvents()
sSQL = "SELECT * FROM tblKunden"
frmLoad.Label1.Text = "SQL String Kundendaten erstellt ..."
Application.DoEvents()
frmLoad.Label1.Text = "Datenbankverbindung herstellen ..."
Application.DoEvents()
frmLoad.Label1.Text = "Datenadapter erstellen ..."
Application.DoEvents()
objAD = New OleDb.OleDbDataAdapter(sSQL, strConn)
frmLoad.Label1.Text = "Datenadapter erfolgreich erstellt ..."
Application.DoEvents()
frmLoad.Label1.Text = "Dataset generieren ..."
Application.DoEvents()
objDS = New DataSet("mACC")
frmLoad.Label1.Text = "Dataset wurde generiert ..."
Application.DoEvents()
Try
dbConnect()
frmLoad.Label1.Text = "Datenbankverbindung erfolgreich
hergestellt ..."
Application.DoEvents()
Catch ex As System.Exception
frmLoad.Label1.Text = "Datenbankverbindung erfolglos ..."
Application.DoEvents()
MsgBox(ex.Message, MsgBoxStyle.Exclamation, ex.Source)
Exit Sub
End Try
If objConn.State = ConnectionState.Open Then
Try
frmLoad.Label1.Text = "Dataset mit Kundendaten befüllen ..."
objAD.Fill(objDS, "tblKunden")
Application.DoEvents()
dbclose()
frmLoad.Label1.Text = "Dataset enthält " &
objDS.Tables("tblKunden").Rows.Count & " Datensätze"
Application.DoEvents()
Catch ex As System.Exception
MsgBox(ex.Message, MsgBoxStyle.Exclamation, ex.Source)
End Try
End If
' Kundendaten im Dataset generieren Ende
'
#####################################################################
'
#####################################################################
' Auftragsdaten im Dataset generieren
frmLoad.Label1.Text = "SQL String Auftragsdaten erstellen ..."
Application.DoEvents()
sSQL = "SELECT * FROM tblAuftrag"
frmLoad.Label1.Text = "SQL String Auftragsdaten erstellt ..."
Application.DoEvents()
frmLoad.Label1.Text = "Datenbankverbindung herstellen ..."
Application.DoEvents()
frmLoad.Label1.Text = "Datenadapter erstellen ..."
Application.DoEvents()
objAD = New OleDb.OleDbDataAdapter(sSQL, strConn)
frmLoad.Label1.Text = "Datenadapter erfolgreich erstellt ..."
Application.DoEvents()
frmLoad.Label1.Text = "Dataset generieren ..."
Application.DoEvents()
objDS = New DataSet("mACC")
frmLoad.Label1.Text = "Dataset wurde generiert ..."
Application.DoEvents()
Try
dbConnect()
frmLoad.Label1.Text = "Datenbankverbindung erfolgreich
hergestellt ..."
Application.DoEvents()
Catch ex As System.Exception
frmLoad.Label1.Text = "Datenbankverbindung erfolglos ..."
Application.DoEvents()
MsgBox(ex.Message, MsgBoxStyle.Exclamation, ex.Source)
Exit Sub
End Try
If objConn.State = ConnectionState.Open Then
Try
frmLoad.Label1.Text = "Dataset mit Auftragsdaten befüllen
..."
objAD.Fill(objDS, "tblAuftrag")
Application.DoEvents()
dbclose()
frmLoad.Label1.Text = "Dataset enthält " &
objDS.Tables("tblAuftrag").Rows.Count & " Datensätze"
Application.DoEvents()
Catch ex As System.Exception
MsgBox(ex.Message, MsgBoxStyle.Exclamation, ex.Source)
End Try
End If
' Auftragsdaten im Dataset generieren Ende
'
#####################################################################
' Programmoberfläche starten
frmLoad.Dispose()
frmMDI.ShowDialog()
End Sub
Sub dbConnect()
objConn = New System.Data.OleDb.OleDbConnection(strConn)
Try
objConn.Open()
Catch ex As System.Exception
MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Fehler
Datenbankverbindung")
End Try
End Sub
Sub dbclose()
If objConn.State = ConnectionState.Open Then
Try
objConn.Close()
Catch ex As System.Exception
MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Fehler
Datenbanktrennung")
End Try
End If
End Sub
End Module
--
mit freundlichen Grüssen
Marco Fischer
//www.vb24.info
Hallo Marco,
hast Du Option Strict und Option Explicit eingeschaltet?
Etwas ausführlicherer Code wäre hilfreich, sonst wird's schwierig.
Insbesondere Code, aus dem hervorgeht, wo genau die Variablen deklariert
werden und wie du das Formular anzeigst.
Gruß
Klaus
---
Visual Basic .NET - Das Entwicklerbuch
//entwicklerbuch.ichbrauch.info
Also, ich arbeite an einem VB Projekt und erstelle beim laden des Programm
Connection, Datenadapter,
Dataset und befülle alles.
Die notwendigen Variablen und Prozeduren befinden sich in einer Moduldatei
die eine Sub Main() enthält.
OK, Variablendeklaration
Friend frmMDI As New frmStart
Friend frmLoad As New frmLoad
Friend objConn As New System.Data.OleDb.OleDbConnection
Friend objAD As New OleDb.OleDbDataAdapter
Friend objDS As New DataSet
(ich bringe nicht den ganzen Code, wäre einfach zu viel).
OK, der ganze Ablauf im Modul funzt einwandfrei, auch das Dataset enthält
zum schluss
verschiedene Datenbanktabellen.
Ich muss auf diese Daten (deshalb lade ich Sie im Vorfeld) später im
Programm zugreifen.
Weil ich faul bin habe ich Dataset und adapter etc. mit Friend deklariert,
in der Hoffnung
eben dieses weiter verwenden zu können.
Aber ..... no.
frmLoad.Label1.Text = "Dataset enthält " &
objDS.Tables("tblKunden").Rows.Count & " Datensätze"
liefert im Modul einen korrekten werden.
Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt
Wo liegt der Fehler ?
Kann ich die Variablen so nicht verwenden ?
--
mit freundlichen Grüssen
Marco Fischer
//www.vb24.info