WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   datentransfer excel / access --> recordsetdaten falsch!?! (http://www.wcm.at/forum/showthread.php?t=90969)

Seidl 14.03.2003 22:16

Jetzt sag aber bloss nicht, dass du den Kunden erlaubst die Excel-Files selbst zu erstellen!!!
Die sollen gefälligst eine Vorlage nehmen die du Ihnen zukommen lässt. Warum sollst du dich mit den Unzulänglichkeiten von Usern ärgern wenn schon die Softwaretools genug Macken haben?

Wenn du in einer Vorlage die betreffenden Spalten von Haus aus als 'Text' definierst und die Kunden dann in diese eintragen, hat sich das Problem erledigt. Falls wirklich noch alte Files aufgearbeitet werden müssen kann man als Übergangslösung sicher auch mal einzeln ein Programm oder Makro drüberlaufen lassen das die Sache behebt. Besser der Computer arbeitet nachts mal ein paar Stunden, als du verbringst unnötige Zeit vor'm Schirm (es sei denn du wirst nach Zeit bezahlt :D)

renew 15.03.2003 00:27

Zitat:

Original geschrieben von Seidl
Jetzt sag aber bloss nicht, dass du den Kunden erlaubst die Excel-Files selbst zu erstellen!!!
Die sollen gefälligst eine Vorlage nehmen die du Ihnen zukommen lässt. Warum sollst du dich mit den Unzulänglichkeiten von Usern ärgern wenn schon die Softwaretools genug Macken haben?

Wenn du in einer Vorlage die betreffenden Spalten von Haus aus als 'Text' definierst und die Kunden dann in diese eintragen, hat sich das Problem erledigt. Falls wirklich noch alte Files aufgearbeitet werden müssen kann man als Übergangslösung sicher auch mal einzeln ein Programm oder Makro drüberlaufen lassen das die Sache behebt. Besser der Computer arbeitet nachts mal ein paar Stunden, als du verbringst unnötige Zeit vor'm Schirm (es sei denn du wirst nach Zeit bezahlt :D)

tja, die einzige "Bezahlung" die wir erhalten, is der Abschluss eines Maturaprojekts... ;)

Und das mit dem Makro glaub ich nicht, dass der das so gern hätte. Bzw. muss dir da der maxmustermann sagen was die Aufgabenstellung war, da ich erst seit dem Troubleshooting bei dem einen Modul dabei bin. :)

Aber is der Zugriff direkt auf die Zellen wirklich so viel langsamer als mit einem "Excel-Recordset"?
Weil das hab ich vorher noch nie gesehen/verwendet und weiß auch nicht was der da im Hintergrund alles werkelt um das ganze als Recordset aufzubereiten.

maxmustermann 15.03.2003 14:24

das excel file wird soweit ich weiss von einer seite im web runtergeladen..

also das is so ne seite für aktien..

da kann man dann glaub ich auswählen welche aktien man will, und dann wird ein excel file erstellt.. das man runterladet.. oder irgendwie so =)

weiss ich auch ned so genau.. ich weiss nur das ich das file halt dann so bekomm

Seidl 15.03.2003 20:45

Im Prinzip wird die Zugriffsart ziemlich egal sein. Die Geschwindigkeit wird sicher nicht so niedrig sein, dass sich daraus ein Problem ergibt. Wie gross der Unterschied wirklich ist könnte ich jetzt auf Anhieb aber nicht sagen. ADO bietet aber jeden Fall den Vorteil eines sehr komfortablen Handlings der Daten.

Da in eurem Fall die Daten aber eben leider in einer ziemlich ungeeigneten Form vorliegen, lässt sich die Verwendung anderer Hilfsmittel durchaus argumentieren.
Die Möglichkeiten bei Verwendung von Automatisierung oder DDE sind ja auch nicht zu verachten. Wenn man sich mit einem dieser Hilfsmittel eine kleine Klasse für den Datenzugriff schreibt, dann kann man bestimmt auch ganz passabel mit den Daten arbeiten.

renew 15.03.2003 22:39

Zitat:

Original geschrieben von Seidl
...
Die Möglichkeiten bei Verwendung von Automatisierung oder DDE sind ja auch nicht zu verachten. Wenn man sich mit einem dieser Hilfsmittel eine kleine Klasse für den Datenzugriff schreibt, dann kann man bestimmt auch ganz passabel mit den Daten arbeiten.

wie was wann wo? ;)

Könntest du ev. ein kleines Beispiel bauen? Weil das was du oben geschrieben hast übersteigt meine VB Kenntnisse (hab mir noch nie eine eigene Klasse bauen müssen, und weiß eigentlich auch nicht wie das geht)

Falls du dazu kommst, dank ich dir schon mal - weil dann lern ich wieder was neues dazu. :)
Kannst es natürlich auch im "nativen" VB (=6.0) schreiben, geht warhscheinlich schneller als wenns dir eine Access DB mit VBA Code baust.

Naja, wie auch immer, ich bedank mich jetzt schon mal, mfg, LLR

wbendl 16.03.2003 21:47

hi

ich komme hier ziemlich spät rein, und vielleicht habe ich beim durchlesen irgenwas übersehen oder falsch verstanden.

hat schon jemand überlegt, die excel-datei über vba-code in der access-db zu formatieren?
besser noch eine kopie, die kann man nachher löschen, und das original bleibt unangetastet.

der code für die verwendung von excel als object in access dürfte nicht so kompliziert sein. ich habe sowas einmal in einem vb6 projekt gemacht.
auf den code zum manipulieren der excel-datei kommt man leicht, wenn man in einer testdatei die gewünschte aktion als makro aufzeichnet.

vielleicht bringt euch das ja weiter.

WB

maxmustermann 16.03.2003 22:27

also der code um excel als objekt zu verwenden is wirklich nicht das problem..
das haben wir schon gemacht, nur ist dieser vorgang meiner meinung nach bissl umständlicher als einfach einen recordset über ado in einem bestimmten bereich zu definieren.. zumindest bei dem teil des moduls..

ich werd morgen mal testhalber das ganze mit der objektmethode versuchen und anschliessend mit der ado recordset methode..

mal sehen wie groß der zeit unterschied ist!

das mit dem bearbeiten der excel datei aus dem vba-code heraus geht auch nicht wirklich, da die feldtypen schon bestimmt sind, sobald was drinnen steht..

die müssen vorher definiert sein.. zumindest soweit ich das verstanden hab! sonst funkt das nicht, und ich hab das prob warum der beitrag überhaut entstanden ist!

wie meinst das mit der kopie? ganz neue excel datei erstellen?

das was seidl vorgeschlagen hat, würd ich aber auch sagen könnten wir mal ausprobiern! nur ne kleine anleitung bzw bspcode wie llr schon erwähnt hat wäre da echt nicht schlecht =)

weil hab keine ahnung wie sowas geht..

wbendl 17.03.2003 00:25

ich kann dein beispiel nicht nachvollziehen, weil ich die passende version von office nicht habe.
in office 97 war ado noch kein thema, und ich bin von access überhaupt weg. (eben wegen der ständigen neuerungen, die inkompatibel mit der vorversion sind)

ich gehe aber davon aus, daß das problem nicht auftritt, wenn alle zellen als "text" formatiert sind. seidl hat da wahrscheinlich recht.

ich hab mir vorgestellt, der vba-code macht folgendes:

kopie der excel-datei erstellen

zellen in "text" umformatieren
falls umformatieren nicht reicht, oder nicht funktioniert, eine neue tabelle mit vorformatierten zellen erstellen, und daten übernehmen

daten importieren

kopie löschen

das kostet zwar etwas zeit, aber wenns funktioniert sollte das keine rolle spielen

WB

maxmustermann 17.03.2003 02:38

wäre auch ne möglichkeit..

aber erstmal abwarten was mit dem vorschlag von seidl mit der automatisierung und dde rauszuholen ist!

Seidl 17.03.2003 09:05

Hallo!

Ich werde heute am Abend versuchen ein kleines Beispiel zu coden.


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:30 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag