Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Einzelnen Wert aus Exceltabelle anzeigen

Begonnen von Senate1987, Februar 05, 2016, 11:08:20

⏪ vorheriges - nächstes ⏩

Senate1987

Hallo
Ich soll für meinen Arbeitgeber ein kleines Tool mit Access entwickeln was uns bei der Arbeit den Alltag etwas erleichtern soll. Unter anderem haben hat bei uns jede Woche jemand anderes Bereitschaft und das anfordern eines Arbeiters in Bereitschaft gehört auch zu meinen Pflichten. Der Arbeiter mit Bereitschaft wird regelmässig von unserer Personalabteilung in einer schier endlosen Exceltabelle aufgeführt. Nun wollte ich in meinem Accessformular ein Textfeld einbauen welches mir automatisch den Arbeiter azeigt welcher laut Exceltabelle gerade Bereitschaftsdienst hat, eventuell sofort mit der passenden Telefonummer, welche schon in meiner Datenbank in der selben Accesstabelle steht wie der Name des Arbeiters.
Leider weiss ich von Access auch nur das was ich mir in den letzten Tagen und Wochen selbst beigebracht habe und dieses Wissen reicht nicht aus um mein Problem auf Anhieb zu lösen denke ich.
Ich hoffe ich habe mich jett halbwegs verständlich ausgedrückt und ihr könnt mir bei meinem Problem helfen.

MaggieMay

Hallo,

die erste Frage ist doch, wie du den Arbeiter mit Bereitschaft in der Excel-Tabelle finden kannst - wie ist sie aufgebaut, wonach kann man suchen?
Freundliche Grüße
MaggieMay

Senate1987

#2
Die Exceltabelle besteht aus mehreren Blättern, eins für jeden Standort der Firma. Spalte D enthält das Datum und Spalte H den dazugehörigen Arbeiter.
Zusätzlich wäre da noch zu erwähnen dass immer nur die Bereitschaft der kommenden Woche in der Tabelle steht, es reischt also nicht sie einmal in Access zu importieren. Genau darin liegt auch mein Problem. Sie müsste theoretisch bei jedem Aufruf meines Tools überprüft werden ob sie keine neuen Daten enthält

MaggieMay

Du kannst in einer Abfrage direkt auf eine Excel-Tabelle zugreifen.
Beispiel:
Select * FROM [excel 8.0;DSN=TestText;imex=2;DATABASE=X:\Datei.xls].[Tabelle1$]

Gibt es denn keine Spaltenüberschriften, die dann als Feldnamen fungieren könnten?
Freundliche Grüße
MaggieMay

el_gomero

Hallo,

Zitat
... Der Arbeiter mit Bereitschaft wird regelmässig von unserer Personalabteilung in einer schier endlosen Exceltabelle aufgeführt. ...

Die Wurzel des Übels sollte bekämpt werden, nicht seine Auswirkungen ... Wenn die PA bereits die Daten in einer vernünftigen Datenbank vorhielte, wären alle Verrenkungen obsolet. Vielleicht kannst du ja deinen Chef überzeugen da anzufangen ;).
Gruß
Jürgen


Hilfe nach bestem Wissen, ohne Anspruch auf Richtigkeit und Vollständigkeit.
*feedback erwünscht*
Bitte Tipps lesen

Senate1987

Zitat von: el_gomero am Februar 05, 2016, 12:42:36
Vielleicht kannst du ja deinen Chef überzeugen da anzufangen ;).


Ich denke eher nicht, wir sind ein Betrieb mit rund 4000 Mitarbeitern wovon meine Abteilung vielleicht 10% ausmachen und meine Region davon noch mal 10%, ich hab da keinen grossen Einfluss auf die Firmenpolitik, bin nur ein kleines Würmchen ;) Hätte mein Tool aber in meinem kleinen Bereich einen gewissen Erfolg würden vielleicht auch andere mitziehen. Bis auf weiteres muss ich also leider wie gehabt verfahren :) Allerdings befürchte ich jetzt schon dass ich nicht einmal Zugriff auf die Datei selbst erhalte werde, diese befindet sich in unserem Firmennetzwerk und kann momentan auch nur über einen Link im Intranet zugreifen...

Zitat von: MaggieMay am Februar 05, 2016, 12:37:47
Du kannst in einer Abfrage direkt auf eine Excel-Tabelle zugreifen.
Beispiel:
Select * FROM [excel 8.0;DSN=TestText;imex=2;DATABASE=X:\Datei.xls].[Tabelle1$]

Gibt es denn keine Spaltenüberschriften, die dann als Feldnamen fungieren könnten?
Ich habe jetzt frei bis Sonntag Abend, werde dann die Abfrage sofort versuchen sobald ich meinen Dienst übernommen habe, zu Hause arbeite ich nur mit Mac also nichts mit Access;)

Senate1987

#6
Also ich habe jetzt etwas herum gespielt aber mehr als #Name? wird in meiner Textbox nicht angezeigt... Ich habe jetzt erstmal versucht den Wert aus der Zelle H771  auszulesen, aber, wie schon gesagt, leider ohne Erfolg.
Wo muss ich diesen Code genau eingeben? Und wie definiere ich darin die Zelle?

Ich hatte jetzt allerdings noch eine andere Idee, ich habe eine mit der Exceldatei verknüpfte Tabelle erstellt, so konnte ich alle Werte der Exceltabelle schon mal in meine Accesstabelle kopieren. Nur macht mir jetzt das auslesen Probleme das die Exceldatei mit einem ganz anderen Datumsformat arbeitet wie ich, nämlich [Wochentag, Monat Tag, Jahr], jetzt macht mir das Kopfzerbrechen. Wäre es nicht irgendwie möglich jetzt alle Daten aus der verlinkten Tabelle in eine neue Tabelle automatisch zu kopieren in der ich dann mein eigenes Datumsformat verwende?

MaggieMay

Hallo,

wie steht's denn nun mit Spaltenüberschriften in deiner Excel-Tabelle und mit darüber ansprechbaren Feldern? Diese Frage hast du noch nicht beantwortet.

Und dann zeige doch bitte den SQL-Code der Abfrage mit der du versucht hast die Daten auszulesen, damit wir eine gemeinsame Grundlage haben.

PS:
Stichwort "Datumsformat": Entscheidend ist, was tatsächlich in der Excel-Tabelle gespeichert ist und nicht das Format mit dem die Daten dargestellt werden.
Freundliche Grüße
MaggieMay

Senate1987

Spaltenüberschriften gibt es keine besonderen in der Tabelle, ich bräuchte die Spalte D, in ihr steht das Datum, und die Spalte H, in ihr befindet sich der entsprechende Arbeiter. Die Tabelle selbst heisst "Astreintes chc L1".

Zur Abfrage haben ich den Code
=[Select * FROM [excel 8].[0;DSN=TestText;imex=2;DATABASE=C:\data\godfchr30\Desktop\Astreinte EI 2015.xlsm].[Astreintes chc L1$H771]
verwendet.

MaggieMay

Wo befindet sich der Code, was hat es mit dem Gleichheitszeichen auf sich? :?

SQL-Code ist der Inhalt einer gespeicherten Abfrage - versuche es mal auf diesem Wege.
Und dann fehlt ja auch noch ein Kriterium, denn du willst ja den Wert aus einer bestimmten Zeile ermitteln, die mit einem bestimmten Datum übereinstimmt.
Freundliche Grüße
MaggieMay

Senate1987

Ich habe diesen Text in meine Textbox geschrieben, wie gesagt, bin in diesem Bereich noch ziemlich grün hinter den Ohren

MaggieMay

OK, dann erstelle mal eine neue Abfrage, wähle keine Tabelle aus und gehe anschließend auf die SQL-Ansicht und gib dort den Code ein. So kannst du zunächst einmal ausprobieren, ob das bei dir funktioniert bzw. was dabei herauskommt.

Wenn ich dich richtig verstanden habe, musst du den Eintrag zu einem bestimmten Tag suchen, d.h. die Abfrage muss nach Datum gefiltert werden. Der Zugriff auf eine bestimmte Zelle macht keinen Sinn, da du den Bezug ja ständig ändern müsstest - wenn es denn so überhaupt funktioniert. Möglich, dass du die Spalten bei fehlenden Überschriften mit F1 bis Fn ansprechen musst, einfach mal ausprobieren.
Freundliche Grüße
MaggieMay

Senate1987

#12
Ok die Abfrage hat jetzt funktioniert und habe jetzt alle Werte in Access aus der entsprechenden Tabelle. Das Filtern nach Datum in Spalte F4 ist allerdings nicht möglich, da er die Spalte nicht als Datum erkennt. Mir ist dazu allerdings jetzt noch ein zusätzliches Problem eingefallen, der Bereitschaftsdienst bei uns geht nicht von 0:00 - 23:59 sondern von 12:00 bis 11:59 am Folgetag.

MaggieMay

Wir wissen nicht, wie du das nun gelöst hast, also kann man dir auch schlecht einen Änderungsvorschlag machen.
Wie sieht der Inhalt der Excel-Tabelle aus? Zeige doch bitte mal ein Beispiel.
Freundliche Grüße
MaggieMay

Senate1987

So ich hatte jetzt Wochenende, deshlab hat es solange gedauert.

Die Abfrage habe ich nun so gemacht wie du es gesagt hast, mit dem SQL Code einfach. Anbei ein Screenshot der Exceltabelle, der Name steht in Spalte H und das Datum in Spalte D