Konvertierung von Daten aus Excel in Access (in Visual C++ Programm)

Beginnerin

Mitglied
Hallo,
ich hab bereits gelesen, dass mehrfach die Frage beantwortet wurde, wie man Access Daten in Excel bekommt.
Ich versuche das genau andersrum.
Da Access Daten (meiner Meinung nach) in C++ erheblich leichter zu verarbeiten sind,
will ich ein Excel Tabellenblatt konvertieren.
Dies soll alles im Hintergrund laufen, so dass der Anwender nichts von der Konvertierung erfährt. Deshalb ist es nicht möglich, einfach in Excel auf Exportieren zu klicken.

Kennt sich jemand damit aus? Gibt es hierfür schon vorgefertigte Klassen?
Ist es möglich, dass Spaltennamen automatisch erkannt werden? Und eine Überschrift komplett ignoriert wird?
Eine feste Zuweisung ist nicht möglich, da die Excellisten unterschiedlich lang sind.
Ich kann also nicht einfach Zeile 1 bis 5 auslesen. Vor allem da die Liste mal in Zeile 2, mal in Zeile 3 usw beginnt.

Kurz gesagt: Ich würde gerne auf die Funktion, die man im Excel unter Daten/Zu Microsoft Access konvertieren findet über C++ zugreifen.

Vielen vielen Dank bereits für die Hilfe
 
Hallo

Soweit wie ich das weiß kann das access selbst machen. Von Excel zu Access.

MfG Sascha
 
Hallo nochmals...

Also der Code lautet:.

DoCmd.SetWarnings False
' Tabelle Datendetails
DoCmd.TransferSpreadsheet acImport, 8, "tbl_test", "C:\Test.xls", False, ""
Beep
MsgBox "Daten erfolgreich eingespielt.", vbInformation, "IMPORT EXCEL"
DoCmd.SetWarnings True


Die Aufgabe besteht nun von C:\Test.xls die Daten zu holen.

Egal wo und wie die daten geschrieben wurden, Werden sie nun in tbl_test abgespeichert.

Bye Sascha
 
Hallo Sascha,

vielen Dank bereits für deine Antwort.
Aber das ist doch kein Visual C++ Code. :(
Glaub ich zumindest ;-)

Kannst du mir das evtl noch "übersetzen"?
Ich muss nämlich ein bereits bestehendes Programm abändern, so dass ich zwecks der Sprache doch recht festgelegt bin.
Notfalls hab ich mir jetzt schon überlegt, dass ich in einem Dialog über ActiveX Excel einbette, die Datei anzeige und den Bereich während der Laufzeit markieren lasse.
Danach könnte ich in einer Schleife Zeile für Zeile auslesen.

Die Lösung ist halt nicht so toll, da es nicht automatisch passieren kann :( Und das war ja mein eigentliches Ziel.

Ich wäre dir also extremst dankbar, wenn du mir den gleichen Code in C++ sagen könntest.

Vielen vielen Dank nochmal! :)

Viele Grüße

Tina
 
Hallo Tina

Soweit wie ich verstanden habe möchtest du aus einer Exceltabelle Daten ins Access übergeben. Meiner Meinung nach brauchst du kein C++ oder andere Dinge da Access dies selbst kann. Mit oder ohne Tabellenkopf ... wo Daten anfangen und Enden findet Access selbst herraus.

Den Code habe ich dir oben schon gegeben... (VBA) leider weiss ich deine Access Version nicht. Und würde Dich bitten in Zukunft die Version deiner DB. mit zu Posten.

Also nochmals in Kurzform.

Access kann Daten von Ecxel nach Access holen und dies auch umgekehrt.

Wieso man dabei C++ oder andere Dinge benötigt verstehe ich nicht ?

Du könntest in einem Formular ein Button erstellen und diesen Code beim klicken einfügen. Der Anwender bekommt nicht viel mit ausser einer kleinen Wartezeit.
Meine Frage währe dann noch was machst du mit den Daten ? In einer Tabelle füllen lassen oder willst du jeweils nur immer die neusten Daten von Ecxel bearbeiten und dann speichern in Access

Bye Sascha
 
Zuletzt bearbeitet von einem Moderator:
:(
Hallo Sascha,
es ist Office 2000 installiert. Das nächste werde ich es mit angeben.
Ist mein erster Forum- Beitrag ;)

Ein Button in Access, bzw ein Formular ist deshalb nicht möglich,
weil der User weder sehen soll, dass eine Access Datei, noch dass die Excel Datei offen ist. Somit kann auch keiner einen Button drücken.

Ok, ich hol mal weiter aus, wozu ich das alles brauche. Vielleicht bin ich ja wirklich auf dem kompletten Holzweg :(

In meinem Programm gibt es einen Button "Bericht drucken".
Es öffnet sich ein Dialog, in dem ich einen Crystal Report anzeige. Für diesen Crystal Report verwende ich eine Vorlage, die ich öffne, mit entsprechenden Parametern fülle und anschließend anzeige. Somit ist der fertige Bericht da.
Die Daten kommen aus einer Excel Datei.
Eine Access Tabelle könnte ich relativ einfach auslesen, in dem ich aus jeder einzelnen Zeile die Parameter hole. Pro Zeile gibt es einen neuen Bericht.
Mit Excel kann ich das nicht, weil ich nicht weiß, ob die Daten in der 1. oder zB 3. Zeile beginnen. Und ich weiß nicht, wann sie wieder aufhören. Somit kann ich nicht einfach nur die Zelleninhalte von A1 bis zB N10 auslesen.
Was wiederum bedeutet: ich müsste aus Visual C++ die Exportfunktion von Excel irgendwie anstoßen können.

Ich bin erst seit kurzem dabei - ich hoffe mal, dass ich in paar Wochen nicht mehr so oft rückfragen muss und deine Antworten gleich verstehe ;-)

Vielen vielen Dank nochmal!

Tina
 
Zurück