Neuigkeiten:

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

Mobiles Hauptmenü

Datentypenkonflikt

Begonnen von vandekibi, Juli 24, 2012, 15:48:39

⏪ vorheriges - nächstes ⏩

DF6GL

Hallo,

die Eigenschaft "Datenherkunft" eines Formulares oder Berichtes beschreibt, wie der Name schon sagt, die Quelle der Daten, die in diesem Formular/Bericht verarbeitet/benutzt werden sollen.

Der Eintrag in dieser Eigenschaft kann entweder nur ein Tabellen-/Abfragename oder auch ein SQL-Statement (das einer gespeicherten Abfrage gleichkommt) sein.

Tipp:  Im Form/Berichtsentwurf den Cursor (Schreibmarke) in das Feld  "Datenherkunft" im Eigenschaftenfenster/Daten setzen und F1 drücken....

vandekibi

Hallo

Etwas verstehe ich einfach nicht.......

Ich habe einen alten Bericht, der sich aus einer Abfrage und der Tabelle (Persdaten) zusammensetzt und ohne Probleme funktioniert. Wurde vor rund 3 Jahren zusammengeführt.

Versuche ich heute mit dem aktuellen Access den genau gleichen Bericht zu machen komme ich nicht über die Entwurfansicht hinaus. Dies alles bei genau den gleichen Verbindungen.


DF6GL

Hallo,

und ich versteh nicht, was Du hast und machst...


"der sich aus einer Abfrage und der Tabelle (Persdaten) zusammensetzt "



???
 Was steht in der Datenherkunft des Berichtes??




"mit dem aktuellen Access den genau gleichen Bericht zu machen.."  

Was ist "aktuelles Access" ? Welche VERSION ist das?


"komme ich nicht über die Entwurfansicht hinaus"

WARUM nicht?  Stürzt Access ab?  Wird der Bericht nicht gespeichert?   ??

vandekibi

Guten Morgen

Also, folgendes Vorgehen:

Mit dem Bericht Assistenten wird die Abfrage (Lohnabrechnung Abfrage) und die Tabelle Persdaten zusammengeführt.
Nach dem Abschliessen erscheint die Fehlermeldung (Beilage). Dies obwohl ich auf diesem Computer der einzige Nutzer bin - nichts anderes offen haben.

Im Bericht Datenherkunft steht folgende Quellen:
SELECT [Lohnabrechnung Abfrage].[ID], [Lohnabrechnung Abfrage].[Einsatz Nummer], [Lohnabrechnung Abfrage].[Personalnummer], [Lohnabrechnung Abfrage].[DA], [Lohnabrechnung Abfrage].[DE], [Lohnabrechnung Abfrage].[Rapport], [Lohnabrechnung Abfrage].[Funktion], [Lohnabrechnung Abfrage].[Stundenansatz], [Lohnabrechnung Abfrage].[Lohn], [Lohnabrechnung Abfrage].[Fahrspesen pauschal], [Lohnabrechnung Abfrage].[Km Entschädigung], [Lohnabrechnung Abfrage].[KM Geld], [Lohnabrechnung Abfrage].[Sonn-Feiertag], [Lohnabrechnung Abfrage].[Sonn-Feiertage], [Lohnabrechnung Abfrage].[SFZuschlag], [Lohnabrechnung Abfrage].[Nachtschicht], [Lohnabrechnung Abfrage].[Nachtzuschlag], [Lohnabrechnung Abfrage].[Lohn vor Abzug], [PERSDATEN].[NAME], [PERSDATEN].[VORNAME], [PERSDATEN].[STRASSE], [PERSDATEN].[NUMMER], [PERSDATEN].[PLZ], [PERSDATEN].[ORT] FROM [Lohnabrechnung Abfrage] INNER JOIN PERSDATEN ON [Lohnabrechnung Abfrage].[Personalnummer] =[PERSDATEN].[Personal Nummer];

Im neuen Monatslohnblatt hat es zwei Gruppenebenen: erst die Personalnummer und anschliessend DA (im Monat)

Aktuell habe ich Access 2010

Die ersten Tabellen wurden mit Access 2003 erstellt. Die meisten Abfragen, Berichte und Formulare mit Access 2007.


Wenn ich im Entwurf auf Ansicht drücke, dann kommt die Fehlermeldung 2.
Speichern des Berichts "Monatslohn geht aber.


Hier noch die Datenherkunft eines Berichtes, der diese Probleme bei gleicher Verknüpfung nicht hat. Er wurde vor Jahren mit Access 2007 mit Hilfe des Bericht Assistenten erstellt.

SELECT Lohnberechnung.ID AS Lohnberechnung_ID, Lohnberechnung.[Einsatz Nummer], Lohnberechnung.Personalnummer, PERSDATEN.NAME, PERSDATEN.VORNAME, PERSDATEN.STRASSE, PERSDATEN.NUMMER, PERSDATEN.PLZ, PERSDATEN.ORT, Lohnberechnung.Funktion, Lohnberechnung.DA, Lohnberechnung.DE, Lohnberechnung.Rapport, Lohnberechnung.Stundenansatz, Lohnberechnung.Lohn, Lohnberechnung.[Fahrspesen pauschal], Lohnberechnung.[Km Entschädigung], PERSDATEN.ID AS PERSDATEN_ID FROM PERSDATEN INNER JOIN Lohnberechnung ON PERSDATEN.ID=Lohnberechnung.Personalnummer;

[Anhang gelöscht durch Administrator]

MzKlMu

#19
Hallo,
die Verknüpfung ist nicht gleich.
Ein mal so:
...INNER JOIN PERSDATEN ON [Lohnabrechnung Abfrage].[Personalnummer] =[PERSDATEN].[Personal Nummer];
Und die 2. Abfrage so:
...INNER JOIN Lohnberechnung ON PERSDATEN.ID=Lohnberechnung.Personalnummer;

Die Benamsungen sind ein Chaos.

Mal ID, dann Personalnummer dann wieder Personal Nummer.

Soche unterschiedlichen Namen sind oft die Wurzel allen Übels, weil man völlig den Überblick verliert was was ist und von welcher Tabelle.
Gruß Klaus

DF6GL

Hallo,

das sind doch keine "gleiche Verknüpfungen"...



INNER JOIN PERSDATEN ON [Lohnabrechnung Abfrage].[Personalnummer] =[PERSDATEN].[Personal Nummer];


PERSDATEN INNER JOIN Lohnberechnung ON PERSDATEN.ID=Lohnberechnung.Personalnummer;


Du musst nun mal herausfinden, über welche Felder verknüpft werden muss. Ich tippe mal auf "PERSDATEN.ID"


Damit sollte es so lauten:

SELECT [Lohnabrechnung Abfrage].[ID], [Lohnabrechnung Abfrage].[Einsatz Nummer], [Lohnabrechnung Abfrage].[Personalnummer], [Lohnabrechnung Abfrage].[DA], [Lohnabrechnung Abfrage].[DE], [Lohnabrechnung Abfrage].[Rapport], [Lohnabrechnung Abfrage].[Funktion], [Lohnabrechnung Abfrage].[Stundenansatz], [Lohnabrechnung Abfrage].[Lohn], [Lohnabrechnung Abfrage].[Fahrspesen pauschal], [Lohnabrechnung Abfrage].[Km Entschädigung], [Lohnabrechnung Abfrage].[KM Geld], [Lohnabrechnung Abfrage].[Sonn-Feiertag], [Lohnabrechnung Abfrage].[Sonn-Feiertage], [Lohnabrechnung Abfrage].[SFZuschlag], [Lohnabrechnung Abfrage].[Nachtschicht], [Lohnabrechnung Abfrage].[Nachtzuschlag], [Lohnabrechnung Abfrage].[Lohn vor Abzug], [PERSDATEN].[NAME], [PERSDATEN].[VORNAME], [PERSDATEN].[STRASSE], [PERSDATEN].[NUMMER], [PERSDATEN].[PLZ], [PERSDATEN].[ORT] FROM [Lohnabrechnung Abfrage] INNER JOIN PERSDATEN ON [Lohnabrechnung Abfrage].[Personalnummer] =[PERSDATEN].[ID];

vandekibi

hallo

Vielen Dank für die Tipps und die Geduld.......

Also die Beziehungen sehen aktuell so aus (Beilage 1 Beziehungen Persdaten)

Ändere ich auf Persdaten.ID so funktioniert es tatsächlich und ich kann den Bericht ansehen..............................aber es erscheint nicht die Personal Nr. sondern die ID -Nummer der Personalakte.(Beilage 2)

Damit kann ich aber im Moment leben und den Bericht so gestalten, dass die Personalnummer eben nicht erscheint -

Falls aber auch eine Lösung für dieses kleine Problem hat - immer nur her damit.

Hauptsache die Sache läuft und die Löhne können nächsten Monat nach dem neuen System ausbezahlt werden.

[Anhang gelöscht durch Administrator]

DF6GL

Hallo,

naja, das ist doch noch Einiges falsch.

Die Verbindungslinie muss zwischen Personaleinsatzplanung.Personalnummer und Persdaten.ID (und NICHT Persdaten.[Personal Nummer]) liegen.

Weiterhin muss das Berichtsfeld zur Anzeige der Personalnummer an das Tabellenfeld Persdaten.[Personal Nummer] gebunden sein.

Warum es in der Abfrage Personaleinsatzplanung UND Lohnabrechnung_Abfrage zugleich gibt, ist mir auch schleierhaft. (Wobei die Line von Lohnabrechnung_Abfrage.Personalnummer  auch an Persdaten.[Personal Nummer] gehen muss.)    Vermutlich kann Personaleinsatzplanung ganz aus der Abfrage entfernt werden.

vandekibi

Hallo

also zu den Abfragen

Die haben sich so entwickelt, darum war beim alten Lohnblatt zwei Abfragen. War so eine Leiche im Keller und da sie nicht mehr stinkte lebte man eben damit.

Die Verbindung habe ich gemacht.

Und dann stehe ich ein wenig im Wald (wie in der vergangenen Tagen)

Wie kann ich das Bereichsfeld zur Anzeige der Personalnummer an das Tabellenfeld Persdaten.[Personal Nummer] binden?

DF6GL

#24
Hallo,

indem Du

Personal Nummer

in die Eigenschaft "Steuerelementinhalt" des betroffenenen Textfeldes schreibst...

und vorher

[Persdaten].[Personal Nummer]

noch in die Select-Liste der Abfrage aufnimmst:

.
.
.
.... [PERSDATEN].[NAME],  [Persdaten].[Personal Nummer], [PERSDATEN].[VORNAME], [PERSDATEN].[STRASSE], [PERSDATEN].[NUMMER], [PERSDATEN].[PLZ], [PERSDATEN].[ORT] FROM .....

vandekibi



Jetzt erscheint jede Schicht einers Mitarbeiters in der Abfrage 10 mal, was natürlich die Mitarbeiter in der Lohntüte freut aber die Firma unweigerlich ruiniert.

Im Bericht kommt nun der " Datentypenkonflikt im Kriterienausdruck" wieder.

Ich werde es nächste Woche noch einmal von Null an versuchen möchte mich aber für die Hilfe und Geduld bedanken.