Programm läuft mit Access97-DB aber kann keine Access2000 oder höher DBs benutzen warum?



  • Hallo,

    ich habe selber ein Programm geschrieben, mit dem man eine mit Access 97 angelegte DB bearbeiten kann.
    So man kann Daten auslesen, eingeben, ändern, löschen und suchen. Funktioniert alles super. Wenn cih nun aber eine Access 2000 oder höher Version habe funzt mein Programm nicht mehr. Weiß jemand wieso?

    Ich benutze VIsual C++ 6.0 unter Windows NT

    Hier etwas quelltext....

    #include <afxdao.h>
    .....
    	CDaoDatabase database;
    	CDaoRecordset recordset(&database);
    
    	database.Open("DB.mdb");
             sSql.Format("SELECT * FROM Tabelle");
    	recordset.Open(AFX_DAO_USE_DEFAULT_TYPE, sSql, NULL);
    
    	while(!recordset.IsEOF())
    	{
    	  iBuch_ID = recordset.GetFieldValue("Buch_ID").lVal;
               weitere Felder auslesen....
               recordset.MoveNext();
    	}
    
    	recordset.Close();
    	database.Close();
    

    Hat jemand eine Idee woran es liegt? Und was ich eventuell ändern muss...



  • Da war ein Kompatibilitätsbruch drin.

    Du kannst auch keine DB von Access97 unter Access2000 und umgekehr angucken.

    Aber Abhilfe weiß ich leider nicht. 😞



  • Hallo,

    MFC versucht immer, mit DAO3.5 auf ACCESS zuzugreifen ("This behavior is by design." 😉 ), doch eine ACCESS 2000-Datenbank liegt im Jet 4.0-Format vor, und kann nicht mit DAO3.5 angesprochen werden. Mit einem kleinen Eingriff im Programm oder im Quelltext der MFC kann man der MFC vorgaukeln, daß ihre Version eigentlich 6.01 ist (und eine 6.01-Version, wenn es sie denn gäbe, würde dann auch DAO3.6 laden). Je nachdem, ob man statisch oder gegen MFC-DLLs linkt, gibt es zwei Vorgehensweisen, beschrieben hier:

    http://support.microsoft.com/default.aspx?scid=kb;en-us;q236991

    MfG


Log in to reply