Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Standard anzeige Text in Kombinationsfeld

Begonnen von Frank77, Oktober 03, 2011, 23:09:38

⏪ vorheriges - nächstes ⏩

Frank77

Hallo an alle ich bin neu hier

Ich habe da ein Problem und finde dazu keine Lösung
Ich möchte in einem Formular alle leeren Kombinationsfelder mit <Bitte Auswählen > anzeigen lassen
Bei Feldern die Text enthalten kann man in der Formateigenschaft @;"<Bitte Eingeben>" Eingeben und es wird angezeigt
Wenn aber die erste spalte des Kombinationsfelds die ID speichert also eine zahl geht das nicht

Eine andere Lösung wäre z.b. diese hier [/url]http://www.access-entwicklerbuch.de/2007/index.php?page=buch&bookpage=Kap_05/04_02.html[url]
Was aber bei einem komplexeren SQL-Code für mich zum Problem wird

Also dachte ich man könnte das vielleicht mit einer Cbo Collection per Vba in alle Cbo´s schreiben lassen z.b. mit einem Modul und bei Datensatz Speicherung vorher mit einem anderen Modul wieder löschenlassen damit es keine Fehlermeldung gibt

Ich habe das mal so angefangen
Dim CboColl As New Collection

Private Sub Form_Load()
Set CboColl = New Collection
With CboColl
  .Add Item:= ComboName
  .Add Item:= ComboName
  .Add Item:= ComboName
End With
End Sub


Den Rest bekomme ich nicht so ganz hin da ich die Variablen nicht richtig deklariere

Wenn mir jemand dabei helfen kann wäre ich sehr dankbar den mit den Büchern komme ich da nicht ganz klar

Gruß Frank
Selbstständig = Selbst und Ständig

DF6GL

Hallo und willkommen,


na, ich denke, Dein Lösungsversuch wirft mehr Probleme auf als die Union-Abfrage...   ;)

ZitatWas aber bei einem komplexeren SQL-Code für mich zum Problem wird

Was für ein Problem? Und warum muss der SQL-String für das Kombi komplex sein?


Der "Komplexen" SQL-String könnte ja als gespeicherte Abfrage vorhanden sein, womit der SQl-String für das Kombi etwa so lautet:

Select 0, "<Bitte auswählen>" from qry_gespeicherteAbfrage
Union
Select ID, Textfeld1 from qry_gespeicherteAbfrage


Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

Frank77

Hallo Danke !

hat super geklappt bei mehr spaltigen Kombinationsfeldern habe ich eine abfrage erstellt und in Column 1 verkettet dargestellt und bei eingeschafften Standardwert 0 eingetragen

Bei einem neuen Datensatz  wird jetzt in allen Komboboxen  < Bitte Auswählen > angezeigt !
Das Problem jetzt ist da nicht alle Felder Pflicht sind und es beim speichern zum Fehler kommt da die 0 ein nicht zugelassener wert ist
und ich habe  in meinem Formular ein Listenfeld  dem ich durch die Datensätze navigieren kann
kommt es dabei zum gleichen Fehler
Also  müsste ich per Vba beim Speichen ober navigieren die 0 Austragen lassen BeforeUpdate
Beim navigieren aber wieder eintragen damit die Kosmetik erfüllt ist AfterUpdate

Ich dachte mir daher das das ja so stattfinden könnte aber wie gesagt ich bin noch anfänger

Beim laden des Formulars eine Kollektion der komboboxen erstellen

Dim controlColl As New Collection
Dim contr As Object
Dim i As Integer

With controlColl
    .Add Item:=MitEinsatzIDRef
  .Add Item:=mitZbIDRef
  .Add Item:=MitGeschIDRef
  .Add Item:=MitPersAnredeIDRef
  .Add Item:=MtiKonfIDRef
  .Add Item:=MitSchuhIDRef
  .Add Item:=MitLohnVerhKatIDRef
  .Add Item:=MitLohnStIDRef
  .Add Item:=MitFamIDRef
  .Add Item:=MitAusZahlIDRef
  .Add Item:=CbomitPlzIDRef
  .Add Item:=CboMitBlzBankIDRef
End With


Dann einen sub für die Ausführung schreiben mit den Inhalt einmal fürs austragen und einmal fürs eintragen

Private Sub SetAus(ctrl As Control)

  With ctrl
  If IsNull Then Item.Data (0)
  If colr = "weiss" Then .BackColor = RGB(252, 230, 212)
 
  If Nz(contr, 0) Then .Value = ""
  If colr = RGB(252, 230, 212) Then .BackColor = weiss
End With

End Sub


Das ganze könnte man ja dann hiermit aufrufen

Private Sub Aus()

For Each contr In controlColl
  Call SetAus(controlColl)
Next contr

End Sub


Ob das so richtig ist weis ich ja auch nicht
Ich hoffe das mir jemand bei der weiter Entwicklung helfen kann

Gruß Frank
Selbstständig = Selbst und Ständig

DF6GL

Hallo,

lass doch mal diese Collection weg...


Das ist wie durch die Brust ins Auge treffen...


Prüf lieber im Form_BeforeUpdate-Ereignis nach, ob der Kombifeldinhalt 0 ist und reagiere entsprechend
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

Frank77

Hi !
Danke für den tipp der versuch mit der Connection  ist echt anstrengend  aber egal man muss ja mal testen  ;D

So funktioniert alles recht gut wenn ich aber über den Button auswählen eintragen lasse oder es von Hand  auswählt und dann im Listenfeld navigiert passiert nach ein paar klick der Fehler sie können dem object keinen wert zu weisen 
Und nach weiteren Klicks Fehler 3020
(der Button ist nur Simulation das sollte eigentlich beim navigieren von alleine passieren )

weis noch nicht wie ich den fehler beheben so  ???

Gruss Frank

[Anhang gelöscht durch Administrator]
Selbstständig = Selbst und Ständig

DF6GL

Hallo,


poste bitte Deinen (kompletten) akt. Code!

Meine Glaskugeln sind allesamt beim TÜV.

Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

Frank77

Hi!
Ich dachte das das anfügen des Beispiels ober ok sei
So habe ich den Code im Formular hinterlegt


Option Compare Database

Private Sub Befehl32_Click()
With Form_haupt
If IsNull(Me.Cbo1) = True Then Me!Cbo1 = Me!Cbo1.ItemData(0)
If IsNull(Me.Cbo2) = True Then Me!Cbo2 = Me!Cbo1.ItemData(0)
If IsNull(Me.Cbo3) = True Then Me!Cbo3 = Me!Cbo1.ItemData(0)
End With
End Sub

Private Sub Befehl35_Click()
On Error GoTo Err_Befehl35_Click


   DoCmd.GoToRecord , , acNext

Exit_Befehl35_Click:
   Exit Sub

Err_Befehl35_Click:
   If Err.Number = 2105 Then
       DoCmd.GoToRecord , , acFirst
       Resume Exit_Befehl35_Click
   End If
   MsgBox Err.Description
   Resume Exit_Befehl35_Click
End Sub

Private Sub Befehl36_Click()
On Error GoTo Err_Befehl36_Click


   DoCmd.GoToRecord , , acPrevious

Exit_Befehl36_Click:
   Exit Sub

Err_Befehl36_Click:
   If Err.Number = 2105 Then
       DoCmd.GoToRecord , , acLast
       Resume Exit_Befehl36_Click
   End If
   MsgBox Err.Description
   Resume Exit_Befehl36_Click
End Sub

Private Sub Liste29_AfterUpdate()
DoCmd.SearchForRecord , "", acFirst, "[ID]=" & Str(Nz(Screen.ActiveControl, 0))
End Sub

Private Sub Form_BeforeUpdate(Cancel As Integer)
With Form_haupt
If Me!Cbo1 = (0) Then Me!Cbo1.Value = ""
If Me!Cbo2 = (0) Then Me!Cbo2.Value = ""
If Me!Cbo3 = (0) Then Me!Cbo3.Value = ""
End With
End Sub

Private Sub Form_Current()
Me!Liste29 = Me!Liste29.ItemData(Me.CurrentRecord - 1)
End Sub


Wen das formal geladen wird dann soll in allen Komboboxen das <Bitte Auswählen> drin stehen
Also der erzeugte Datensatz 0 der dann beim zum nächsten Datensatz gehen gelöscht werden muss
Damit es keine Fehler beim  speichern der referenziellen Integrität gibt das geht ja auch aber wen ich das dann zusätzlich über das Listenfeld navigiere da macht mir "glaub ich" das Recordset einen stich durch die Rechnung und sagt es kann kein wert zugewisen werden .Value = ""
Gruß frank
Selbstständig = Selbst und Ständig

DF6GL

Hallo,

Option Compare Database

Private Sub Befehl32_Click()   'gescheite Benamsung verwenden!  Vermutlich ist das der "Reset-Kopf" für das Rückstellen der Kombis auf "auswählen"
With Form_haupt
If IsNull(Me!Cbo1) = True Then Me!Cbo1 = 0  'Me!Cbo1.ItemData(0)
If IsNull(Me!Cbo2) = True Then Me!Cbo2 = 0  'Me!Cbo1.ItemData(0)
If IsNull(Me!Cbo3) = True Then Me!Cbo3 = 0  'Me!Cbo1.ItemData(0)
End With
End Sub
 
' Beim Laden des Forms Kombi "resetten"
Sub Form_Load()
Befehl32_Click
End Sub

 
 

Private Sub Befehl35_Click()
On Error GoTo Err_Befehl35_Click


    DoCmd.GoToRecord , , acNext

Exit_Befehl35_Click:
    Exit Sub

Err_Befehl35_Click:
    If Err.Number = 2105 Then
        DoCmd.GoToRecord , , acFirst
        Resume Exit_Befehl35_Click
    End If
    MsgBox Err.Description
    Resume Exit_Befehl35_Click
End Sub

Private Sub Befehl36_Click()
On Error GoTo Err_Befehl36_Click


    DoCmd.GoToRecord , , acPrevious

Exit_Befehl36_Click:
    Exit Sub

Err_Befehl36_Click:
    If Err.Number = 2105 Then
        DoCmd.GoToRecord , , acLast
        Resume Exit_Befehl36_Click
    End If
    MsgBox Err.Description
    Resume Exit_Befehl36_Click
End Sub




Private Sub Liste29_AfterUpdate()
DoCmd.SearchForRecord , "", acFirst, "[ID]=" & Str(Nz(Screen.ActiveControl, 0))
Me.Recordset.Findfirst "[ID]=" & nz(Me!liste29,0)
End Sub
   
 

Private Sub Form_BeforeUpdate(Cancel As Integer)
With Form_haupt
If Me!Cbo1 = 0 or  Me!Cbo2 = 0 or Me!Cbo3 = 0 Then Cancel =true
End With
End Sub
 


Private Sub Form_Current()
Me!Liste29 = Me!Liste29.ItemData(Me.CurrentRecord - 1)
Me!Liste29.Requery
Me!Liste29 = nz(Me!ID,0)
End Sub
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

Frank77

Hallo danke für die Überarbeitung  aber leider endstehen ständig Laufzeit Fehler
Ich hatte mir das so vorgestellt in meiner Umsetzung
-   Ich öffne das Formular
-   In allen Feldern   steht dann bitte auswählen
-   Wenn dann über den Button navigiert wird steht in dachsten Datensatz wieder in den Feldern das auswählen usw.
-   Wen man aber über das Listenfeld und nicht über den Button vor oder zurück navigiert dann sollte das gleiche mit den Feldern passieren

Der Button der das Auswählen einfügt wäre eigentlich nicht vorhanden   aber das könnte dann wie du es bei form_load eingetragen als sub so verwendet werden und das austragen auch und es dann bei den entsprechenden Ereignissen ansprechen
Wenn aber das Listenfeld dazwischen kommt zerschießt es das Recordset wenn ich das richtig interpretiert habe da dann der Fehler  auftritt

Sie haben ohne einen Aufruf von 'AddNew' oder 'Edit' versucht, 'Update' oder 'CancelUpdate' aufzurufen oder ein Feld in einem Recordset aufzurufen (Fehler 3020)

Wen ich das Listenfeld weglassen würde wäre das kein Thema das um zusetzen aber das geht leider nicht weil da die Übersicht fehlt die ich brauche
In dem angehängten Beispiel habe ich den Code umgesetzt

Gruß Ffrank

[Anhang gelöscht durch Administrator]
Selbstständig = Selbst und Ständig

DF6GL

Hallo,

versteh Deine Einwände nicht...

Welches Recordset?

"Wenn dann über den Button navigiert wird steht in dachsten Datensatz wieder in den Feldern das auswählen usw."

bei mir nicht... "Auswählen" steht nur bei einem neuen Datensatz


"aber das könnte dann wie du es bei form_load eingetragen "

eigentlich Quatsch.  Die Kombis sind doch gebunden und zeigen die abgespeicherten Werte an. Wenn das Form geladen wird, steht es auf dem ersten Datensatz und die Kombis zeigen die Werte der entspr. Felder an. Allenfalls wenn die (noch) NULL wären, würde "auswählen" in den Kombis stehen. Damit immer , auch bei Datensätzen "mittendrin" bei NULL das "Auswählen" steht, dann wäre statt Load das Current-Ereignis besser geeignet.

btw: wirf das Makro für Button "Neu" raus und ersetz es durch eine Ereignisprozedur



"...'Update' oder 'CancelUpdate' aufzurufen ..."

stell ich nicht fest.


"Wen ich das Listenfeld weglassen würde ..."

brauchst Du nicht.  Das Listenfeld funktioniert bei mir einwandfrei (Anzeige und Formular filtern, bzw. positionieren.)



Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

Frank77

Hi
Wenn ich die Datenbank öffne zeigt sie den ersten Datensatz in Listenfeld an
Ich klicke auf den 2. Dan erscheint der Laufzeit Fehler 3426 und der Debugger
Zeigt diese Zeile

Me.Recordset.FindFirst "[ID]=" & Nz(Me!Liste29, 0)

Beim Klicken auf den nächsten das gleiche und ich muss die Datenbank schlissen

Ich öffne sie wieder und klicke als erster auf nächster und es passiert nichts
Dann auf vorheriger und es erscheint Laufzeit Fehler 2105
Der Debugger zeigt diese Zeile

DoCmd.GoToRecord , , acLast

Der Neu Button sagt darauf hin sie können nicht zum angegebenen Datensatz springen

Könntest du vielleicht eine  bearbeitete Version posten

Gruß Frank
Selbstständig = Selbst und Ständig

DF6GL

#11
Hallo ,
anbei

[Anhang gelöscht durch Administrator]
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

Frank77

Selbstständig = Selbst und Ständig

DF6GL

Hallo,

habe eine ZIP mit geringerer Kompression angehängt..
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

Frank77

#14
Hallo!
Hat ein bisschen gedauert bis ich das was ich meinte umgesetzt habe. und das nur aus zufall da ich die zeile Me!Cbo1 = 0 or  Me!Cbo2 = 0 or Me!Cbo3 = 0 Then Cancel =true
in meiner hauptdatenbank anderweitig umsetzen wollte. ich bin  im netz auf das rot markierte gestoßen und habe diese zeilen in die funktion mit eingefügt
  If Me!Cbo1 = 0 Then Me!Cbo1.Value = ""
   If Me!Cbo2 = 0 Then Me!Cbo2.Value = ""
   If Me!Cbo3 = 0 Then Me!Cbo3.Value = ""

Und Plötzlich hat es funktioniert aber nur bedingt, auch wenn die grün markierte zeile
'DoCmd.GoToRecord , , acFirst aktiviert wird
Es sei denn man ändert den neuen daten satz nicht
Denn da liegt der fehler auch wenn die zeile 'DoCmd.GoToRecord , , acFirst nicht aktiv ist
verändert man am neuen datensatz was und macht es aber wieder rückgangig also das es aussieht als wäre es wieder der neue datensatz kommt das recordset durcheinander und man kann nur noch mit Exit ohne Speichern aus dem formular aussteigen

Meine frage wäre: könnte man da nicht das Cancel = true nur auf den neuen datensatz legen
Denn durch das eintragen von <Auswählen> beim anzeigen eines vorhandenen datensatzes ist ja immer das schreiben im linken balken zu erkennen

Das zweite das ich eingebaut habe ist das Farbe bei Focus Ändern, die zeilen habe ich blau markiert  

Meine frage dazu ist: kann man das so einbauen das die kombinationsfelder  bei  0 als <Auswählen>
Farbig sind  und bei einem anderen datensatz wieder normal ?
Ich bekomme die farbe geändert aber micht mehr zurück auf weiss egal bei welchem ereignis
Das sah dann so aus
If Me!Cbo1 = 0 Then Call Farbe_Focus_Ein(Screen.ActiveControl.Name)
If Me!Cbo1 >= 0 Then Call Farbe_Focus_Aus(Screen.ActiveControl.Name


Das Beispiel hab ich angehängt aber der Speicher buton ist eigentlich nur zur kontrolle mit eingefügt


Option Compare Database
Public bolSchliessenErlaubt As Boolean
Const normalColor As Long = 16777215
Const activateColor As Long = 15849926


Private Sub Befehl1_Click() 'Exit mit Speichern
   If fncPruefen = True Then
       bolSchliessenErlaubt = True
       DoCmd.Close acForm, "Haupt"
   End If
End Sub


Private Sub Ausw_Einfuegen()
If IsNull(Me.Cbo1) Then Me!Cbo1 = 0
If IsNull(Me.Cbo2) Then Me!Cbo2 = 0
If IsNull(Me.Cbo3) Then Me!Cbo3 = 0
End Sub

Private Sub Befehl33_Click()
DoCmd.GoToRecord , , acNewRec
End Sub

Private Sub Befehl35_Click()
On Error GoTo Err_Befehl35_Click


   DoCmd.GoToRecord , , acNext

Exit_Befehl35_Click:
   Exit Sub

Err_Befehl35_Click:
   If Err.Number = 2105 Then
      'DoCmd.GoToRecord , , acFirst
       Resume Exit_Befehl35_Click
   End If
   MsgBox Err.Description
   Resume Exit_Befehl35_Click
End Sub

Private Sub Befehl36_Click()
On Error GoTo Err_Befehl36_Click


   DoCmd.GoToRecord , , acPrevious

Exit_Befehl36_Click:
   Exit Sub

Err_Befehl36_Click:
   If Err.Number = 2105 Then
      'DoCmd.GoToRecord , , acLast
       Resume Exit_Befehl36_Click
   End If
   MsgBox Err.Description
   Resume Exit_Befehl36_Click
End Sub

Private Sub Befehl39_Click()
DoCmd.RunCommand acCmdSaveRecord
End Sub

Private Sub Befehl5_Click()
Me.Undo
   bolSchliessenErlaubt = True
   DoCmd.Close acForm, "Haupt"
End Sub


Private Sub Cbo1_GotFocus()
Me.Cbo1.Dropdown
End Sub

Private Sub Cbo2_GotFocus()
Me.Cbo2.Dropdown
End Sub

Private Sub Cbo3_GotFocus()
Me.Cbo3.Dropdown
End Sub

Private Sub Form_Unload(Cancel As Integer)
If bolSchliessenErlaubt = False Then
       MsgBox "Das Formular kann nur über die Buttons geschlossen werden"
       Cancel = True
   End If
End Sub


Private Sub Liste29_AfterUpdate()
On Error Resume Next
Me.Recordset.FindFirst "[ID]=" & Nz(Me!Liste29, 0)
Me!Liste29 = Nz(Me!id, 0)
End Sub

Private Sub Form_BeforeUpdate(Cancel As Integer)
Cancel = Not fncPruefen

End Sub

Private Sub Form_Current()
Me!Liste29.Requery
Me!Liste29 = Nz(Me!id, 0)
Ausw_Einfuegen
End Sub

Public Function fncPruefen()
   fncPruefen = True
   If IsNull(Me!Vorname) Then
       MsgBox "Bitte Tragen sie einen Vornamen ein"
       fncPruefen = False
   End If
   If IsNull(Me!Nachname) Then
       MsgBox "Bitte Tragen sie einen Nachnamen ein"
       fncPruefen = False
   End If
   If Me!Cbo1 = 0 Then Me!Cbo1.Value = ""
   If Me!Cbo2 = 0 Then Me!Cbo2.Value = ""
   If Me!Cbo3 = 0 Then Me!Cbo3.Value = ""
End Function


Private Sub Farbe_Focus_Ein(stnFeld As String)
Me.Controls(stnFeld).BackColor = activateColor
End Sub

Private Sub Farbe_Focus_Aus(stnFeld As String)
Me.Controls(stnFeld).BackColor = normalColor
End Sub

Private Sub Nachname_GotFocus()
Call Farbe_Focus_Ein(Screen.ActiveControl.Name)
End Sub

Private Sub Nachname_LostFocus()
Call Farbe_Focus_Aus(Screen.ActiveControl.Name)
End Sub

Private Sub Vorname_GotFocus()
Call Farbe_Focus_Ein(Screen.ActiveControl.Name)
End Sub

Private Sub Vorname_LostFocus()
Call Farbe_Focus_Aus(Screen.ActiveControl.Name)
End Sub


Gruß Frank


[Anhang gelöscht durch Administrator]
Selbstständig = Selbst und Ständig