Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

Dateneingabe





Frage

Hallo, ich bastel immer noch an meinem Wartungsprogramm, ich habe ein Formular erstellt in dem stehen die zu erledigenten aufgaben, wenn eine aufgabe abgearbeitet wurde dann soll ein name ausgewählt werden ´"müssen". wie kann ich das tun??? Kerstin

Antwort 1 von disco

moin

was für ein name? wo kommt der her? und warum steht "müssen" in anführungszeichen?

g,
disco

Antwort 2 von RalfH

Hallo Kerstin,

In der Tabelle ein Feld mit " Erledigt von"
Im Formular dann vor der Aktualisierung

If  isnull(me![Erledigt von]) = True Then
msgbox " Sie haben noch keinen Namen eingetragen!",vbInformation
me"[Erledigt von].SetFocus



Hier erhält der User eine MessageBox, wenn kein Name eingetragen wurden ist, und nach Klick auf dem OK Button wird das entsprechende Textfeld focussiert.
Gruß Ralf

Antwort 3 von Kerstin.Kl

Hallo Ralf,

ich bin dir mal wieder zu Dank verpflichtet, werde es morgen gleich ausprobieren.

P.S. Hast du auch ein Lösung für folgendes Problem?

Ich habe ein Art Kalender mittels Buttons erstellt und da sollen die täglichen Wartungsaufgaben drin stehen. Nun kann es aber vorkommen das nicht alles erledigt wird. wie kann ich es anstellen das z.B. die nicht erledigten aufgaben vom 1.1 in den plan vom 2.1 stehen?

Nochmal tausend Dank

Antwort 4 von RalfH

Hallo Kerstin,
beschreib doch bitte mal den Aufbau Deines Kalenders.
Gruß Ralf

Antwort 5 von Kerstin.Kl

Ich habe ja tägliche, wöchentliche, monatliche, vierteljährliche,... Wartungsintervalle und ich muss dafür sorgen das alle eingehalten werden und da habe ich die Aufgaben noch unterteilt in welcher Woche und an welchem wochentag diese zu lösen sind. und da nach habe ich den kalender aufgebaut.
z.b. Sichtkontrolle = Monatlich = Woche 1 = Samstag
dies habe ich als abfrage formuliert und dann das kalenderformular damit verknüpft. finde ich aber keine andere lösung heißt das ja das ich 356 Abfragen habe. und das kanns auch nichts sein

vielleicht gibt es ja noch eine andere lösung

Antwort 6 von RalfH

Hallo,
Hier mal was zu den Grundlagen:
http://www.donkarl.com/
Gruß Ralf

Antwort 7 von Kerstin.Kl

Hallo Ralf,
irgendwie funktioniert das trotzdem nicht:

If isnull(me![Erledigt von]) = True Then
msgbox " Sie haben noch keinen Namen eingetragen!",vbInformation
me"[Erledigt von].SetFocus

ich kann auf erledigt klicken ohnen einen namen einzugeben.

Kerstin

Antwort 8 von RalfH

Hallo Kerstin,

1. Alles wird gut ;-)

2.If isnull(me![Erledigt von]) = True Then
msgbox " Sie haben noch keinen Namen eingetragen!",vbInformation
me"[Erledigt von].SetFocus
Sollte:
If isnull(me![Erledigt von]) = True Then
msgbox " Sie haben noch keinen Namen eingetragen!",vbInformation
me![Erledigt von].SetFocus
lauten.

Ich habe das mal hier nachgebaut und bei mir läuft das ohne Probleme.

Im Formular ist wie oben besprochen das Feld " Erledigt von", sobald ich den Datensatz speichern möchte, ohne das ein Name eingegeben wurde, kommt die Messagebox.

Gruß Ralf

Antwort 9 von Kerstin.Kl

Hallo Ralf,

vielen Dank probier es gleich aus.

Hast du vielleicht auch einen Vorschlag wie ich das mit den Wartungsplänen machen könnte? Mir ist noch nichts gescheites eingefallen. Ich würde die Zeit wann etwas zu warten ist, gern "berechnen/abfragen" lassen.

Kerstin

Antwort 10 von Kerstin.Kl

Nochmal Hallo!

Funktioniert trotzdem nicht:


Private Sub Erledigt_Click()
Me![erledigt am] = Now
Me.Requery
End Sub

Private Sub erledigt_durch_BeforeUpdate(Cancel As Integer)
If IsNull(Me![erledigt durch]) = True Then
MsgBox "Sie haben noch keinen Namen eingetragen!", vbInformation
Me![erledigt durch].SetFocus
End Sub

Kerstin

Antwort 11 von Kerstin.Kl

Es geht !!!!!!!!!!
Bin endlich auch mal allein auf die Lösung gekommen. Hab des END IF vergessen.


Kerstin

Antwort 12 von RalfH

Siehste, alles wird gut !

Antwort 13 von Kerstin.Kl

So nun die nächsten Probleme,

das mit dem Namen eingeben funktionoiert ich gehe auf erledigt dann kommt die Messagebox "Bitte Namen eingeben" und wenn ich dann nochmal erledigt drücke ohne einen Namen einzugeben geht der Datensatz trotzdem weg.

was kann ich dagegen tun?

kerstin

Antwort 14 von RalfH

Hallo Kerstin,

Durch den Klick auf erledigt, wird ja die folgende Prozedur aufgerufen:

Private Sub Erledigt_Click()
Me![erledigt am] = Now
Me.Requery
End Sub


- Me![erledigt am] = Now setzt den Jetzt Wert, also Datum Inkl Uhrzeit in das Feld erledigt am.

- Me.Requery = Mit der Methode Requery werden die Datensätze erneut abgefragt, so als ob Du das Formular schliessen und wieder öffnen würdest.

Hier müsste nun Eigentlich die Prozedur greifen.

Private Sub erledigt_durch_BeforeUpdate(Cancel As Integer)
If IsNull(Me![erledigt durch]) = True Then
MsgBox "Sie haben noch keinen Namen eingetragen!", vbInformation
Me![erledigt durch].SetFocus
End Sub

Das tut sie aber nicht, weil das a)Feld erledigt durch ja nicht aktualisiert wird und b) das Feld ja auch keinen Focus hat.

Am besten packst Du die Prozedur mal in das Formular Ereignis Vor Aktuallisierung rein.

Dann wird bei der Requery Methode jedesmal überprüft, ob das entsprechende Feld gefüllt ist oder eben nit.
Gruß Ralf