none
VB-Express-2008, Autor = STZ RRS feed

  • Frage

  • Beim Programieren eines OPEN für eine existierend MS-Access-Datenbank mit VB-Express-2008 bekomme ich zur Laufzeit eine Exception "installierbares ISAM nicht gefunden." Soweit so gut, der ISAM-Treiber ist wirklich nicht installiert.

    Aber: Wenn ich die Datenbank mit dem Wizard öffne dann wird sie auch geöffnet. Ich kann in der Vorschau meine Daten in der Datenbank ansehen. Wo ist da der ISAM-Treiber? Kann ich ihn im Programm auch nutzen? Es kann doch nicht sein, dass ich auf jedem Rechner, auf dem ich mein Programm installieren möchte, auch MS-Access (oder Teile daraus) installieren muss.

    Falls es schon Antworten auf diese Frage in diesem Forum gibt, bitte auch um Hinweise.

    Bitte die falsche Autor-Angabe zu entschuldigen, ich habe die Frage beim ertsmaligen Einstieg "Anzeige" (oder so ähnlich) nicht richtig verstanden.

    Autor ist STZ.

    Danke für eventuelle Hilfe, mit freudlichen Grüssen

    Stz.

     

    Donnerstag, 11. Dezember 2008 10:51

Antworten

  • Hallo VB-Express-2008,



    Der Fehler liegt in den Connection String. Du musst anstatt „datasource“ das Wort „Data Source“ schreiben.



     '//Dim con As OleDbConnection = New OleDbConnection("Provider=Microsoft.jet.oledb.4.0;datasource=|DataDirectory|\Telreg.mdb") --> Could not find installable ISAM.
    
        Dim con As OleDbConnection = New OleDbConnection("Provider=Microsoft.jet.oledb.4.0;Data Source=|DataDirectory|\Telreg.mdb")




    Grüße,

    Robert

    Montag, 2. November 2009 09:42

Alle Antworten

  •  

    Du hast aber nicht zufällig ein x64 OS, oder?

    Wenn doch, dann sieh: http://blog.kalmbachnet.de/?postid=61

    Donnerstag, 11. Dezember 2008 15:47
  • Nein, normales WinXP Prof. mit SP2 und SP3.

    Stz.

     

     

    Freitag, 12. Dezember 2008 13:11
  • Stell bitte deinen ganzen Code hier rein, damit wir ausschließen können, dass es ein Programmierfehler ist, oder nicht.

    Danke im voraus
    Samstag, 13. Dezember 2008 11:28
  • Hier mein Code:
    -------------------------------------------------------------------------------------
    Imports System.Data
    Imports System.Data.OleDb
    Public Class T_Form
        Public Sub T_Form_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            ' Public Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Dim con As OleDbConnection = New OleDbConnection("Provider=Microsoft.jet.oledb.4.0;datasource=|DataDirectory|\Telreg.mdb")
            Dim cmd As OleDbCommand = New OleDbCommand("SELECT * FROM Table", con)
            Try
                con.Open()
            Catch ee As OleDbException
                ' do Nothing
            End Try
            Dim myDA As OleDbDataAdapter = New OleDbDataAdapter(cmd)
            Dim myDataSet As DataSet = New DataSet()
            myDA.Fill(myDataSet, "MyTable")
            Dim myDataGridView As New DataGridView()
            myDataGridView.DataSource = myDataSet.Tables("MyTable").DefaultView
            con.Close()
            con = Nothing
        End Sub

    End Class
    -----------------------------------------------------------------------------
    Beim con.Open() tritt die Exception mit "Installierbares ISAM nicht gefunden" auf .
    Gibt es möglicherweise ein Distribution-Pack für diesen ISAM-Treiber?
    Vielen dank für den Hilfeversuch und Entschuldigung dafür, dass ich mich jetzt erst wieder melde.
    Mit freundlichen Grüssen
    Stz.


    Dienstag, 16. Dezember 2008 20:00
  • nun ich hab mir mal deinen Quellcode angesehen, und ich finde dort keinen Fehler, also muss das an VB oder an MS-Access liegen. Nun ich hab mal schnell eine Virtuel Machine erstellt, und dort VB ohne MS-Access installiert, jedoch haben all meine alten Projekte mit VS 2005, die Datenbanken enthalten, funktioniert. Jedoch hab ich nicht probiert ein neues Projekt mit einer Datenbank in dieser Virtuel Machine zu programmieren. Kann es sein, dass du auf deinem PC, auf dem du das Programm schreibst, kein MS-Access hast? Wenn nein, installier es.
    Mittwoch, 17. Dezember 2008 13:18
  • Genau so ist es. Das VB2008-Express (die Gratisversion vom Microsoft) ist allein auf einer Partition, mit WinXP-Prof. +SP1 bis 3.und allen Updates , .NET-Framework 2(3), sowie die SQL-Server-Teile (lt. Install-DVD)  installiert. Keine sonstigen Installationen ausser eines Texteditors. Darauf versuche ich mein Telefonbuch, bisher als MS-Acces-Anwendung, zu portieren. Ich habe ein Version in VB6 ohne Access-Installation entwickelt (damals war ich noch berufstätig). Das hat funktioniert, das Programm lässt sich auch überall (Win98 bis WinXP) installieren und es läuft klaglos. Das Portieren der Source'n von VB6 auf VB2008-Express geht auch nicht, da ich  dazu VB6 installieren müsste (es werden einige DLL's daraus verlangt).
    Nun habe ich keinen Zugriff mehr auf lizenzpflichtige Entwicklungstools und war daher froh über die gratis VS2008-Express-Versionen. Und damit habe plötzlich Probleme schon bei der Entwicklung des Programms.
    Ich kann doch nicht von jedem meiner Bekannten, die mein Telefonbuch haben, verlangen ein MS-Access zu kaufen.

    Und nochmals der Hinweis: Der Wizard im VB2008-Express kann die Dantenbank ohne einen extra  installierten ISAM-Treiber öffnen, und in der Vorschau alle Daten im Telefonbuch zeigen. Auch zeigt das Programm dann den ersten Datensatz zur Lauzeit korrekt an. Wie funktioniert das? Ich konnte die Codesequenz für diesen Vorgang nicht finden um sie zu analysieren.

    Vielen Dank für Hilfe, vielleicht finden wir doch noch einen Weg.
    Mit freundlichen Grüssen.
    STZ.

    Freitag, 19. Dezember 2008 09:50
  • Es bedarf ja nicht direkt Access um mit diesen Datenbanken zu arbeiten.
    Du benötigst lediglich die Microsoft JET Datenbank Engine.
    Die kannst ud meineswissens auch mit der Anwendung als Komponente ausliefern - genau wie es mit dem .net Framework beim Setup passiert, wenn es nicht drauf ist, dann wird es Installiert.
    Dienstag, 30. Dezember 2008 10:32

  • Auf meinem System ist die Datei "Msjet40.dll" im Verzeichnis "Windows\System32" vorhanden, ebenso das SP2 dazu.
    Es funktioniert trotzdem nicht.
    Wer kann mir hier helfen?
    Danke.
    M.f.G.
    Stz.


    Sonntag, 4. Januar 2009 09:06
  • Bitte bitte, kann mir jemand helfen?
    Ich habe bereits festgestelt, das auf meinem System mit WinXP-Prof +SP1 +SP2 +SP3  alle Funktionen des MDAC vorhanden sind. Das hat jedenfalls ein Installierungsveruch eregeben.
    Dank, danke.
    M.f.G.
    Stz.
    Samstag, 17. Januar 2009 21:50
  • seltsam. setzt mal neu auf, kann oft hilfreich sein. Bei mir hat VB mit all seinen extras auch mal gesponnen, nur weil so ein blödes Programm beim deinstallieren Fonts und .net-Framework Datein auf meinem PC gelöscht hat. Ich glaube das ist nur ein Problem das auf deinem PC so ist. Hab jetzt schon viel unter Vista mit Datenbanken gearbeitet und noch keine schwierigkeiten gehabt
    Montag, 19. Januar 2009 18:18
  • Hallo VB-Express-2008,



    Der Fehler liegt in den Connection String. Du musst anstatt „datasource“ das Wort „Data Source“ schreiben.



     '//Dim con As OleDbConnection = New OleDbConnection("Provider=Microsoft.jet.oledb.4.0;datasource=|DataDirectory|\Telreg.mdb") --> Could not find installable ISAM.
    
        Dim con As OleDbConnection = New OleDbConnection("Provider=Microsoft.jet.oledb.4.0;Data Source=|DataDirectory|\Telreg.mdb")




    Grüße,

    Robert

    Montag, 2. November 2009 09:42