Tabellenerstellung & Funktion?! (Acces 2013+)

MysterioJN

SQL-Guru
Beiträge
158
Hi zusammen,

ich habe folgende Tabelle (vereinfachte Namen zum besseren Verständnis hier):
tblFormat

Spalten:
- PIDX (Autowert)
- FormatName (Beispielinhalt: DinA4 ; DinA5 ; etc.)
- FormatHoehe (Beispielinhalt: 29,7 ; 21 ; etc.)
- FormatBreite (Beispielinhalt: 21 ; 14,8 ; etc.)
- FormatKomplett (Hier soll der jeweilige Zeilenwert von Name + Höhe + Breite als Text/String ausgegeben werden)

Beispielzeile:
2 ; DinA4 ; 29,7 ; 21 ; [HIER Zusammengesetzt soll stehen: DinA4 29,7 x 21]

Seht ihr eine Möglichkeit, bei Inhaltseintragung bei Name, Hoehe und Breite, das sich das Feld Komplett aus den eingetragenen Zeilenwerten zusammensetzt? Sprich eine "direkte Verkettung" ?

Ein externer SQL-Datenbankfreak teilte mir mit, das man dies mittels Funktionen machen kann. Da ich aber in SQL definitiv nicht fit bin, das anzulegen und ich wenn möglich das Front-End schonen möchte, wäre die Idee über Access eine schöne Alternative.

Herzliche Grüße


P.S. über Aktualisierungsabfragen ist mir das klar, aber diese muss man extra anstoßen und bei der Implementierung auf den MSSQL-Server fallen die Abfragen flach...
 
Werbung:
Naja, bis dato sind es wie im anderen Thread bereits gesagte, in sieben Monaten händisch angefasste, angepasste, normalisierte, verknüpfte Accessdaten.
In Zukunft soll es via "Upsize Wizard" - der mal um längen besser arbeitet als die Importfunktion des ManagementStudios - in einer SQL-Datenbank implementiert werden.
Der Wizard arbeitet sogar so gut, das er alle Keys, Autoinkremente, Beschreibungen, Formate (bis auf wenige Ausnahmen da Access andere Formate hat als SQL) und und und erkennt und diese auf dem SQL-Server entsprechend RICHTIG einstellt.
Ich möchte daher soviel durch den Wizard "abgearbeitet" beim Erstimport übergeben, was geht, um wenig im Nachgang noch auf dem SQL "regeln" zu müssen.
Denn wie ihr ja wisst, stellen wir uns ein bischen doof an im Bezug auf SQL, Trigger und Co ;)

In Access gibt es meiner Meinung nach keine Trigger. Dann bestimmt über eine Funktion?! Aber das wäre auch außerhalb der Tabelle. Sprich - wie du sagst - Unfug.

Mhm View.... Mal blöd gefragt: Eine View von einer Tabelle kann ich ohne Probleme mit Formeln und Funktionen/Gültigkeiten anlegen?!
Das wäre performance Technisch sehr attraktiv, komplexe Abfragen (Selects) serverseitig in "View"s abzulegen, um sie dann mit dem Front End (DotNetNuke) einfach abbilden zu können. Da kann ich ja auch ohne Probleme mit Verkettungen arbeiten (Und das Beste, ich wüsste sogar wie ;))

Kann man denn einstellen, wie oft diese View aktualisiert wird? Es ist doch technisch "nur" eine (angepasste) Tabelle wie die anderen auch, richtig?
 
'klassische'Views sind lediglich ein Alias auf die zugrunde liegende Abfrage - diese wird stattdessen ausgeführt. Materialized Views machen das, was der Name suggeriert: das ist dann quasi ein Snapshot des Resultates der Abfrage, das wird 'eingefroren'. Es gibt auch Möglichkeiten des 'auftauens' - refresh materialized view. Ich spreche aber hier von PostgreSQL, keine Ahnung, was Access da kann.
 
Naja von Access lösen wir uns ja eh sobald die Daten auf dem SQL sind (Finale Übergabe). Da kommen dann die VIEWs als nette Möglichkeit dazu, mit denen wir, denke ich, unsere Produktverwaltung absolut zuverlässig bedienen können (die wir auch Front-End-technisch erstmal noch erzeugen müssen - MS Visual Studio sei dank in Kombination mit DNN)
 
Mit Views kannst du dann nicht viel verkehrt machen. Sie helfen dir bei berechneten Werten aber auch bei sehr komplexen Abfragen können sie Teile ausgliedern und machen das ganze übersichtlicher. Schreiben kannst du allerdings nur in die originäre Tabelle, daran haperts auch bei unserem CRM. Das Versucht da gerne mal rein zu schreiben.

Mit materialized Views habe ich mich noch nicht beschäftigt, musst du mal gucken wie MS das umsetzt.
 
Klingt echt super und nach einer saubereren Sache - die denk ich sogar wir hinbekommen (ok, vlt kommt noch mal ne Nachfrage wenn es soweit ist ;)
Ich danke Euch für die Klarheit und habt einen schöne Feierabend!
 
Schreiben kannst du allerdings nur in die originäre Tabelle

Depends ;-)

Code:
test=# select * from foo;
 nummer | name
--------+------
 215001 | Rue
 215002 | Bau
 215003 | EFH
 215004 | Bet
(4 rows)

test=*# create view view_foo as select * from foo;
CREATE VIEW
test=*# insert into view_foo values (1, 'eins');
INSERT 0 1
test=*# select * from view_foo ;
 nummer | name
--------+------
 215001 | Rue
 215002 | Bau
 215003 | EFH
 215004 | Bet
  1 | eins
(5 rows)

PostgreSQL. Ob das in M$SQL geht weiß ich nicht. Möglicherweise könnte man das über Trigger lösen.
 
Werbung:
Ich muss gestehen damit habe ich mich noch nicht befasst. Ich kann aber auch mit einer Hand-voll berechneter Spalten in meiner DB leben, die ist eh nicht groß :)
 
Zurück
Oben