Announcement

Collapse
No announcement yet.

aktualisierungsabfrage in Base bzw. anfügen von Daten aus einer zweiten Tabelle.

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • aktualisierungsabfrage in Base bzw. anfügen von Daten aus einer zweiten Tabelle.

    Hallo.

    Ich habe eine Frage zum Open Office Base DB Modul. Mit Access habe ich bereits gearbeitet und da bekomme ich das auch hin. Bei Base stecke ich aber fest.

    Ich möchte eine Datenbank erstellen um meinen Lagerbestand einfach zu erfassen.
    In Tabelle 1 will ich den Zugang bzw. Abgang mit Mengen erfassen. Damit aber nicht immer der komplette Artikel Beziehung.JPGeingegeben werden muss soll in der zweiten Tabelle über den Primärschlüssel der eindeutigen Artikelnummer die Daten in Tabelle1 ergänzt werden.

    Soll so aussehen.
    Im Artikelstamm stehen die Artikel:

    Primärschlüssel: "Artikelnummer"
    "Artikelbezeichnung"
    "Lieferant"

    Durch die Eingabe der Artikelnummer in Tabelle 1 sollen nun die ebenfalls in Tabelle 1 enthaltenen Felder "Artikelbezeichnung" und "Lieferant" durch die im Artikelstamm (Tabelle) hinterlegten Daten befüllt werden.
    Ich bekomme das bei Base aber einfach nicht hin.

    Die Eingabe soll über ein Formular erfolgen.

    Kann mir jemand sagen ob das mit Base geht und wenn wie.

    Ich habe bisher noch nicht mit SQL gearbeitet sondern in Access alles über die aktulisierungsabfrage bewerkstelligt. Diese Funktion (aktualisierungsabfrage) finde ich in Base allerdings nicht.

    Wäre super wenn mir jmd. einen Tipp geben kann.

    Wäre klasse. :-)

  • #2
    Gehen tut das. Aber was ist die Frage?
    Wie der SQL lautet?
    select Artikel,Lieferant from Artikelstamm where Artikelnummer="Eingabe_aus_dem_Formularfeld"
    Christian

    Comment


    • #3
      Ich habe noch nie mit Base programmiert, dennoch ein paar Gedanken zu Deinem Vorgehen.
      Ich denke, das Du diese redundanten Daten gar nicht übertragen musst.
      Um Ab- und Zugänge nachzuhalten, würde die Artikelnummer mit der Menge reichen. Den "Rest" kannst Du bei Bedarf per Abfrage / View anzeigen.
      Wenn also ein Nutzer in Tabelle 1 eine Artikelnummer und eine Menge einträgt, können über eine JoinAbfrage zwischen Tabelle1 und Artikelstamm die benötigen zusätzlichen Daten mit angezeigt werden.
      Kein Bedarf für Updates und redundante Datenhaltung. (Eine Ausnahme wäre, wenn Du wegen historisch sich änderndernden Artikelstammdaten eine Liste der zum Zeitpunkt der Artikelbewegung gültigen Daten benötigst.)
      Sollte dies nötig sein würde ich eher ein <insert into tabelle1 <feldliste> select <feldliste> from Artikelstamm where artikelnummer=:ParamEingabeNummer> verwenden, statt eine Aktualisierungsabfrage (Genannt Update in SQL).

      Wenn Du bereits mit Access gearbeitet hast, kann Du dort die Darstellung einer Abfrage auf SQL umstellen und erhälst eine grobe Idee, wie es in SQL aussehen kann. "Grob", weil Access sich nicht so nah am SQL Standard bewegt, sollte aber in vielen Fällen bereits passen oder mit kleinen Änderungen übertragbar sein.

      Zuletzt noch der Hinweis, dass Du Dir genau überlegen solltest, wie die Mengen anzugeben sind, die dort "verwaltet" werden. M.E. müssten diese direkt aus Bestellmengen im System abzuleiten sein. Falls das allein nicht der Fall ist, sollte es andere Prozesse geben (Logistik,..), die diese Mengen definieren. Eine manuelle Verwaltung wäre also unnötig.
      Die "Strichliste", die Du anlegen möchtest, kann leider sehr leicht mit der Realität oder anderen Daten im System kollidieren, konsistentes Reporting und Inventur sind dann schwierig.
      Gruß, defo

      Comment


      • #4
        Hallo danke erstmal für eure schnelle Hilfe und Denkanstöße.

        Ich werde es einmal probieren.

        @defo: Bei näherer Betrachtung deines Einwandes gebe ich dir völlig recht. Die Daten müssen gar nicht in die Tabelle übernommen werden. Die Eingabe der Daten überprüft der Benutzer über Separate Listboxen die im Formular eingebettet und mit dem Artikelstamm verknüpft sind. Damit kann er sehen ob er die richtige Artikelnummer gewählt hat. Die Auswertung über die Bestände machen wir dann über eine klassische Abfrage.

        Es wäre für mich trotzdem interessant wie diese Befehlszeilen in Base überhaupt funktionieren. Ich habe mir auch schon das Handbuch heruntergeladen. Was mir aber fehlt ist der Hinweis wo ich die SQL befehle eingeben muss. (Allgemein unter SQL eingabe oder bei dem Objekt das ich steuern will?) Wenn ich von der Delphi Programmierung ausgehe muss dem Objekt ja gesagt werden das etwas bei einem Ereignis geschehen soll. z.B. OnClick Button1 Daten aus Feld 1 in Feld 2 kopieren. Da weiß ich eben noch nicht wo der SQL Code eingetragen wird. Ich will ja keine eigene Prozedur schreiben.

        Danke
        Ihr seid echt flott. :-)

        Comment


        • #5
          Originally posted by Nightblade View Post
          Es wäre für mich trotzdem interessant wie diese Befehlszeilen in Base überhaupt funktionieren. Ich habe mir auch schon das Handbuch heruntergeladen. Was mir aber fehlt ist der Hinweis wo ich die SQL befehle eingeben muss. (Allgemein unter SQL eingabe oder bei dem Objekt das ich steuern will?) Wenn ich von der Delphi Programmierung ausgehe muss dem Objekt ja gesagt werden das etwas bei einem Ereignis geschehen soll. z.B. OnClick Button1 Daten aus Feld 1 in Feld 2 kopieren. Da weiß ich eben noch nicht wo der SQL Code eingetragen wird. Ich will ja keine eigene Prozedur schreiben.
          Wie gesagt, ich habe keine Ahnung von Base und nutze es nur gelegentlich, um in irgendwelche Tables reinzuschauen.
          Vielleicht hilft das hier (1.Googletreffer) oder ist zumindest ein Ausgangspunkt.
          https://wiki.openoffice.org/wiki/Doc..._database_form


          P.S.: Falls in Deiner Software tatsächlich mit Freihandeingaben gearbeitet wird, wäre ggF. eine Erweiterung der Artikelnummer um eine Prüfziffer sinnvoll (statt einfach fortlaufende Nummer / Sequenzen zu verwenden)
          Gruß, defo

          Comment

          Working...
          X