[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Sep 2005
    Beiträge
    79

    ACCESS mit Unterformularen per ODBC

    Ich hoffe hier bin ich im richtigen Forum.

    Greife mit MS Access 2003 via ODBC auf die iSeries V5.3.
    In einem Hauptformular wurden 10 Unterformulare def. Das HF erhält die Daten von der verlinkten Datei mit 2 Alphakeyfeldern (unique).

    Das 1.UF erhält die Daten mit SQL
    select * from Datei where Key1=Forms!HF!Key1 and Key2=Forms!HF!Key2;

    Das 2.UF erhält die Daten mit SQL
    select TOP 1 * FROM Datei WHERE Key1 & Key2>Formulare!HF!UF01.Formular!Key1 & Formulare!HF!UF01.Formular!Key2;

    Das 3.UF bezieht sich wieder auf UF2 usw.

    Angezeigt wird nur Satz1 im UF1, obwohl das HF 98 Sätze anzeigt. Beim weiterschalten füllen sich die UF scheinbar unkontrolliert. mal 1 dann 2 dann 8 dann wieder 1 usw.

    Die Listfolge ist bei jedem Aufruf gleich.
    Eine Version funktionierte mal. Seit ich die Formulare umbenannt hab, ist es aus. Auch bei einem vollständigen Neuaufbau bleibt der Fehler.

    Bin am Ende meiner Weisheit. Hilfe!!!!!

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.245
    Das ist zwar nicht das richtige Forum aber trotzdem:
    Es ist kein Problem des ODBC sondern der Verwendung von HF's und UF's !
    Für eine automatische Beziehung dürfen die SQL's der UF's keine Where-Klausel enthalten, da diese automatisch aufgebaut wird.

    Vorgehen:

    Tabellen über ODBC verknüpfen und die Abfrage für das HF gestalten, gleichzeitig sind auch nicht angezeigte Schlüsselfelder mit aufzunehmen.

    Im HF dann die Tabelle/Abfrage auswählen.
    Im UF die Unterabfragen/Tabellen als Datenherkunft benennen, aber die Beziehung des UF zum HF über die Eigenschaften des Formulars festlegen.

    Das Problem ist die Ereignisreihenfolge !
    Wenn im HF das Ereignis CurrentRecord eintritt, also die Daten wechseln wird an die UF's über die Beziehungen das Ereignis Requery ausgelöst.
    Wenn keine Beziehung definiert ist, wird das Ereignis auch nicht ausgelöst !!!

    Desweiteren:
    Es gibt zwischen HF und UF nur eine 1:N-Beziehung da nur 1 Satz im Formular dargestellt wird.
    Die andere Methode heißt da Endlos-Formular, was allerdings nur eine Wiederholung des Formulars ist. Aktiv kann immer nur 1 Datensatz sein. Erst wenn dieser wechselt (Datensatzmarkierer sichtbar und dann darauf klicken) wird das Requery für die UF's ausgelöst.

    Bedenke daraufhin dein Design.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Sep 2005
    Beiträge
    79
    Zunächst danke für die Bemühung.

    Hab ich das so richtig verstanden?
    1. Es gibt eine verlinkte Tabelle mit 2 Alphakeyfeldern.

    2. Für das HF eine Abfrage darauf und diese im HF als Datenherkunft angeben.

    3. Für UF02 – UF10 je eine Abfrage def. mit Bezug auf das jeweils vorherige UF
    SELECT TOP 1 [Key1], [Key2] FROM Tabelle
    WHERE ((([Key1] & [Key2]) > [Formulare]![ HF]![ UF01].[Formular]![Key1] & [Formulare]![ HF]![ UF01].[Formular]![Key2]));


    4. In UF01 die gleiche Abfrage wie im Hauptformular angeben und die 2 Keyfelder anzeigen

    5. Ab UF02 UF-Abfragen als Datenherkunft angeben.

    6. Im HF die UF mit Standardvorgabe einbinden.

    Funktioniert nicht. UF1 zeigt 1. Datensatz, folgende UF sind nicht aktiv.
    Navigation UF01 zeigt nur 1 Datensatz.

  4. #4
    Registriert seit
    Sep 2005
    Beiträge
    79
    Hab das Problem gefunden!

    Die erste Formalistik war richtig. Nur wurde durch das Einbinden der UF das erste Keyfeld autom. verknüpft und das hatte Vorrang vor der Select-Clausel.

    Verknüpfung rausnehmen und die Sache lief. Dein Hinweis über die Beziehung in den Eigenschaften hat mich drauf gebracht. Besten Dank!

    Übrigens das ganze soll eine Bilderdatenbank werden.

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.245
    Punkt 3 ist falsch !!!
    Du darfst in einer Abfrage keine Verweise direkt auf die Formulare machen.
    Der Bezug wird in den Formulareigenschaften des UF's (von Feld->nach Feld) festgelegt, so dass die where-Klausel von Access aufgebaut wird.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

Similar Threads

  1. MS Access ODBC mit JOIN: SQL FEHLER666
    By olafu in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 05-10-06, 08:13
  2. ODBC Zugriff über Access Null-Values
    By Bernd Wiezroek in forum IBM i Hauptforum
    Antworten: 9
    Letzter Beitrag: 27-04-06, 15:47
  3. Performanceprobleme mit Access <--> DB2 per ODBC
    By Rico in forum IBM i Hauptforum
    Antworten: 9
    Letzter Beitrag: 03-05-05, 17:16
  4. MS Access Zugriff via ODBC auf iSeries Tabellen
    By Rico in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 21-03-05, 09:43
  5. Zugriff von Access auf iSeries per ODBC
    By Unregistriert in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 14-01-05, 08:57

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •