Data Access Error ?

Data Access Error ?
Moin, ich habe ein Programm geschrieben und es gestern auf einem Windows XP SP2 pc getestet. nun möchste ich es auf einem anderen Win xp _nutzen und bekomme einen Data Access error ?
ich lese eine dbf datei auf die im gleichem ordner liegt, kein anderes programm hat gerade zugriff ?
kennt jemand das problem

mfg jonny

Hallo Jonny,

Tja das sind die alt bekannten Probleme unter Vb wenn man DAO nutzt.
Die Ursache kann vieles sein. Es faengt schon dabei an, wie du es auslieferst oder es getestet hast etc.
Sicherlich wirst du frueher oder später noch auf andere Phaenomaene stossen, aber wollen wir das nicht hoffen!

Ich hatte dir damals eine fast fertige Lösung mittels Ado praesentiert ( eben wegen solcher Probleme etc.) aber die wolltest du nicht. Da habe ich mir ergo umsonst Gedanken gemacht.

Nun stellt sich die Frage, warum soll ich mir nun wieder Gedanken machen, wenn die evtl. Lösung doch nicht angenommen wird oder net einmal ein Danke kommt ?

MfG Alex

Lass das mal mit den Frendworten
Hallo Alex,

was ist dieses Wort „Danke“ ? Aus welchem Sprachraum kommt das?
Ist das hier üblich?
Fragen über Fragen…

Wobei ich es, in nehme an wie du sehe, Danke ist schön als ein Feedback, aber für mich ist es bedeutend eher wichtig wenn ein Feedback kommt daß jmd. mit meinem Lösungsversuch scheitert.

Denn dann kann man weiterversuchen das zu lösen.

Wenn kein Feedback kommt, aber die gleiche Frage neu auftaucht, schürt mir das den Hals zu o.ä., dann hab ich die gleichen Gedanken die du geschrieben hast, warum soll ich mir dazu nochma den Kopp machen.

Gruß
Reinhard

Hallo Reinhard,

was ist dieses Wort „Danke“ ? Aus welchem Sprachraum kommt
das?

Aus dem Deutschen *gg* Aber Englisch würde es zur Not auch tun *lach*

Ist das hier üblich?

Also wenn ich mal Hilfe brauche und mir versucht einer zu helfen dann bedanke ich mich schon :smile:

Fragen über Fragen…

Wobei ich es, in nehme an wie du sehe, Danke ist schön als ein
Feedback, aber für mich ist es bedeutend eher wichtig wenn ein
Feedback kommt daß jmd. mit meinem Lösungsversuch scheitert.

Denn dann kann man weiterversuchen das zu lösen.

Weisst Reinhard, ich weiss net ob du den Thread verfolgt hast. Er hat sich mit Rainer seiner Hilfe nen Code zusammengestrickt der naja net grad schoen war. Rainer habe ich dann auch darauf hingewiesen und ihm und Joe ne andere Variante geboten. Die A net so anfaellig ist, B leicht ausbar ist, C Ressourcen Schonender ist, D einfacher und E übersichtlicher ist. Seine vorhandene Datenbank, die er bekommen hat, war oder ist total wüst, so das der gewuenschte Zugriff net so einfach möglich ist. Mal abgesehen davon das man erst ein Tool schreibt, was die Datenbank bereinigt, waere der Zugriff auch so gegangen. Das einzigste woran es gescheitert ist, war das passende SQL Statement. Aber dies haette man im entsprechenden Brett erfragen koennen oder ich haette halt mal meine Unterlagen gewälzt.

Rainer war eigentlich fasziniert von der Variante, aber scheinbar er nicht. naja warum auch immer. Was mich nur aergert das A nicht einmal ein Danke kam oder wenigstens eine Info, das er den Weg net einschlagen möchte. Warum auch immer. Ich frage mich immer wieder, warum Menschen noch auf DAO zurueckgreifen ? Spätestens in ein paar Jahren wird nicht ein Programm mehr laufen was mit DAO programmiert ist.

MfG Alex

Hi Alex,

Rainer war eigentlich fasziniert von der Variante,

klar, die war kurz und elegant, das bedeutet auch immer gleichzeitig schnell und stabil. :smile:

Ich frage mich immer wieder, warum Menschen noch auf DAO
zurueckgreifen?

Das kann ich Dir erzählen, ich tu’s ja auch immer wieder. :smile:

  • Um mit ADO an ein Recordset zu kommen, brauche sich viel mehr Code als mit DOO. Den Code für DAO habe ich mir inzwischen gemerkt, für ADO ist das viel zu viel, ich muss mir immer erst mein Beispiel suchen und kopieren. ADO kann ich schnell aus dem Kopf schreiben.

  • zum suchen und filtern benötige ich mit ADO ein neues Recordset, während ich mit DAO mit einem Recordset auskomme, dort navigiere … für mich ist das leichter zu denken, nicht so kompliziert, ich behalte leichter den Überblick über mein Programm. Wenn ich zufällig einen datensatz auswählen möchte kann ich das bei DAO ganz leicht tun, indem ich ‚AbsolutePosition‘ setze, ob und wie so etwas mit ADO geht, ist mir unklar. Kurz, DAO ist einfacher zu handhaben und ich habe den Eindruck, daß mit DAO mehr Funktionen zur Verfügung stellt.

Ich weiß, daß DAO keine Zukunft hat, daß ich mich an ADO gewöhnen muss, aber gefallen muß mir das deswegen ja nicht. Nur um weniger Funktionen zu haben brauche ich zehn mal so viel Code um eine Tabelle anzeigen zu können.

OK, genug gemeckert. :smile:

Jetzt schreib mir doch mal, welchen Vorteil ADO gegenüber DAO bringt, den habe ich nämlich noch nicht gefunden. Daß DAO instabil ist, konnte ich bisher noch nicht bemerken.

Gruß, Rainer

Hi Alex,

Guten Morgen Rainer :smile:

Das kann ich Dir erzählen, ich tu’s ja auch immer wieder. :smile:

Ja „leider“ Nur warum ? So schwer ist der Syntax nicht. Ist doch immer das selbe, bis auf den Connection String.

  • Um mit ADO an ein Recordset zu kommen, brauche sich viel
    mehr Code als mit DOO. Den Code für DAO habe ich mir
    inzwischen gemerkt, für ADO ist das viel zu viel, ich muss mir
    immer erst mein Beispiel suchen und kopieren. ADO kann ich
    schnell aus dem Kopf schreiben.

Warum schreibst du dir nicht eine DLL, die alle Datenbanken Routinen beinhaltet und bindest die dann ein? So schreibst den Kram halt nur einmal und das wars!

  • zum suchen und filtern benötige ich mit ADO ein neues
    Recordset, während ich mit DAO mit einem Recordset auskomme,
    dort navigiere … für mich ist das leichter zu denken, nicht
    so kompliziert, ich behalte leichter den Überblick über mein
    Programm. Wenn ich zufällig einen datensatz auswählen möchte
    kann ich das bei DAO ganz leicht tun, indem ich
    ‚AbsolutePosition‘ setze, ob und wie so etwas mit ADO geht,
    ist mir unklar.

Filtern oder einen Datensuchen machst du via SQL :smile: Auch gibt es das beruehmte „AbsolutePosition“ unter ADO auch, genauso kannst du mittels ADO auch „Bookmarks“ setzen. Kannst du das mittels DAO ?
Wenn du einmal das Recortdset hast, kannst du mind. das gleiche wie mit DAO machen :smile:

Kannst du dich noch an meine Fehlerbehandlungsroutine erinnern? Kannst du mittels DAO auf saemtliche Datenbanken zugreifen?
Kannst du mittels DAO einen Multiuser Zugriff auf Datenbanken realisieren?
Kannst du mittels DAO View’s und „SP“ anlegen und ausführen ?
Kannst du Recordset’s lokal speichern?
Kannst du den Zugriffsmodus unter DAO festlegen ( Write, ReadOnly etc.)

Gehen wir mal weiter zu den Recordset’s

Du hast geschrieben, das du mittels ADO wunderbar Filtern etc. kannst. Auch das kannst du unter ADO.
Die Methoden Sort, Find, Filter gibt es da auch :smile:
Zu den Sachen Locktype und Cursortype, die lassen wir jetzt erst einmal aussen vor :wink:

Commandos kannst du auch mittels ADO wunderbar erstellen. Sprich Lösch Anfragen etc. Das Thema hatten wir ja auch letztens und du hast einen weg gezeigt das es mittels DAO auch geht :smile:

Kurz, DAO ist einfacher zu handhaben und ich
habe den Eindruck, daß mit DAO mehr Funktionen zur Verfügung
stellt.

Dann zeige mir mal eine Funktion die DAO kann und ADO nicht *gruebel*
Wenn du ADO schon ein paar male praktiziert hast, ist es auch nicht wirklich schwer. Du musst nur wissen, was welche Konstante bedeutet Rainer :smile:

Ich weiß, daß DAO keine Zukunft hat, daß ich mich an ADO
gewöhnen muss, aber gefallen muß mir das deswegen ja nicht.

Ein paar mal damit gearbeitet und die Vorteile bemerkt, wird es dir schnell gefallen :smile: Aber mal abgesehen ist ADO auch nicht mehr das, was es mal war. Die Zukunft heisst nun ADO.NET. Aber soviel anders als ADO wird das sicherlich auch nicht sein :smile:

OK, genug gemeckert. :smile:

Och wo issn das gemeckert ? Nur schweifen wir hier vom Thema ab :s

Jetzt schreib mir doch mal, welchen Vorteil ADO gegenüber DAO
bringt, den habe ich nämlich noch nicht gefunden. Daß DAO
instabil ist, konnte ich bisher noch nicht bemerken.

Versuche mal eine Anwendung die DAO benutzt auf Vista auszuführen oder siehe das problem von Joe *zwinker*

Was die Vorteile von ADO zu DAO angeht. Naja beantworte mir erst einmal die Fragen, danach sollten sich die Vorteile schon herausstellen oder ?
Aber was die Vorteile angeht. Hier mal ein kleiner Auszug aus einem anderen Forum

DAO ist MS-Uralttechnick um native auf MS-Access-Datenbanken zugreifen zu können.

ADO ist noch halbwegs aktuell (wenn man bei Win32 bleibt aktuell) und man kann damit so ziemlich auf alle DB's zugreifen (am besten auf MS SQL-Server und Access und ODBC-Einträge).

Hauptvorteil von ADO gegenüber DAO:
- Kostenlose verteilung erlaubt

- Keine Vorraussetzungen bzw. MS-Entwicklerlizenzen

- Ist i.d.R (je nach benötigter Version) schon auf vielen Rechnern installiert (u.a. durch IE)

- Keine BDE nötig

- relativ DB-Unabhängig

- Noch halbwegs von MS unterstützt (Es gibt ja mittlerweile ADO.NET)

Gruß, Rainer

MfG Alex

Guten Morgen Alex! :smile:

Warum schreibst du dir nicht eine DLL, die alle Datenbanken
Routinen beinhaltet und bindest die dann ein? So schreibst den
Kram halt nur einmal und das wars!

wie geht das denn? Bei dll fällt mir API ein, aber das ist etwas anderes.

Filtern oder einen Datensuchen machst du via SQL :smile:

Das sage ich doch. Mir leuchtet nicht ein, daß ich ein weiteres Recordset benötige, wenn ich wissen möchte ob in einem vorhandenen Recordset ein bestimmter Datensatz vorhanden ist.

Auch gibt es das beruehmte „AbsolutePosition“ unter ADO auch

Das ist unter ADO schreibgeschützt. :smile:

genauso
kannst du mittels ADO auch „Bookmarks“ setzen. Kannst du das
mittels DAO ?

Ich glaube ja. Dafür hatte ich noch keine Verwendung.

Kannst du dich noch an meine Fehlerbehandlungsroutine
erinnern? Kannst du mittels DAO auf saemtliche Datenbanken
zugreifen?

Mit einer einzigen Ausnahme hatte ich bisher nur Zugriff auf Datenbanken, die ich selbst gebaut habe.

Kannst du mittels DAO einen Multiuser Zugriff auf Datenbanken
realisieren?

Das kann ich mit ADO auch nicht. Geht das denn? Falls ja, wäre das DAS Argument, weshalb ich DAO nicht mehr anfasse.
Wie würde das denn aussehen, wenn ich einen Datensatz sperrend lesen möchte? Ich weiß nur vom Sperren ganzer Tabellen und das ist für Multiuser Zugriff ja komplett ungeeignet. Das Sperren eines Datensatzes wäre sehr interessant.

Kannst du mittels DAO View’s und „SP“ anlegen und ausführen?

Es geht, ich kann es per VB weder mit ADO noch mit DAO. :smile:

Kannst du Recordset’s lokal speichern?

Noch nicht darüber nachgedacht. Ich denke, da kann ADO nichts, was DAO nicht auch kann.

Kannst du den Zugriffsmodus unter DAO festlegen ( Write,
ReadOnly etc.)

Da bin ich jetzt unsicher, mir ist aber auch der Sinn nicht klar.

Gehen wir mal weiter zu den Recordset’s

Du hast geschrieben, das du mittels ADO wunderbar Filtern etc.
kannst. Auch das kannst du unter ADO.

Nur stark eingeschränkt, man kann nur ein Feld als Kriterium verwenden, mehrere funktionieren nicht mehr, das geht nur mit DAO.

Die Methoden Sort, Find, Filter gibt es da auch :smile:

Sind aber unbrauchbar geworden.

Dann zeige mir mal eine Funktion die DAO kann und ADO nicht
*gruebel*

Recordset.Absolute Position = 123
Recordset.FindFirst „Feld1 = 2 And Feld 4 = 6“

Ich weiß, daß DAO keine Zukunft hat, daß ich mich an ADO
gewöhnen muss, aber gefallen muß mir das deswegen ja nicht.

Ein paar mal damit gearbeitet und die Vorteile bemerkt, wird
es dir schnell gefallen :smile:

ich habe ADO schon einige male verwendet … :smile:

Versuche mal eine Anwendung die DAO benutzt auf Vista
auszuführen oder siehe das problem von Joe *zwinker*

Was ist Vista? Und der Punkt Weitergabe … ein paar Programme von mir, die DAO verwenden laufen seit Jahren stabil auf mehreren Rechnern, werden immer mal wieder neu installiert, weil die Rechner ausgetauscht werden … ich hatte noch nie ein Problem damit. Ich vermute, Joes Problem ist Hausgemacht, ich habe nur keine Ahnung wie.

Was die Vorteile von ADO zu DAO angeht. Naja beantworte mir
erst einmal die Fragen, danach sollten sich die Vorteile schon
herausstellen oder?

Oder. :smile:

Aber was die Vorteile angeht. Hier mal ein kleiner Auszug aus
einem anderen Forum

DAO ist MS-Uralttechnick um native auf MS-Access-Datenbanken
zugreifen zu können.

Das ist, was ich brauche. Über den Einsatz in kleinen Unternehmen werden VB6-Anwendungen ohnehin nicht mehr hinauskommen.

Hauptvorteil von ADO gegenüber DAO:

  • Kostenlose verteilung erlaubt

Falsch. Das ist eine Gemeinsamkeit, kein Unterschied.

  • Keine Vorraussetzungen bzw. MS-Entwicklerlizenzen

Falsch. Das ist eine Gemeinsamkeit, kein Unterschied.

  • Ist i.d.R (je nach benötigter Version) schon auf vielen
    Rechnern installiert (u.a. durch IE)

Das erledigt die Installation des VB-Programms nebenbei.

  • Keine BDE nötig

??? Wer ist BDE?

  • relativ DB-Unabhängig

  • Noch halbwegs von MS unterstützt (Es gibt ja mittlerweile
    ADO.NET)

Die letzten beiden Punkte zählen nicht. Wenn ich etwas anfange, dann baue ich zuerst die Datenbank. Womit ist meine Angelegenheit.

Daß ich mit DAO nicht in die SAPDB komme ist mir auch klar, dafür werde ich aber auch keine Anwendungen mit VB6 schreiben.

Gruß, Rainer

Hallo Jonny,

Hallo Alex (anno)

Tja das sind die alt bekannten Probleme unter Vb wenn man DAO
nutzt.
Die Ursache kann vieles sein. Es faengt schon dabei an, wie du
es auslieferst oder es getestet hast etc.
Sicherlich wirst du frueher oder später noch auf andere
Phaenomaene stossen, aber wollen wir das nicht hoffen!

Joa, Phaenomaene hatte ich … 3 Windows systeme und auf allen ein anderes Fehlerbild. Erst eine nicht Registrierte Dll. danach eine dll die sich nicht registrieren ließ, trotz Admin… msxbse35.dll war es soweit ich mich erinnere. nach der Installation eines DAO32 tool ging alles.

Ich hatte dir damals eine fast fertige Lösung mittels Ado
praesentiert ( eben wegen solcher Probleme etc.) aber die
wolltest du nicht. Da habe ich mir ergo umsonst Gedanken
gemacht.

Nein hast du nicht! Ich werde mir bei Zeit die Schönere / Sauberer / kleinere Lösung anschauen! Nur muss ich zugeben das ich als VB6 „noob“ die Lange / unschöne /CPU Lastige Lösung einfach besser verstanden und mit eigenen mitteln bearbeiten konnte.

Nun stellt sich die Frage, warum soll ich mir nun wieder
Gedanken machen, wenn die evtl. Lösung doch nicht angenommen
wird oder net einmal ein Danke kommt ?

Der letzte Satz ist ein Stich ins Herz! Sorry, so wollte ich das nicht stehen lassen, gäbe es ein spendenkonto, würde ich zahlen, würde ein webebanner geben: würde ich klicken … und ganz bestimmt bin ich dir und Rainer unendlich dankbar…Leider habe ich die eigenschaft, sobald ich eine brauchbare antwort auf eine Frage bekommen habe (Bisher gabe es hier immer eine) dreht sich die Welt um diese Antwort … Task zu VB6 und basteln basteln basteln … ich vergesse raum & zeit … und die Familie.

Ich möchte hier nochmal zum ausdruck bringen WIE DANKBAR ich euch beiden Bin / War, gerade was die Datenbank geschichte anging.!
Würde ich nicht so eine ANGST vor SQL haben hätte ich sofort drauf zurückgegriffen.(Schlechte erfahrung in der Berufsschule…)

DANKE = Danke + Ich bin euch echt Dankbar + Sorry
mfg jonny

MfG Alex

Moin,
muss auch hier nochmal 1-2 ergänzende Zeilen loswerden.

Weisst Reinhard, ich weiss net ob du den Thread verfolgt hast.
Er hat sich mit Rainer seiner Hilfe nen Code zusammengestrickt
der naja net grad schoen war. Rainer habe ich dann auch darauf
hingewiesen und ihm und Joe ne andere Variante geboten.

Bis hier hatte ich den Code verstanden.:confused:

Die A
net so anfaellig ist, B leicht ausbar ist, C Ressourcen
Schonender ist, D einfacher und E übersichtlicher ist. Seine
vorhandene Datenbank, die er bekommen hat, war oder ist total
wüst, so das der gewuenschte Zugriff net so einfach möglich
ist. Mal abgesehen davon das man erst ein Tool schreibt, was
die Datenbank bereinigt, waere der Zugriff auch so gegangen.
Das einzigste woran es gescheitert ist, war das passende SQL
Statement. Aber dies haette man im entsprechenden Brett
erfragen koennen oder ich haette halt mal meine Unterlagen
gewälzt.

Wie weiter oben schon geschrieben war ich auch beeindruckt wie eine DinA4 Seite voller code plötzlich auf 5 Zeilen geschrumft war… aber da stand SQL im code :confused: klingt komisch … Aber Ich und her SQL Select … müssen uns erstmal in einem guten Buch näherkommen bevor wir zusammen glücklich werden.

Rainer war eigentlich fasziniert von der Variante, aber
scheinbar er nicht. naja warum auch immer. Was mich nur
aergert das A nicht einmal ein Danke kam oder wenigstens eine
Info, das er den Weg net einschlagen möchte. Warum auch immer.

Sorry. ich hatte jeden Code getestet, aber da ich die Ergebnisse noch auf bestimmte weise Visualisieren und über eine Txt in Excel anzeigen wollte konnte ich nur mit dem „unsauberen DAO code arbeiten“

Ich frage mich immer wieder, warum Menschen noch auf DAO
zurueckgreifen ? Spätestens in ein paar Jahren wird nicht ein
Programm mehr laufen was mit DAO programmiert ist.

Ich habe DAO verwendet da ich DANK RAINER somit meine ersten brauchbaren ergebnisse bekommen habe. Für Mich war DAO ein stück Code der sich genausogut wie VB6 lesen und verstehen lässt. Sicher könnt ihr Sql genausogut lesen aber ich habe da noch meine probleme öhm DAO ist VB oder ?

mfg jonny

Hallo Rainer,
auch dir nochmal „Besten Dank“ für deine Hilfe zu meinem Datenbank problem. Auch wenn es nicht so aussah hast du /habt ihr mir wirklich sehr geholfen und will diese hilfe nicht in zukunft missen, nur weil ich „Honk“ den Threat offen gelassen bzw. kein Feedback und Danke hinterlassen habe… Ich kann nur Alex danken das er es ange"schrieben" hat. Sorry & Danke!! Oder wir mein kleiner sagen würde Großes Danke!!! Naja er sagt eigentlich nur „Große Kakao“
um kurz nochmal auf meine probleme einzugehen:

Was ist Vista? Und der Punkt Weitergabe … ein paar Programme
von mir, die DAO verwenden laufen seit Jahren stabil auf
mehreren Rechnern, werden immer mal wieder neu installiert,
weil die Rechner ausgetauscht werden … ich hatte noch nie
ein Problem damit. Ich vermute, Joes Problem ist Hausgemacht,
ich habe nur keine Ahnung wie.

Wie schon geschrieben lief mein Programm auf Win2K Sp4 ohne probleme, Auf meinen Win XP SP2 Laptop auch !! Auf meinem Desktop unter Win Xp SP2 lief es nicht. Nach 30 min google fand ich den Tip die MSXBSE35.dll einfach neu zu registrieren. Also einfach regsvr32 pfad+msxbse35.dll… Nun funktionierte es…

bei meinem Kollegen für den das tool ist gleiches Problem, doch konnten wir komischerweise die dll trotz Admin Rechte nicht registrieren … nach 3 STD fanden wir folgende Seite auf der die DAO 3.6 Redistributable zum Download angeboten wurde… nach dem installieren konnten wir die dll registrieren und alles lief…

http://www.opssys.com/instantkb/article.aspx?id=1008…

Ich Bedanke mich nochmal in aller form für die wie immer schnellen, sachlichen, absolut brauchbaren, hoch qualitativen, freundlichen, Antworten die ich von euch hier jemals erhalten habe und hoffe das ich in Zukunft auch auf euch zählen kann wenn ich verspreche zeitnahes Feedback und Dankeschön beizufügen.

MFg joe