Hallo,
mhmm, ich versteh Deine ganze Ansicht der Access-Funktionalität nicht…
Der Code ist quasi „heilig“, er darf nie mehr verändert werden, was auch immer passiert, also z.B. Löschen eines älteren Auftrages, Kompression oder Reparatur der Db, etc. Verstehst du?
Nein… (Code == Kurzbezeichnung) Wenn ein Auftrag (Datensatz) gelöscht wird, ist auch keine Kontrolle mehr über die von diesem DS abhängiger Kurzbezeichnung mehr möglich.
Das verhindert Redundanzen und Mehrdeutigkeiten.
-> dito, s.o.
Gerade durch die Speicherung ( in gleicher Tabelle oder einer anderen) wird o. g. Forderung („er darf nie mehr verändert werden“) hintergangen.
wie beziehe ich mich in der Funktion auf die DB oder die Tabellen?
Eine Funktion hat, wie angedeutet, Übergabe-Parameter (Argumente), die die Werte aus Formularfelder oder sonstigen Variablen in/an die Funktion weitergeben.
Ist es richtig, in der DB stehe ich, also muss ich sie nicht angeben?
Klar, wo soll sonst die Funktion stehen? „Außerhalb“ Access (bzw. der Anwendung) geht nicht…
auf den Kürzel mit [Aufträge].[Kunde]?
kann ich sql in der Funktion benutzen?
Mhmm, ein bischen durcheinander…
Access besteht aus 3 Teilen:
-Die GUI, also die User-Oberfläche, auf der die einzelnen Objekte (Tabellen, Forms, Reports) mit der Maus oder sonstwie erstellt und „zusammengeklickt“ werden können.
-Die Jet-Engine, das eigentliche DB-System, das Tabellen und Tabelleninhalte beherbergt. Die „Kommunikationssprache“ mit dieser Jet-Engine ist SQL (Access-Dialekt). SQL wird z. B. in Abfragen manifestiert (Abfrageentwurf/SQL Ansicht) .
-Dem VBA-IDE in Gestalt des VBA-Editors, das es ermöglicht, nahezu alle Abläufe programmtechnisch (Visual Basic for Applications) zu kontrollieren. In VBA gibt es eingebaute Funktionen, die SQL-Strings („Select * from tblTabelle“) verarbeiten können, soll heißen, solche Funktionen können aus der Jet-Engine (Tabellen) Daten auslesen oder auch einlesen, bzw. manipulieren.
In/mit diesem VBA-Editor können nun auch Prozeduren geschrieben werden, die eben bestimme Aufgaben ausführen. Zum Einen sind es Ereignisprozeduren, die aufgerufen werden, wenn das dazu gehörende Ereignis auftritt ( z. B. Klick auf einen Button), zum Anderen können es „globale“ (Public) Prozeduren (Funktion oder Sub) sein, die von überall her (–> müssen dann in einem Standard-Modul stehen) aus der Access-Anwendung aufgerufen werden können, also auch von innerhalb eines SQL-Statements.
Links für Tutorial finden sich genügend im IN. —> gockeln.
Ansonsten wären z. B. donkarl.com und dbwiki.net als Tipplieferant (FAQ) zu empfehlen.