MS-Office-Forum
Google
   

Zurück   MS-Office-Forum > Microsoft Access & Datenbanken > SQL
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads Der Renner, 11 Entwicklertools für Access, Tipps & Trick und offene Datenbanken zum einzigartigen Preis.
Themen-Optionen Ansicht
Alt 10.02.2017, 16:06   #1
amibobo
MOF User
MOF User
Standard Jet-SQL - Mehrere Änderungen in einem SQL-Statement?

Hallo Forum,

im Access 2010 habe ich in einem Formular mehrere Kenner. Wenn ein Besprechungsprotokoll fertig erstellt ist, sollen anhand der Kenner per Knopfdruck Änderungen an den Datensätzen vorgenommen werden, z.B.

Beim Status "MOD auf nächste Agenda" wird der Status auf "Aktuelle MOD" gesetzt.
Bei gesetzter Checkbox "Erledigt nach Protokoll" wird der Status auf "MOD geschlossen" gesetzt, in der Checkbox wird der Haken gelöscht.
...

Einzeln sind die entsprechenden SQL-Statements:
Code:

UPDATE
[tbl_Mod Rumpfdaten] AS RD
SET 
RD.StatusModTp = 1
WHERE
RD.StatusModTp = 4
Code:

UPDATE
[tbl_Mod Rumpfdaten] AS RD
SET 
RD.StatusModTp = 3,
RD.ErledigtNachProtokoll = False
WHERE
RD.ErledigtNachProtokoll = True
Da alles in derselben Tabelle gemacht wird, macht es Sinn und ist es möglich, das durch ein gemeinsames SQL-Statement bearbeiten zu lassen?

Vielen Dank im Voraus!

Viele Grüße
amibobo ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.02.2017, 16:28   #2
ebs17
MOF Guru
MOF Guru
Standard

Durch die unterschiedlichen Filter wäre ein gemeinsames SQL-Statement arg umständlich, außer Du könntest zusätzlich auf eine geeignete Zuordnungstabelle zurückgreifen.

Die zweite Abfrage irritiert mich aber schon als solche. Bei Feldabhängigkeiten innerhalb eines Datensatzes fehlt wohl ein Normalisierungsschritt?

__________________

Ein freundliches Glück Auf!

Eberhard

Abfrageperformance ist kein Geheimnis
SQL ist leicht: {0}:{1}:{2}:{3}:{4}:{5}:{6}:{7}:{8}:{9}
Dein Dankeschön: DBWiki=>Spende
ebs17 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.02.2017, 16:36   #3
amibobo
Threadstarter Threadstarter
MOF User
MOF User
Standard

Hallo Eberhard,

Zitat:

Die zweite Abfrage irritiert mich aber schon als solche. Bei Feldabhängigkeiten innerhalb eines Datensatzes fehlt wohl ein Normalisierungsschritt?

Stimmt, das ist das Erbe meines Vorgängers.
Das Thema Normalisierung muss ich als Nächstes angehen, wenn ich das Soll erfüllt habe. Da muss ich mich aber selbst erst noch fit machen, um bei einer Datenbank in Benutzung diese nicht zu schießen.
amibobo ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 11.02.2017, 11:32   #4
hcscherzer
MOF Guru
MOF Guru
Standard

Zitat:

um bei einer Datenbank in Benutzung diese nicht zu schießen

Mal ernsthaft: Du willst doch nicht eine Datenbank im laufenden Betrieb normalisieren????

Meine Empfehlung: mach das bloss nicht.Teufels Küche!

Wie geht es:
eine Kopie des fraglichen BackEnds machen und mit der alle Schritte durchführen
jeden einzelnen Schritt sorgfältig dokumentieren
und vor allem: alles, was Du machst und für korrekt befindest: scripten

Dann kannst Du alle Befehle in ein langes SQL Script zusammenführen.
Dann machst Du wieder eine Kopie der DB und lässt das Script darauf los.
Wenn das problemlos klappt und die Kopie danach so aussieht, wie sie aussehen soll, lässt Du das Script auf die produktive DB los.
Aber auch dabei würde ich dafür sorgen, dass in diesen paar Sekunden oder Minuten niemand an der DB arbeitet.

__________________

Freundlichen Gruß
Hans-Christian
-----------------------------------------
Oft erwünscht, selten beachtet: nach Erledigung des Problems den Thread als erledigt zu markieren
-----------------------------------------
Ich möchte nur Mitglied in einem Verein sein, der Leute wie mich nicht als Mitglied aufnimmt (Groucho Marx).
-----------------------------------------
Ab sofort regelmässig: MOF Stammtisch in Bremen. Näheres hier.
hcscherzer ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.02.2017, 15:20   #5
amibobo
Threadstarter Threadstarter
MOF User
MOF User
Standard

Hallo Hans-Christian, hallo Forum,

danke für deine Ratschläge.

Zitat:

Wie geht es:
eine Kopie des fraglichen BackEnds machen und mit der alle Schritte durchführen
jeden einzelnen Schritt sorgfältig dokumentieren

Da sprichst Du eine zweite große Baustelle an: es gibt noch kein Front-/Backend, sondern eine DB-Datei, die alle benutzen.


Zitat:

und vor allem: alles, was Du machst und für korrekt befindest: scripten

Dann kannst Du alle Befehle in ein langes SQL Script zusammenführen.
Dann machst Du wieder eine Kopie der DB und lässt das Script darauf los.

Wie scriptet man im Access / VBA?

Zitat:

Wenn das problemlos klappt und die Kopie danach so aussieht, wie sie aussehen soll, lässt Du das Script auf die produktive DB los.
Aber auch dabei würde ich dafür sorgen, dass in diesen paar Sekunden oder Minuten niemand an der DB arbeitet.

Das ist kein Problem, nach 17 Uhr bin ich normal allein im Büro

Viele Grüße
amibobo ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.02.2017, 15:57   #6
hcscherzer
MOF Guru
MOF Guru
Standard

Zitat:

es gibt noch kein Front-/Backend, sondern eine DB-Datei, die alle benutzen

Oh je, das ist nun keinesfalls zu empfehlen.
Aber das lässt sich doch mit ein paar Mausklicks erledigen:
Wenn keiner arbeitet, machst Du eine Kopie der Access Datei.
Aus der Kopie löschst Du die Tabellen raus und fügst anschliessend Verknüpfungen der Tabellen aus der Original-Datei ein. Von diesem FrontEnd machst Du dann für jeden Arbeitsplatz eine Kopie auf dessen lokaler Platte.

Aus der Originaldatei löschst Du alle Abfragen, Formulare, Berichte, Makros und Module. Damit diese Datei von niemandem mehr (versehentlich) geöffnet wird, kannst Du ein Makro mit Namen Autoexec anlegen, das als einzigen Befehl Ausführen Code enthält und als Ziel die Prozedur init().
In einem globalen Modul legst Du diese Prozedur an:
Code:

public function init()
   msgbox "Bitte verwenden Sie ihr lokales FrontEnd"
   application.quit
   init = true
end function
Damit Du selbst das neue BackEnd bearbeiten kannst, musst Du es mit gedrückter Shift-Taste öffnen.
Eigentlich ja alles Access- und nicht SQL-Thematik.

Zitat:

Wie scriptet man im Access / VBA?

Da gibt es leider keine Automatik (wie im MS-SQL). Das musst Du selbst zusammenschreiben.
Ist aber auch nicht sooo schwer. Die gängigen Befehle sind
CREATE TABLE und ALTER TABLE

__________________

Freundlichen Gruß
Hans-Christian
-----------------------------------------
Oft erwünscht, selten beachtet: nach Erledigung des Problems den Thread als erledigt zu markieren
-----------------------------------------
Ich möchte nur Mitglied in einem Verein sein, der Leute wie mich nicht als Mitglied aufnimmt (Groucho Marx).
-----------------------------------------
Ab sofort regelmässig: MOF Stammtisch in Bremen. Näheres hier.
hcscherzer ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.02.2017, 17:03   #7
amibobo
Threadstarter Threadstarter
MOF User
MOF User
Standard

Zitat:

Eigentlich ja alles Access- und nicht SQL-Thematik.

Stimmt, ich werde zu den speziellen Fragen auch neue Beiträge aufmache.

Eine letzte Frage vorerst:
Dann sollte mein Fahrplan sein?
1. Die Normalisierung theoretisch vertiefen und dann konkret für die DB planen.
2. Die Trennung in Front- und Backend
3. Dann davon Kopien machen, die Skripte erarbeiten und testen.
4. Zuletzt die Skripte im Produktivsystem anwenden.
amibobo ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.02.2017, 17:34   #8
hcscherzer
MOF Guru
MOF Guru
Standard

Wenn Du mich fragst:
ich würde die Trennung in Front- und BackEnd vorziehen

__________________

Freundlichen Gruß
Hans-Christian
-----------------------------------------
Oft erwünscht, selten beachtet: nach Erledigung des Problems den Thread als erledigt zu markieren
-----------------------------------------
Ich möchte nur Mitglied in einem Verein sein, der Leute wie mich nicht als Mitglied aufnimmt (Groucho Marx).
-----------------------------------------
Ab sofort regelmässig: MOF Stammtisch in Bremen. Näheres hier.
hcscherzer ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:48 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

Copyright ©2000-2010 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günther Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.
Beachten Sie bitte auch unsere Nutzungsbedingungen.