collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 48
  • Punkt Versteckte: 1
  • Punkt Mitglieder: 2
  • Punkt Benutzer Online:

* Forenstatistik

  • stats Mitglieder insgesamt: 13911
  • stats Beiträge insgesamt: 65784
  • stats Themen insgesamt: 8876
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Autor Thema: Importabfrage - falsche Struktur  (Gelesen 905 mal)

Offline Brusellise

  • Access-User
  • *
  • Beiträge: 58
Importabfrage - falsche Struktur
« am: Dezember 27, 2017, 11:45:12 »
Hallo,

wir müssen aus SAP zwei Tabellen exportieren und diese in Access importieren um unsere Daten leichter auswerten zu können.

Leider kommt es bei den Usern immer wieder vor, dass Sie beim abspeichern der .xlsx Dateien die Struktur / Abbau vertauschen, heißt sie speichern Abfrage 1 ab, diese ist aber eigentlich Abfrage 2 und umgekehrt.

Der Import erfolgt über ein Button. Wenn die Struktur stimmt klappt alles. Wenn halt nicht muss ich immer wieder die falsch importieren Daten löschen.

Wie kann ich die abfangen? Problem. Hinweise das Feld "Beleg" Primärschlüssel in beiden Tabellen gibt bei beiden .xlsx Dateien.

Danke für eure Hilfe.
 

Offline steffen0815

  • Access-Profi
  • **
  • Beiträge: 122
Re: Importabfrage - falsche Struktur
« Antwort #1 am: Dezember 27, 2017, 11:50:50 »
Hallo,
wie unterscheiden sich die beiden Strukturen?
Unterschiedliche Spaltennamen sollten doch sofort zum Fehler führen!? Woran erkennst du falsch importierte Daten?
Wie erfolgt dein Import genau? Code?
Gruß Steffen
 

Offline Brusellise

  • Access-User
  • *
  • Beiträge: 58
Re: Importabfrage - falsche Struktur
« Antwort #2 am: Dezember 27, 2017, 13:22:31 »
Also die Daten innerhalb beiden Tabellen sind fast überall unterschiedlich.
Außer das Feld Belege.

Der Import erfolgt über eine Anfügeabfrage.
Das User klickt dann auf ein Button. Hier gibt es eine Vba Ereignis.
Dort schalte ich die Fehlermeldungen aus, da ich gerne die ganzen Rückfragen ob Datensatz anfügen etc. den User sparen möchte.

Ich sehe, dass die Datensätze nicht stimmen, wenn zum Beispiel das Feld Status "leer" ist.
 

Offline steffen0815

  • Access-Profi
  • **
  • Beiträge: 122
Re: Importabfrage - falsche Struktur
« Antwort #3 am: Dezember 27, 2017, 13:25:56 »
Hallo,
wenn eine Laufzeitfehler ausgelöst wird, kannst du mit currentdb.execute "Deine Anfügeabfrage", dbfailonerror arbeitenund den Fehler abfangen.
Gruß Steffen
 

Offline Brusellise

  • Access-User
  • *
  • Beiträge: 58
Re: Importabfrage - falsche Struktur
« Antwort #4 am: Dezember 27, 2017, 13:46:32 »
Hi,

nein einen Laufzeitfehler habe ich nicht.
 

Offline Beaker s.a.

  • Access Guru
  • ****
  • Beiträge: 1736
Re: Importabfrage - falsche Struktur
« Antwort #5 am: Dezember 27, 2017, 13:49:28 »
Hallo,
Ich würde ja erstmal nachfragen an welcher Stelle die User den Fehler machen (können),
1. beim Export aus SAP
2. beim Import in Access
3. beim Export aus Access ?
Bei 1. sehe ich keine Möglichkeit des Eingreifens.
Bei 2. könnte man vielleicht die Struktur (Feldnamen) überprüfen.
Bei 3. sollten die Objektnamen (Abfragen/Zieldateien) eigentlich "fest verdrahtet" sein.
gruss ekkehard
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.
 

Offline steffen0815

  • Access-Profi
  • **
  • Beiträge: 122
Re: Importabfrage - falsche Struktur
« Antwort #6 am: Dezember 27, 2017, 13:51:18 »
Hallo,
Zitat
Dort schalte ich die Fehlermeldungen aus
vs.
Zitat
nein einen Laufzeitfehler habe ich nicht.
Zeige mal bitte den Code.

Zitat
Also die Daten innerhalb beiden Tabellen sind fast überall unterschiedlich.
Außer das Feld Belege.
Wenn das Feld "Belege" in der Anfügeabfrage vorkommt, dann muss beim Fehlen ein LZF ausgelöst werden.
Gruß Steffen
 

Offline ebs17

  • Access-Meister
  • ***
  • Beiträge: 879
Re: Importabfrage - falsche Struktur
« Antwort #7 am: Dezember 27, 2017, 14:00:32 »
Zitat
schalte ich die Fehlermeldungen aus
Man braucht sich da nicht wundern, wenn User unwissend und naiv Fehler machen und wiederholen. Eigentor Nummer 1.

Zitat
Das User klickt dann auf ein Button.
Wenn man das Auto gegen  die Wand fährt, um dann nachfolgend den Wagen wieder zu entknittern, hat man Eigentor Nummer 2 geschossen.

Eigentlich würde man erst prüfen und danach handeln, also bei gefundenem Fehler den Import abbrechen und dafür dem User einen vernehmbaren Hinweis geben. Über eine VBA-Ereignisprozedur hat man dazu alle Möglichkeiten in der Hand.

Wenn man nicht schon den Export aus SAP überwachen kann, so kann man doch vor einer Anfügeabfrage die Tabelle auf Inhalte prüfen.

//Nachtrag: Bei zwei Abfragevarianten müsste es sinngemäß auch zwei Importvarianten geben. Dann dürfte man dem Buttonklick auch die Intelligenz mitgeben können, die vorhandene Abfrage dem richtigen Import zuzuordnen.
Dass der User einen Fehler gemacht hat und daher eine Saalrunde fällig wird, kann man ja trotzdem mitteilen.
« Letzte Änderung: Dezember 27, 2017, 15:10:23 von ebs17 »
Mit freundlichem Glück Auf!

Eberhard
 

Offline Brusellise

  • Access-User
  • *
  • Beiträge: 58
Re: Importabfrage - falsche Struktur
« Antwort #8 am: Dezember 28, 2017, 10:59:15 »
Hallo,
Ich würde ja erstmal nachfragen an welcher Stelle die User den Fehler machen (können),
1. beim Export aus SAP
2. beim Import in Access
3. beim Export aus Access ?
Bei 1. sehe ich keine Möglichkeit des Eingreifens.
Bei 2. könnte man vielleicht die Struktur (Feldnamen) überprüfen.
Bei 3. sollten die Objektnamen (Abfragen/Zieldateien) eigentlich "fest verdrahtet" sein.
gruss ekkehard

Hi,

das ist bereits klar. Problem nach / während 1, da der User den falschen Dateinamen abspeichert.
Deshalb brauche ich eine Prüfung vor dem Import nach Access.
 

Offline Brusellise

  • Access-User
  • *
  • Beiträge: 58
Re: Importabfrage - falsche Struktur
« Antwort #9 am: Dezember 28, 2017, 11:01:17 »
Hallo,
Zitat
Dort schalte ich die Fehlermeldungen aus
vs.
Zitat
nein einen Laufzeitfehler habe ich nicht.
Zeige mal bitte den Code.

Zitat
Also die Daten innerhalb beiden Tabellen sind fast überall unterschiedlich.
Außer das Feld Belege.
Wenn das Feld "Belege" in der Anfügeabfrage vorkommt, dann muss beim Fehlen ein LZF ausgelöst werden.

Hier der Code:

Private Sub Import_EWMLS_Click()
If ExistiertDatei("C:\Temp\EWM_LS.xlsx") Then
    MsgBox "Der Import wird gestartet!" & vbCrLf & "" & vbCrLf & "Der Vorgang kann einige Zeit im Anspruch nehmen.", vbInformation, "Achtung!"
importstart1
Else
    MsgBox "Der Import wird abgebrochen" & vbCrLf & "" & vbCrLf & "Es wurde keine Importdatei gefunden.", vbInformation, "Achtung!"
End If
End Sub

Private Sub importstart1()
DoCmd.SetWarnings False
DoCmd.OpenQuery "qry_IMP_tblKPI_LS"
DoCmd.SetWarnings True
MsgBox "Neue KPI-Daten wurden importiert.", vbInformation, "Info:"
End Sub

Das Belege wird einfach importiert, da es ja Daten mit dem Feldnamen "Belege" in beiden SAP Export Dateien gibt.
 

Offline Brusellise

  • Access-User
  • *
  • Beiträge: 58
Re: Importabfrage - falsche Struktur
« Antwort #10 am: Dezember 28, 2017, 11:03:32 »
Zitat
schalte ich die Fehlermeldungen aus
Man braucht sich da nicht wundern, wenn User unwissend und naiv Fehler machen und wiederholen. Eigentor Nummer 1.

Zitat
Das User klickt dann auf ein Button.
Wenn man das Auto gegen  die Wand fährt, um dann nachfolgend den Wagen wieder zu entknittern, hat man Eigentor Nummer 2 geschossen.

Eigentlich würde man erst prüfen und danach handeln, also bei gefundenem Fehler den Import abbrechen und dafür dem User einen vernehmbaren Hinweis geben. Über eine VBA-Ereignisprozedur hat man dazu alle Möglichkeiten in der Hand.

Wenn man nicht schon den Export aus SAP überwachen kann, so kann man doch vor einer Anfügeabfrage die Tabelle auf Inhalte prüfen.

//Nachtrag: Bei zwei Abfragevarianten müsste es sinngemäß auch zwei Importvarianten geben. Dann dürfte man dem Buttonklick auch die Intelligenz mitgeben können, die vorhandene Abfrage dem richtigen Import zuzuordnen.
Dass der User einen Fehler gemacht hat und daher eine Saalrunde fällig wird, kann man ja trotzdem mitteilen.

Gebe dir hier voll und ganz recht. Ich würde dies gerne auch abfangen via Prüfung.
Habe nur zu wenig VBA Kenntnis um zu wissen wie dies geht.

Kannst du helfen? Vielleicht mit einem Beispiel?
 

Offline steffen0815

  • Access-Profi
  • **
  • Beiträge: 122
Re: Importabfrage - falsche Struktur
« Antwort #11 am: Dezember 28, 2017, 12:05:02 »
Hallo,
ganz grob so:Private Sub importstart1()
on error goto Fehler
currentdb.execute  "qry_IMP_tblKPI_LS",dbfailonerror
MsgBox "Neue KPI-Daten wurden importiert.", vbInformation, "Info:"
exit sub
Fehler:
  msgbox "Fehler"
End Sub
Gruß Steffen
 

Offline ebs17

  • Access-Meister
  • ***
  • Beiträge: 879
Re: Importabfrage - falsche Struktur
« Antwort #12 am: Dezember 28, 2017, 12:26:15 »
Private Sub importstart1()
    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Set db = CurrentDb

    ' Datensätze nicht stimmen, wenn zum Beispiel das Feld Status "leer" ist
    Set rs = db.OpenRecordset( _
             "SELECT Status FROM Importtabelle WHERE Status Is NULL", _
             dbOpenForwardOnly)
    If rs.EOF Then
        db.Execute "qry_IMP_tblKPI_LS", dbFailOnError
        MsgBox db.RecordsAffected & " Datensätze wurden importiert.", vbInformation, "Info:"
    Else
        ' Fehlerdatensätze vorhanden => Meldung
    End If
    rs.Close
End Sub
Das wäre jetzt ein Programmlauf mit vorheriger Datenprüfung, im Unterschied zur Programmsteuerung per Fehler + Fehlerbehandlung.

Unterlasse bitte das vollständige Zitieren von Beiträgen. Die Forenteilnehmer beherrschen Anwendung von Maus und Scrollbalken und können sich auch so die Vorbeiträge vergegenwärtigen.
Mit freundlichem Glück Auf!

Eberhard
 

Offline Brusellise

  • Access-User
  • *
  • Beiträge: 58
Re: Importabfrage - falsche Struktur
« Antwort #13 am: Dezember 28, 2017, 14:55:47 »
@ebs17

alles klar wird gemacht.


@alle

Vielen Dank. Ich teste dies mal morgen.