PDA

Vollständige Version anzeigen : Werte in Tabelle vergleichen


tsc921
30.04.2011, 11:47
Hallo,
ich habe 2 Tabellen mit jeweils einem Feld namens Version.

Nun suche ich einen Code der die Felder (jeweils nur ein Feld) vergleicht
und wenn der Wert von Tabelle 2 höher ist, soll ne Meldung erscheinen !

Also 2 Tabellen die beide ein Feld namens Version haben und jeweils nur einen Datensatz haben !

Danke Sehr

Gruß
Frank

Marsu65
30.04.2011, 12:23
Hallo Frank,
Sub Versionsvergleich()
If DLookUp("[Version]", "Tabelle2") > DLookUp("[Version]", "Tabelle1") Then
Msgbox "Es liegt eine höhere Version vor"
End If
End Sub
Tabelle1 und Tabelle2 musst du noch gegen deine Tabellennamen austauschen!

... und willkommen im Forum :)

Arne Dieckmann
30.04.2011, 12:27
Da jeweils nur ein Datensatz vorhanden sein soll, könnte es schon so klappen ("version" sollte ein Zahlenfeld sein, falls nummerische Werte verglichen werden) - wo du das einsetzen willst, musst du wissen:
If DLookup("[version]","tabelle2") > DLookup("[version]","tabelle1") then
Mgsbox "Eine Meldung"
End If


Ups - etwas zu langsam ...

tsc921
05.05.2011, 18:01
Alles funktioniert, vielen herzlichen Dank.

Eine Frage habe ich noch, ist es möglich über die einfacher Funktionen auch Access zu schließen ? Also wenn Tabelle2 > Tabelle1 = Access beenden ?

Hintergrund ist, dass ich 15 Frontend habe die im Werk verteilt arbeiten. Muss ich was am Backend machen, muss ich zu jedem Frontend gehen und Access schließen ! Das ist ätzend!

Ich würde mich sehr freuen und wäre sehr dankbar wenn das klappen würde !

Danke
Frank

guenther_p
05.05.2011, 18:07
Application.CloseCurrentDatabase

Sollte meiner Ansicht nach aber von Hinweis an den Benutzer und Aufräumarbeiten begleitet werden.

PS Access bleibt dabei (zumindest in der Vollversion) geöffnet
PPS Alternative Application.Quit (hier kannst du auch einen Parameter zur Speicherung vergeben)

Gruß
Günther

tsc921
17.05.2011, 19:33
Hallo Günther,
danke für die Hilfe, da ich nicht so ein VBA Profi bin, kannst DU mir den ganzen Code nennen ? Also denn ich dann nur einfügen brauche.

Das wäre sehr nett.

Danke

Gruß
Frank

achtelpetit
17.05.2011, 19:44
Wie soll die ganze Sache denn überhaupt funktionieren?
Wie wird denn die Funktion zum Schließen angestoßen?
Bekommt der User eine Nachricht, bevor ihm sein Programm geschlossen wird?

CptChaos
18.05.2011, 09:35
Hat das was mit einem Update/Aktualisierung von Datenbanken zu tun?
Evtl. hilft Dir mein Beispiel für ein Start/Update von Datenbanken per Script: http://www.ms-office-forum.net/forum/showpost.php?p=1152300&postcount=15

tsc921
19.05.2011, 17:34
Hallo,
danke für Eure Hilfe. Unser Netzwerk im Werk ist manchmal ziemlich lahmarschig. Es passiert,dass das Backend sich dann nicht mehr öffnen lässt und repariert werden muss. Dazu müssen aber alle Frontends beendet sein.
Aktuell renne ich auf dem Werk rum, und beende alle Frontends manuell.

Für diesen Notfall brauche ich eine Funktion (für mich verständliche) wo ich auf Klick alle Frontends rausschmeissen kann um dann das Backend zu reparieren (macht Access automatisch).

Mehr möchte ich nicht. Könnt Ihr mir eine einfache wie Eingangs beschrieben, Lösung nennen ?

Ich wäre sehr sehr dankbar dafür !
Danke

Gruß
Frank

P.S. Ich bin kein VBA Spezi ;-)

guenther_p
19.05.2011, 20:34
ohne Dich mit VBA intensiver zu beschäftigen wird dieses Unterfangen wohl kaum möglich sein!

Ein paar Ideen dazu:

Du könntest ev. bei Menüauswahlen des Users den Prüfmechanismus einbauen - damit passiert aber bei Usern, die die Applikation im Hintergrund offen haben und sich mit anderen Themen beschäftigen leider baw. gar nichts.

Wenn Du eine sofortige Reaktion brauchst, so wäre das ev. über die Timer-Funktion in Formularen möglich. Du musst aber vermutlich in jedem Formular und sogar nach Bearbeitungsfortschritt unterschiedlich reagieren, damit die Arbeit des Users nicht einfach verschmissen wird.

wie bekommt der User mit, dass jetzt wieder gearbeitet werden kann. Er sollte meiner Ansicht nach den Hinweis bekommen, dass die DB gerade in Reparatur ist (ev. in einem geeigneten Startup-Formular).


Gruß
Günther

achtelpetit
19.05.2011, 20:53
Wie Günther schon sagte: ohne tiefere Kenntnisse kommst Du da nicht weit.
Du könntest per Timer alle paar Minuten abfragen, ob das Frontend geschlossen werden soll. Falls das dann der Fall ist, müßte zunächst ein Popup-Formular den User informieren, daß das FE in z. B. 5 Minuten geschlossen wird. Das Popup hat wiederum einen Timer, der dann nach 5 Minuten schließt.
Das Verfahren scheitert allerdings, wenn der User ein "gebundenes Formular" geöffnet hat oder eine Messagebox.
Ist also alles nicht so einfach.

CptChaos
20.05.2011, 08:03
Unser Netzwerk im Werk ist manchmal ziemlich lahmarschig. Es passiert,dass das Backend sich dann nicht mehr öffnen lässt und repariert werden muss.
Ist sichergestellt, dass das "lahmende" Netzwerk direkt damit zusammenhängt, dass das BackEnd repariert werden muss?

Ich befürchte hier werden Symptome bekämpft wo eigentlich die Ursache gesucht werden muß.
Auch die Aussage "macht Access automatisch" bzgl. der Reparatur macht mich stutzig.
Hast Du für das BackEnd die entsprechende Option ("beim beenden komprimieren und reparieren") aktiviert?
Die hat m.E. im BackEnd nix zu suchen.

tsc921
20.05.2011, 16:28
Hallo,
also wir nutzen meine DB seit 5 Jahren.
Probleme gibt es mit dem Netzwerk 1-2x im Jahr. In der letzten Zeit kam das Problem öfters, weil eine Migration läuft. Also alle Festplatten auf andere Server etc.

Ich möchte doch nur eine einfache Möglichkeit mit einem Klick alle Frontends rauszuschmeissen, also beenden ! Der User braucht nichts abspeichern, das Backend wird eh 2x am Tag gesichert. Dann fehlt halt der Status von einem Datensatz.

Ich hatte auch schon vor einigen Jahren eine simple Lösung, aber die finde ich nicht mehr wieder.

Könnt Ihr mir helfen, eine einfache und für mich verständliche Lösung finden ?

Danke

ebs17
20.05.2011, 17:18
Frontend auf Client vom Server aus beenden (http://www.access-home.de/cms/index.php?kat=31&cms_id=450)

tsc921
22.05.2011, 08:55
Das ist genau das was ich gesucht habe.

Vielen lieben Dank an alle die mich unterstützt haben.

Danke