0

Syntax, Beziehungen aus ACCESS

Guten Morgen,

ich prüfe, ob ein Umstieg von MS ACCESS auf Ninox funktioniert. Habe dazu Forum, FAQ, Handbücher (deutsch, englisch) durchforstet, aber die tw recht allgemein gehaltenen Wegbeschreibungen funktionieren bei mir nicht.Ich habe auch Anwendungsbeispile nachkonstruiert. Jetzt bleibt mir nur noch, mioch an das Forum zu wenden und auf Nachsicht zu hoffen.

Ich habe eine ACCESS-Anwendung für einen Büchertisch (sprich kleiner Buchladen) entwickelt (Kunden, Waren, Rechnungen, Buchhaltung und div Spezielles).

1. Problem: Zur Herstellung der Beziehungen wie in ACCESS habe ich die Tabellen T_Partner, T_Rechnung und T_RechnDetail in CSV-Dateien exportiert und in Ninox importiert (dabei Tabellen-Namen angepasst). Dann dort die Tabellen geleert und nach Beschreibung die Tabellen verknüpft. Datenbankmodell sieht so aus: RechnDetail -> Rechnung -> Partner.

Jetzt die csv-Dateien beginnend bei Partner erneut importiert (aus T_Partner in Tabelle Partner), dabei das ACCESS-Primärschlüsselfeld PartnerNR als Schlüssel angegeben. Jetzt entsprechend mit Rechnung verfahren (Verknüpfung zu Partner über PartnerNr [Schlüssel] und zu RechnDetail über RechnID. Wähle ich zur Kontrolle in Partner einen Datensatz aus, wird der mir korrekt im Formular angezeigt, aber das "Unterformular" RechnDetail ist leer. WO ist mein Denkfehler?

2. Syntax: Habe Artikel mit Untertabelle ArtikelArt (in ACCESS wurden die Daten für das Kombinationsfeld nicht als Wertliste, sondern Tabelle mit gut 30 Positionen angelegt). Da es die 1:1 Verknüpfung in Ninox nicht gibt, versuche ich eine Massenänderung in Artikel: aus ArtikelArtID soll in ein hinzugefügtes Feld Art (Text) die ArtBezeichnung aus ArtikelArt übernommen werden. In der Massenänderung wähle ich bei Feld "Art" "Berechneten Wert zuweisen" und schreibe (nach mehreren Anläufen) folgenden Code rein:

let AAID:=ArtikelArtID;

first(select ArtikelArt where ArtArtID =AAID).ArtBezeichnung

Code wird akzeptiert, aber nichts passiert. In der Console wird bei first(select ArtikelArt where ArtArtID =3).ArtBezeichnung die korrekte Bezeichnung angezeigt (first kann auch weggelassen werden). Ein Versuch, in der Massenänderung dem Feld "Art" einen festen Wert "Buch" zuzuweisen funktioniert. Auch hier die Frage: wo ist mein Denkfehler?

Vielen Dank für Hilfe.

5 Antworten

null
    • Wolfgang_Trautmann
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Nachtrag: Wenn 2.Syntax zu trivial ist, erledige ich das noch in ACCESS im Handumdrehen. Aber es sollte doch auch in Ninox gehen, oder?

    • Leonid_Semik
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo Wolfgang, kann es sein, dass ArtikelArtID ein Textfeld ist?

    versuche es bitte so

    ---

    let AAID:=ArtikelArtID;

    first(select ArtikelArt where ArtArtID =number(AAID)).ArtBezeichnung

    ---

    Leo

    • Leonid_Semik
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Ich würde aber generell überlegen in der Tabelle Artikel eine Verknüpfung zu der Tabelle ArtikelArt herzustellen. In der Massendatenänderung funktioniert die Zuweisung zwar nicht, aber du kannst in der Konsole schreiben:

    ---

    alert ("Bitte Warte!");
    for i in select Artikel do
    i.ArtikelArt=first(select ArtikelArt where ArtArtID =number(i.ArtikelArtID)
    end;
    alert ("Fertig!")
    ---

    Dabei ist ArtikelArt nicht das Textfeld sondern der Name der Verknüpfung zu ArtikelArt.

    So kannst du später bei neuen Artikel den Art auch manuel auswählen.

    Leo

    • Wolfgang_Trautmann
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Danke, bin eben fündig geworden im englischen Handbuch https://ninox.com/en/manual/import-and-export/importing-linked-data . Habe mit Erfolg die Beschreibung nachgebaut und werde das jetzt auf meine Situation umstricken.

    Alle, die einen Migration von MS Access versuchen, finden an dieser Stelle eine genaue Verfahrensweise.

    Wolfgang

    • Wolfgang_Trautmann
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Nachtrag: Wenn man weiß, wo man suchen muss, wird man auch im deutschen Handbuch https://ninox.com/de/manual/im-und-export/import fündig. Anders als im englischen gibt es keinen eigenen  Unterpunkt für den Import verknüpfter Tabellen, sondern dieser Fall wird unter "Im- und Export ... Import" im Text weiter unten unter "Importe Relationaler Daten" beschrieben, sogar noch ausführlicher als in der englischen Ausgabe.

Content aside

  • vor 3 JahrenZuletzt aktiv
  • 5Antworten
  • 865Ansichten