MS-Office-Forum
Google
   

Zurück   MS-Office-Forum > Microsoft Access & Datenbanken > Microsoft Access
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 08.09.2003, 15:16   #1
Donner77
MOF User
MOF User
Frage Zeitraumüberprüfung

Hallo zusammen,

hab jetzt den ganzen tag herumprobiert, doch ich schaff es einfach nicht! Hab im Anhang mal die Ausgangsversion angehangen.

Also nachdem ich das Formular MitarbeiterÜbersicht aufgerufen habe, mir dort dann durch klick einen namen ausgewählt habe, und dann auf abwesenheit klicke komme ich zu dem formular um das es geht.

Hier werden mir nun vorhandene abwesenheitszeiten angezeigt, ich kann diese löschen oder auch neue anlegen. um letzteres geht es, dank arne der sich sehr viel mühe gegeben hat ist es schon fast perfekt. das einzige problem nur noch ist, dass wenn eine neue abwesenheit angelegt wird, der zeitraum bzw tag überprüft werden soll ob an diesem tag schon eine abwesenheit vorliegt, wenn ja soll durch mitteilung an den user in form einer msgbox auf den fehler aufmerksam gemacht werden und der satz darf auf keinen fall gesichert werden.

Hab jetzt den ganzen Tag herumversucht aber es einfach nicht hinbekommen.

Hoffe ihr könnt mir helfen, vielen dank schonmal...
Donner77 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 08.09.2003, 15:20   #2
jmc
MOF Guru
MOF Guru
Standard

Hi Donner

Zitat:

...Hab im Anhang mal die Ausgangsversion angehangen.
...

und wenn du das nun auch noch wirklich anhängst, dann kann man deine Beschreibung auch nachvollziehen und vielleicht weiterhelfen ...

__________________

Jean (jmc) - mit einem Gruss aus Basel - meine Homepage: www.s-e-m.ch

ich arbeite mit: A97, Office2K, OfficeXP, Office2003, Office2010, Office2013 und SQL Server 2014 (als Backend)
jmc ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 08.09.2003, 15:31   #3
Donner77
Threadstarter Threadstarter
MOF User
MOF User
Standard Sorry :) Hier der Anhang

grad vergessen man wird alt... also hier bitteschön:
Angehängte Dateien
Dateityp: mdb angepasste version.mdb (236,0 KB, 402x aufgerufen)
Donner77 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 08.09.2003, 17:28   #4
Arne Dieckmann
MS-Office-Forum Team MS-Office-Forum Team
Standard

Lege im Modul des Abwesenheitsunterformulares folgende Funktion an (bitte Code kopieren, nicht abschreiben! ):
Code:

Public Function ControlZR() As Boolean

Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
Dim sqlstring As String

sqlstring = "SELECT ID, Start, Ende FROM Daten "
sqlstring = sqlstring & "WHERE "
sqlstring = sqlstring & "(ID=" & Me!ID & " AND Nr<>" & Me!Nr & " AND Start "
sqlstring = sqlstring & "Between " & Format(Me![Start2], "\#yyyy\-mm\-dd\#") & " And " & Format(Me![Ende], "\#yyyy\-mm\-dd\#") & ") OR "
sqlstring = sqlstring & "(ID=" & Me!ID & " And Nr<>" & Me!Nr & " AND Ende "
sqlstring = sqlstring & "Between " & Format(Me![Start2], "\#yyyy\-mm\-dd\#") & " And " & Format(Me![Ende], "\#yyyy\-mm\-dd\#") & ");"

rs.Open sqlstring, CurrentProject.Connection, adOpenKeyset, adLockOptimistic

If Not rs.EOF And Not rs.BOF Then
   ControlZR = True
  Else
   ControlZR = False
End If

rs.Close
Set rs = Nothing

End Function
Anschliessend ändere das Ereignis "Vor Aktualisierung":
Code:

Private Sub Form_BeforeUpdate(Cancel As Integer)

Dim strCName As String
Dim ueberschneid As Boolean

'kontrolliere die Textfelder mit der Marke x
'(s. Eigenschaften/Andere):
strCName = tk_ControlsNull(Me, "x")

If strCName <> "" And Not delOverride Then
  If MsgBox("Die Felder 'Abwesenheitsart', 'Von' und 'Bis' müssen ausgefüllt sein. Datensatz trotzdem speichern?", _
    vbYesNo + vbDefaultButton2 + vbQuestion, "Fehlende Eingaben") = vbNo Then
    DoCmd.GoToControl strCName
    Cancel = True
  End If
 Else
  ueberschneid = ControlZR()
  If ueberschneid Then
    MsgBox "Es gibt Überschneidungen"
    Cancel = True
  End If
End If
 
delOverride = False

End Sub

__________________

Gruß, Arne

Links: FAQGrundlagenRelationale DatenbankenStephen LebansDBWiki
Tools: TabToWebSQL-FormatterCode ConverterRegEx testen
System: Win7 Pro 64bit, Office 20xx, div. MS-SQL Server 20xx, Firefox
Bitte keine Fragen per Mail/PN und als Neuling diese Anleitung (Code-Tags, Anhänge etc.) lesen.
Arne Dieckmann ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 09.09.2003, 08:06   #5
Donner77
Threadstarter Threadstarter
MOF User
MOF User
Frage Guten Morgen

also ersteinmal wieder vielen dank. bei arnes lösung kommt jetzt allerdings folgende fehlermeldung wenn ich einen neuen abwesenheitszeitraum eingetragen habe und ihn dann doch löschen möchte, hat jemand von euch eine lösung?
Angehängte Grafiken
Dateityp: jpg fehlermeldung.jpg (56,8 KB, 655x aufgerufen)
Donner77 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 09.09.2003, 08:18   #6
MRR
MOF Meister
MOF Meister
Standard

Hi Donner77,
könnte es sein, dass das Feld start2 keinen Wert enthält, wenn die Funktion aufgerufen wird?
Dann könnte man vor ueberschneid = ControlZR() noch prüfen:
If Not IsNull(start2) And start2<>"" Then ueberschneid = ControlZR()

???

__________________

Gruß, Matthias
Windows Vista, Office 2007
Freue mich über Feedback jedweder Art...
Bitte keine unaufgefordeten Mails an mich. Fragen gehören ins Forum
MRR ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 09.09.2003, 09:05   #7
Arne Dieckmann
MS-Office-Forum Team MS-Office-Forum Team
Standard

@Matthias: Das könnte nicht nur so sein, das ist wohl auch so (anscheinend sind beide Datumsfelder leer - s. Fehlermeldung).

@Donner77: Sorry, war wohl wieder mal ein bisschen zu schnell gepostet - diese Vorgehensweise hatte ich nicht getestet.


Evtl. ist es so auch noch sicherer:

Code:

Private Sub Form_BeforeUpdate(Cancel As Integer)

Dim strCName As String
Dim ueberschneid As Boolean

'kontrolliere die Textfelder mit der Marke x
'(s. Eigenschaften/Andere):
strCName = tk_ControlsNull(Me, "x")

If strCName <> "" And Not delOverride Then
  If MsgBox("Die Felder 'Abwesenheitsart', 'Von' und 'Bis' müssen ausgefüllt sein. Datensatz trotzdem speichern?", _
    vbYesNo + vbDefaultButton2 + vbQuestion, "Fehlende Eingaben") = vbNo Then
    DoCmd.GoToControl strCName
    Cancel = True
  End If
 Else
  If Not IsNull(Me!Ende) And Not IsNull(Me!Start2) Then ueberschneid = ControlZR()
  If ueberschneid Then
    MsgBox "Es gibt Überschneidungen"
    Cancel = True
  End If
End If
 
delOverride = False

End Sub

__________________

Gruß, Arne

Links: FAQGrundlagenRelationale DatenbankenStephen LebansDBWiki
Tools: TabToWebSQL-FormatterCode ConverterRegEx testen
System: Win7 Pro 64bit, Office 20xx, div. MS-SQL Server 20xx, Firefox
Bitte keine Fragen per Mail/PN und als Neuling diese Anleitung (Code-Tags, Anhänge etc.) lesen.

Geändert von Arne Dieckmann (09.09.2003 um 09:07 Uhr).
Arne Dieckmann ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 09.09.2003, 10:03   #8
Donner77
Threadstarter Threadstarter
MOF User
MOF User
Standard Super

ihr beiden, klappt prima. @arne brauchst dich nicht zu entschuldigen, hast ja wohl schon genug gemacht...

recht herzlichen dank!!!@all

Ach arne was dagegen wenn ich dich in meine icq liste setze?
Donner77 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 09.09.2003, 10:06   #9
Arne Dieckmann
MS-Office-Forum Team MS-Office-Forum Team
Standard

Du kannst mich gerne in Dein ICQ aufnehmen (bitte mit Hinweis auf das Forum). Ich werde Dich dann als ICQ-Kontakt akzeptieren, allerdings leiste ich "Support" nur hier im Forum.

__________________

Gruß, Arne

Links: FAQGrundlagenRelationale DatenbankenStephen LebansDBWiki
Tools: TabToWebSQL-FormatterCode ConverterRegEx testen
System: Win7 Pro 64bit, Office 20xx, div. MS-SQL Server 20xx, Firefox
Bitte keine Fragen per Mail/PN und als Neuling diese Anleitung (Code-Tags, Anhänge etc.) lesen.
Arne Dieckmann ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 09.09.2003, 10:16   #10
Donner77
Threadstarter Threadstarter
MOF User
MOF User
Standard Kein Problem

werd das dann heut nachmittag mal in angriff nehmen :-)

hab da noch eine frage zu meiner (besser eurer:-)) db.

ich hätte gerne afu dem unterformular mitarbeiterübersichtuf ein label (kann man wenigstens grafisch gestalten) das sich dann ja logischerweise automatisch neben jeden einzelnen mitarbeiter setzt.

durch klick auf dieses label soll der ma gelöscht werden sowie all die dazugehörigen abwesenheitseintragungen! Hatte da am wochenende mal herumgetrickst bin aber wie so oft kläglich gescheitert, den ma löscht er mir zwar jedoch nicht die dazugehörigen abwesenheitseinträge!

schon mal wieder vieln dank für eure super hilfe!!!
Donner77 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 09.09.2003, 10:19   #11
Arne Dieckmann
MS-Office-Forum Team MS-Office-Forum Team
Standard

Wenn Du zwischen den Tabellen Beziehungen mit Löschweitergabe erstellst, sollten beim Löschen des Mitarbeiters (auf der "1"-Seite) alle Detaildatensätzen (auf der "n"-Seite) ebenfalls gelöscht werden.
S. dazu Extras/Beziehungen

__________________

Gruß, Arne

Links: FAQGrundlagenRelationale DatenbankenStephen LebansDBWiki
Tools: TabToWebSQL-FormatterCode ConverterRegEx testen
System: Win7 Pro 64bit, Office 20xx, div. MS-SQL Server 20xx, Firefox
Bitte keine Fragen per Mail/PN und als Neuling diese Anleitung (Code-Tags, Anhänge etc.) lesen.
Arne Dieckmann ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 09.09.2003, 11:02   #12
Donner77
Threadstarter Threadstarter
MOF User
MOF User
Standard Versteh ich nicht

Arne, noch mal langsam für die Anfänger unter uns (also mich:-))
Donner77 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 09.09.2003, 11:22   #13
Arne Dieckmann
MS-Office-Forum Team MS-Office-Forum Team
Standard

Also noch einmal:

Gehe im Datenbankfenster auf Extras/Beziehungen. Dort wählst Du zunächst die Tabellen "Mitarbeiter" und "Daten" aus. Anziehend erstellst Du mittels Ziehen der Maus eine Verbindung zwischen Mitarbeiter_ID (in Tabelle "Mitarbeiter") und ID (in Tabelle "Daten") eine Beziehung (s. 1).

Anschliessend wird die Art der Beziehung eingestellt (s. 2 und 3).

Wenn dann eine Fehlermeldung kommt (Beziehung kann nicht erstellt werden, dann musst Du in "Daten" die Datensätze entfernen, die keinem Mitarbeiter zugeordnet werden können). Am besten machst Du das vielleicht schon vorher ...

Über "Ansicht/Tabelle anzeigen" (auch im Screenshot markiert) könnte man noch mehr Beziehungen aufbauen.
Angehängte Grafiken
Dateityp: jpg bez01_101886.jpg (33,9 KB, 559x aufgerufen)

__________________

Gruß, Arne

Links: FAQGrundlagenRelationale DatenbankenStephen LebansDBWiki
Tools: TabToWebSQL-FormatterCode ConverterRegEx testen
System: Win7 Pro 64bit, Office 20xx, div. MS-SQL Server 20xx, Firefox
Bitte keine Fragen per Mail/PN und als Neuling diese Anleitung (Code-Tags, Anhänge etc.) lesen.
Arne Dieckmann ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 09.09.2003, 11:47   #14
Donner77
Threadstarter Threadstarter
MOF User
MOF User
Standard Okay

das habe ich, nur irgendwie habe ich mein code verhauen und der läuft nicht mehr, hab neben jedem datensatz ein button (alles im unterformular) auf dem sich folgender code befindet:

Private Sub loeschen_Click()
Dim db As DAO.Database

If MsgBox("Soll die Auswahl mit all Ihren dazugehörigen Daten wirklich gelöscht werden?", vbYesNo + vbQuestion, "Löschen") = vbYes Then
Set db = CurrentDb()
db.Execute ("Delete * From Mitarbeiter Where Mitarbeiter_ID= " & Me.MitarbeiterÜbersichtUF!ID)
Me.MitarbeiterÜbersichtUF.Form.Requery

End If
End Sub

da kommt fehlermeldung über fehlermeldung, wie lösche ich den markierten datensatz? ich verzweifel echt, krieg auch agr nichts alleine hin, obwohl ich das schon mal hatte
Donner77 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 09.09.2003, 11:54   #15
Arne Dieckmann
MS-Office-Forum Team MS-Office-Forum Team
Standard

Warum machst Du denn die Umweg über die Abfrage? Kopiere doch einfach den Code zum Datensatz löschen aus dem Abwesenheitsunterformular ...

Oder teste mal diesen Code (ohne DAO.Database ...) :
Code:

    If MsgBox("Soll der Mitarbeiter gelöscht werden?", vbYesNo, "Löschen") = vbYes Then
        CurrentDb.Execute ("Delete * From Mitarbeiter Where Mitarbeiter_ID= " & Me.MitarbeiterÜbersichtUF!Mitarbeiter_ID)
        Me.MitarbeiterÜbersichtUF.Requery
    End If
BTW: Es geht doch eigentlich um den Lösch-Button im Mitarbeiter-Übersichtsformular, oder?

__________________

Gruß, Arne

Links: FAQGrundlagenRelationale DatenbankenStephen LebansDBWiki
Tools: TabToWebSQL-FormatterCode ConverterRegEx testen
System: Win7 Pro 64bit, Office 20xx, div. MS-SQL Server 20xx, Firefox
Bitte keine Fragen per Mail/PN und als Neuling diese Anleitung (Code-Tags, Anhänge etc.) lesen.

Geändert von Arne Dieckmann (09.09.2003 um 12:00 Uhr).
Arne Dieckmann 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 12:21 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.