![]() |
Visual Basic - Paradox
Halli Hallo,
such jetzt schon einige Zeit im Netz und spiel mit Basic rum aber ich bekomm nichts sinnvolles raus. Vielleicht hat ja wer eine Idee zu meinem Problem: Ich möchte aus einer Paradox Datenbank (.db File) die Daten irgendwie rausziehen und in Access oder MS-SQL schreiben. Kann ich eine Paradox mit VB irgendwie ansprechen ??? Hab ein Programm gefunden (Database Explorer) mit dem kann ich das .db File öffnen und mir einen Export in .txt machen. Leider kann ich damit nichts automatisieren. Danke mfg |
hallo !
1. Einfach eine ODBC-Verbindung zur .db Datei erstellen bzw. + z.B. die .db Datei ins Access über diese ODBC-Verbinudung dann einlinken. 2. Recordset öffnen und zugreifen. Bei ODBC ist die zugrundeliegende DB egal (das ist ja der Sinn der Sache) mfg -hannes |
hab ich schon versucht,
egal ob ich die datenquelle über access oder basic ansprech er will es einfach nicht Access meint: Exportieren von Dten aus Ihrer Datenbank, Importieren von Daten in Ihre Datenbank oder Vernküpfen von externe Microsoft Jet- oder ISAM- Datenbanktabellen mi Ihrer Datenbank ist mit ODBC nicht möglich (Access 97) VB mein: [ADODC]:no RecordSource specified.[ADO]:Für das Befehlsobjekt wurde kein Befehlstext festgelegt. :confused: :confused: :confused: Gruß |
ODBC-Zugriff
hi !
hmmm - ich hab keine Paradox DB hier zum ausprobieren + weiß auch nicht, warum das nicht funktionieren sollte. (hab bisher so auf Oracle + SQL-Server zugegriffen und da hats funktioniert) Wenn die DB-Datei net allzugroß ist, kannst ma die ja mal mailen und ich probiers aus (sobald ich dazu zeit hab). mfg -hannes |
DAO Beispiellösungen
Leider habe ich keine Paradox-Datenbank hier aber ich habe diese beiden Lösungen mit der angehängten Paradox-Tabelle getestet und sie haben einwandfrei funktioniert. Die Tabelle habe ich vorher aus der Nordwind Datenbank exportiert. (ins Verzeichnis c:\Paradox\ legen)
Falls es damit auch nicht geht, meld' dich nochmal. ' ################################################## Option Compare Database ' Einbinden einer Paradox-Tabelle, Login-Passwort "geheim" über DAO Public Function Einbinden() Dim db As DAO.Database Dim td As DAO.TableDef Dim dy As DAO.Recordset ' aktuelle Datenbank verwenden Set db = CurrentDb() ' neues TableDef-Objekt erstellen Set td = db.CreateTableDef("Verbindung zu Paradox-Tablelle") ' Verbindungsoptionen einstellen td.Connect = "Paradox 4.x; DATABASE=C:\Paradox\" td.SourceTableName = "Kunden" ' Tabellendefinition in Datenbank einfügen db.TableDefs.Append td ' Zugriff auf die Tabelle Set dy = db.OpenRecordset("Verbindung zu Paradox-Tablelle") MsgBox dy.RecordCount End Function ' Direktes Öffnen einer Paradox-Tabelle "Kunden" (langsamer als Einbinden) über DAO Public Function Oeffnen() Dim db As DAO.Database Dim dy As DAO.Recordset ' Datenbank öffnen Set db = OpenDatabase("C:\Paradox\", False, False, "Paradox 4.x") ' Recordset erstellen Set dy = db.OpenRecordset("Kunden") End Function ' ################################################## so long Seidl PS: nicht vergessen DAO einzubinden ;) |
Übrigens...
hören sich deine Fehlermeldungen nach Problemen im Code an.
Vielleicht kannst du ihn ja posten. so long Sigi |
probleme beim code ?
hi !
@seidl hmmm - glaub nicht, dass die probleme beim code liegen. hab inzwischn eine pm an <bev> geschickt - will die dinge, die ich "rausgefunden" bzw. ausprobiert hab auch den andren zur Verfügung stellen. Daher die Mail: ... Beim einlinken der DB via ODBC erhalte ich die selbe, von dir beschriebene Fehlermeldung. (You cannot use ODBC to import from, export to, or link an external Microsoft Jet or ISAM database table to your DB) Ist anscheinend ein "bekanntes" Problem - weitere Infos dazu findest du unter: http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q230126& Ich das ganze auch noch ohne ODBC, in Access eingelinkt (genauer: versucht) - das Format Paradox ausgewählt. Dann kam folgende Fehlermldung: - Incorrect collating sequence. Falsche Sortierreihenfolge. (Fehler 3220) Sie haben versucht, eine Paradox-Tabelle zu verknüpfen, die mit einer internationalen Sortierreihenfolge erstellt wurde, die nicht mit der von Ihnen verwendeten Reihenfolge übereinstimmt. mfg -hannes |
Zur Sortierreihenfolge:
... Ein Hindernis bei der Einbindung kann allerdings die interne Sortierfolge der Datenbank sein. Wichtig ist, dass der Eintrag "CollatingSequence" in der Registrierdatenbank (siehe xBase Einbindung) mit der in der Datenbank verwendeten Sortierfolge übereinstimmt. Access verwendet standardmässig "ASCII", viele Tabellen sind allerding mit "International" sortiert. ...
(Auszug aus: Microsoft Access Programmierung - Version 2002 [Microsoft Press]) Da dieses Problem aber anscheinend ursprünglich nicht auftrat hat es wahrscheinlich nicht viel Sinn es weiterzuverfolgen. (Es sei denn du interessierst dich dafür) so long Seidl |
@Biri
Wollte gerade deinem Link folgen. Klappt aber (zumindest bei mir) leider nicht.
so long Seidl |
Nur so anbei....
@bev:
Zumindest unter Access2002 gibt's in der Hilfe einen recht umfangreichen Eintrag: "Problembehandlung beim Importieren und Verknüpfen" Ist da nichts dabei das den Fehler erklären könnte? Falls der Eintrag bei Access97 noch nicht in der Hilfe ist kann ich ihn gerne posten. @biri UUUps, sorry! Der Link funktioniert doch. Ich habe nur übersehen das er nicht komplett übernommen worden ist. strg+c strg+v hat mir dann weitergeholfen ;) so long Seidl |
@seidl:
stimmt - habs jetzt selbst nochmal probiert: Die Linkadresse wird beim 1. ";" abgeschnitten ! weiß net, Anscheinen ist ";" in HTML ein Trennzeichen, oder sowas in der Art... komisch. :confused: Musst den Text halt "manuell" - also auch das, was nach ";EN-US;...." kommt in den Webbroser reinkopiern. mfg -hannes |
@biri
Da haben wir wohl unsere letzten Postings gleichzeitig erstellt ;)
Zumindest sind wir zum gleichen Ergebnis gekommen. |
Hallo
@seidl: Hab deine geposteten Code ausprobiert und bekomme wieder die Fehlermeldung "Falsche Sortierreihenfolge". Bin auch schon auf der Microsoft Page gewesen und hab in der Registry den Wert von "ASCII" auf "International" umgestellt, hat nichts geholfen. Im Access 97 bekomm ich genau 2 Zeilen Hilfe zur Fehlermeldung... Schau mal was du zur Fehlermeldung zu "Fehler 3220" im Access 2002 bekommst, wenn die etwas sinnvoller ist wäre es super wenn du die posten könntest. Danke Gruß |
Hoffentlich hilft das
Also, der Fehler 3220 ist ein ADO-Fehler (Konstante: adErrCantChangeProvider)und die Fehlermeldung dazu lautet:
"Der angegebene Provider unterscheidet sich von dem bereits verwendeten." Aber so schlau warst du wahrscheinlich auch schon. Mehr gibt meine Hilfe dazu leider auch nicht her. Ist aber unter Umständen auch ausreichend. Wo tritt denn der Fehler auf? Auf jeden Fall habe ich auch noch den Hilfeeintrag zu "Problembehandlung beim Importieren und Verknüpfen" (in früherem Posting angesprochen) als Anhang dazugelegt. Der erste Punkt könnte vielleicht schon ein Treffer sein. Ausserdem hab' ich nochmal im Access2002-Buch nachgesehen. In meinem letzten Auszug daraus wurde ja auf XBase verwiesen. Hier also der angesprochene Teil aus dem Abschnitt über XBase: ---------------------------------------------------------------- Ein Thema, dass bei der Einbindung von xBase-Daten keinesfalls vergessen werden darf, ist die Unterstütztung von Indizes (aus Performace-Gründen unbedingt zu empfehlen). Bevor Access mit den vorhandenen dBase- (.ndx oder .mdx) bzw. FoxPro-Indizes (.idx oder .cdx) arbeiten kann, müssen Sie diese in einer .inf-Datei deklariert haben. Diese Datei trägt denselben Namen wie die indizierte Tabelle. Den Grundaufbau können Sie dem folgenden Beispiel entnehmen. Beispiel: Tabelle "Telefon" (Ort, Vorwahl), beide Spalten indiziert (Index: Telefon.mdx) ebenfalls im Anhang Die INF-Datei müssen Sie entweder "zu Fuss" erstellen oder Sie binden die Tabelle über den Menübefehl "Datei/Externe Daten" ein. Access fragt in letzterem Fall nach den zugehörigen Indizes. Haben Sie din Indizes eingebunden, werden diese bei Änderungen an der Tabelle natürlich ebenfalls aktualisiert. ---------------------------------------------------------------- (Auszug aus: Microsoft Access Programmierung - Version 2002 [Microsoft Press]) Die Index Datei heisst bei Paradox zwar *.px aber der Rest dürfte (laut Buch) gleich sein. Standardmässig sucht Access im aktuellen Verzeichnis nach der *.px Datei (welches das auch immer sein mag ;). Vielleicht muss man ihm also wirklich mit der INF-Datei auf die Sprünge helfen. Wenn das alles nichts hilft bin ich leider mit meinem Latein auch am Ende. so long Seidl |
hallo hallo
vielen dank für die hilfe, hab das mit der .px datei versucht... hat wieder nicht geklappt. ich gebs schön langsam auf, muss i halt ab und zu an manuelen export in a textfile machen und das dann importieren wenn i des ganze noch irgendwie zum laufen bring werd ichs posten. nochmal vielen dank für eure hilfe! schöne grüße bev |
Alle Zeitangaben in WEZ +2. Es ist jetzt 13:39 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag