Benutzer mit den meisten Antworten
Konvertierung von VB 6 zu VB 8

Frage
-
Hallo,
ich bekomme nach der automatischen Konvertierung von 6.0 auf 8.0 auf einem neuen Rechner mit XP-Professionel Version 2002 SP3 bei der Codezeile:
tblWWS = DAODBEngine_definst.OpenDatabase(cmdDSN, _ DAO.DriverPromptEnum.dbDriverNoPrompt, True, DBConnect)
diese Fehler bei der Programmausführung und im Debugmodus:
Eine Ausnahme (erste Chance) des Typs "System.Runtime.InteropServices.COMException" ist in CubeInterpreter.exe aufgetreten.
Eine Ausnahme (erste Chance) des Typs "System.TypeInitializationException" ist in CubeInterpreter.exe aufgetreten.
Auf einem älteren Rechner mit XP-Home Edition Version 2002 SP2 hat diese Konvertierung problemlos funktioniert.
Beide VB8.0-Installationen erfolgten von der gleichen DVD.
Wer kann mir weiterhelfen?
Antworten
-
Hallo,
ist auf dem Rechner DAO/die Jet Engine in der passenden Version installiert?
Thorsten Dörfler
Microsoft MVP Visual Basic- Als Antwort vorgeschlagen Robert Breitenhofer Montag, 28. Dezember 2009 14:59
- Als Antwort markiert Robert Breitenhofer Sonntag, 3. Januar 2010 12:59
-
Hallo,
in Ergänzung zu Thorstens Antwort:
So erhalten Sie das aktuelle Service Pack für die Microsoft Jet 4.0-Datenbank-Engine
Gruß Elmar- Als Antwort vorgeschlagen Robert Breitenhofer Montag, 28. Dezember 2009 14:59
- Als Antwort markiert Robert Breitenhofer Sonntag, 3. Januar 2010 12:59
-
Hallo Peter,
schön das es jetzt funktioniert.
Für die Zukunft:
DAO 3.5 gehört noch zu Access 97 => JET 3.5 und ist mittlerweile veraltet.
DAO 3.6 - Access 2000 - 2003 => JET 4.0, wäre also hier richtig.
Du solltest jeweils die aktuelle Version vom bereits genannten KB Artikel verwenden.
Bei neueren Betriebssystemen ist es dabei und wird über Windows-Update aktualisiert.
Zum Finden der Defintion eines Verweises:
Wähle DAODBEngine_definst aus wähle im Editor-Kontextmenü "Gehe zu Definition".
Wenn die Instanz in einer anderen Assembly definiert ist, so wird sie im Objektbrowser angezeigt.
Gruß Elmar- Als Antwort vorgeschlagen Thorsten Dörfler Dienstag, 29. Dezember 2009 11:15
- Bearbeitet Robert Breitenhofer Sonntag, 3. Januar 2010 12:58 Formatierung DAODBEngine_definst
- Als Antwort markiert Robert Breitenhofer Sonntag, 3. Januar 2010 12:59
Alle Antworten
-
Hallo,
ist auf dem Rechner DAO/die Jet Engine in der passenden Version installiert?
Thorsten Dörfler
Microsoft MVP Visual Basic- Als Antwort vorgeschlagen Robert Breitenhofer Montag, 28. Dezember 2009 14:59
- Als Antwort markiert Robert Breitenhofer Sonntag, 3. Januar 2010 12:59
-
Hallo,
in Ergänzung zu Thorstens Antwort:
So erhalten Sie das aktuelle Service Pack für die Microsoft Jet 4.0-Datenbank-Engine
Gruß Elmar- Als Antwort vorgeschlagen Robert Breitenhofer Montag, 28. Dezember 2009 14:59
- Als Antwort markiert Robert Breitenhofer Sonntag, 3. Januar 2010 12:59
-
Hallo Peter,
selbst prüfen solltest Du zunächst:
Wenn in DBConnect eine Datei-/Benutzer/System-DSN angegeben ist,
exisitert sie bereits auf dem "jungfräulichen" Rechner=
Wenn ja und der Verbindungstest über die ODBC Verwaltung funktioniert,
zeige ein klein wenig mehr Code:
- Wo und wie erstellst Du DAODBEngine_definst
- Wie sehen die Variablen-Inhalte (cmdDSN, DBConnect ) aus?
Gruß Elmar -
Hallo Elmar,
Danke für Deine Unterstützung.
Die ODBC-Verknüpfung ist vorhanden. Wie schon ober geschrieben, funktioniert auf einem anderen Rechner dieses Programm. Es wurden die gleichen Schritte auf beiden Rechnern ausgeführt.
Über die von VB 8.0 angebotenen automatische Konvertierung wurde das neue Programm erstellt, bis auf ein paar kleinere Anpassungen.
Der Quelltext sieht etwas verkürzt so aus:
Option Strict Off
Option Explicit On
Imports VB = Microsoft.VisualBasic
Friend Class CubeInterpreterForm
Inherits System.Windows.Forms.Form
'und hier gehts mit den Programmvariablen weiter
Private Cmd_CubeName As String
Private Cmd_DSN As String
Private Cmd_CubeTable As String
Dim tblWWS As DAO.Database
Dim tblCubeInfo As DAO.Recordset
Dim DecPatch As Byte 'wird für Umstellung der Ländereinstellung wg. Decimalanzeigefehler benötigt
Dim showFile As Boolean ' wird für Excelstart benötigt
Dim ShowSum As Boolean ' wird für Excel incl. Summen benötigt'*************************************************************************************
' Method: CreateCubeUniversal
' Parameters: Bezeichner und Datenquelle (DSN)
' Description: Daten für Cube werden aus externer Tabelle eingelesen
'*************************************************************************************Public Sub CreateCubeUniversal()
Dim fieldObject As Object
Dim mSQL As String
Dim DBConnect As String
Dim cmdCubeName As String
Dim cmdTBL As String
Dim cmdDSN As String
Dim CubeID As String
Dim looper As Short
'CubeUpdate abschalten
DCube1.AutoDataRefresh = False
cmdCubeName = Cmd_CubeName 'Kommandozeilenparameter
cmdTBL = Cmd_CubeTable
cmdDSN = Cmd_DSN
DBConnect = "ODBC;DATABASE=" & cmdTBL & ";DSN=" & cmdDSN
'Datenbank öffnen
tblWWS = DAODBEngine_definst.OpenDatabase(cmdDSN, DAO.DriverPromptEnum.dbDriverNoPrompt, True, DBConnect)
mSQL = "select * from DCubeKopf where CubeName='" & cmdCubeName & "'"
tblCubeInfo = tblWWS.OpenRecordset(mSQL, DAO.RecordsetTypeEnum.dbOpenDynaset)
tblCubeInfo.MoveFirst()
Do While Not tblCubeInfo.EOF
Debug.Print(tblCubeInfo.Fields("ID").Value)
Debug.Print(tblCubeInfo.Fields("Zugriff").Value)
Debug.Print(tblCubeInfo.Fields("Connect").Value)
CubeID = tblCubeInfo.Fields("ID").Value
'Verbindung aufbauen
usw.usw.usw...
Die Variable DBConnect enthält Werte aus dem Programmstart (Parameter) und sieht so aus:ODBC;DATABASE=eazybusiness;DSN=EAZY
Ich vermute auch, daß es irgendetwas mit der DAO zu tun hat, denn auch der Aufruf
tblWWS = DAODBEngine_definst.OpenDatabase("ODBC")
funktioniert nicht.
Wo und wie erstellst Du DAODBEngine_definst finde ich im Quelltext nicht, auch auf dem Rechner wo es funktioniert.
Meine bevorzugte Entwicklungsumgebung ist "Clarion for Windows". Diese Programm brauche ich nur, um mit einem ActivX Daten anzuzeigen. Dieses ActivX funktioniert leider unter Clarion nur zum Teil.
Gruß
Peter- Bearbeitet Robert Breitenhofer Sonntag, 3. Januar 2010 13:01 Formatierung
-
Hallo Peter,
schön das es jetzt funktioniert.
Für die Zukunft:
DAO 3.5 gehört noch zu Access 97 => JET 3.5 und ist mittlerweile veraltet.
DAO 3.6 - Access 2000 - 2003 => JET 4.0, wäre also hier richtig.
Du solltest jeweils die aktuelle Version vom bereits genannten KB Artikel verwenden.
Bei neueren Betriebssystemen ist es dabei und wird über Windows-Update aktualisiert.
Zum Finden der Defintion eines Verweises:
Wähle DAODBEngine_definst aus wähle im Editor-Kontextmenü "Gehe zu Definition".
Wenn die Instanz in einer anderen Assembly definiert ist, so wird sie im Objektbrowser angezeigt.
Gruß Elmar- Als Antwort vorgeschlagen Thorsten Dörfler Dienstag, 29. Dezember 2009 11:15
- Bearbeitet Robert Breitenhofer Sonntag, 3. Januar 2010 12:58 Formatierung DAODBEngine_definst
- Als Antwort markiert Robert Breitenhofer Sonntag, 3. Januar 2010 12:59