Neuigkeiten:

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

Mobiles Hauptmenü

Meldung Combobox

Begonnen von boehnli01, Februar 08, 2012, 22:10:47

⏪ vorheriges - nächstes ⏩

boehnli01

Hallo zusammen - ich habe eine Combobox die Kundennummern behinhaltet und die Adresse des gewählten Kunden zeigt. Falls noch keine Kundennummer & Adresse vorhanden ist möchte ich über vba eine Fehlermeldung einbauen die sagt "Keine Kundendetails vorhanden". Wie sollte dieser code aussehen.

Danke für Eure Hilfe.

Gruss Cédric

Beaker s.a.

Hallo Cédric,
Schau mal, ob Dir dieses weiterhilft:
http://www.donkarl.com?FAQ4.13
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

boehnli01

Danke für den Tip Ekkehard, aber es funktioniert noch nicht ganz. Habe die Prozedur angepasst, aber nun fragt er mich jedes mal "Der Kunde ist neu. Möchten Sie ihn anlegen", auch wenn der Kunde bereits existiert.


Private Sub Combo24_AfterUpdate()
   
    ' Find the record that matches the control.
    Dim rs As Object

    Set rs = Me.Recordset.Clone
    rs.FindFirst "[FixVendor] = '" & Me![Combo24] & "'"
    If Not rs.EOF Then Me.Bookmark = rs.Bookmark
   

If MsgBox("Der Kunde ist neu. Möchten Sie ihn anlegen?", vbYesNo) = vbYes Then
  Response = acDataErrContinue
  DoCmd.OpenForm "frm_vendormailing_new", , , , acFormAdd
  Forms!frm_vendormailing_new!NVendor = NewData
Else  'z.B. bei Tippfehler
  Response = acDataErrContinue
  Me!Combo24.Undo
End If


End Sub

bahasu

N'abend,

der Code gehört nicht nach after update sondern nach NotInList

Harald
Servus

MzKlMu

Hallo,
NotInList nutzt auch nichts, dann funktioniert das Suchen nicht. Genau genommen sollte man den Code auf 2 Ereignisse verteilen. Den oberen Teil (das Suchen) lassen (bis If Not ...).
Den unteren Teil (ab If MsgBox ,,,) nach NotInList verschieben.
Gruß Klaus

boehnli01

Leider funktioniert es immer noch nicht, bzw passiert gar nichts wenn ich eine Kundennumer reinschreibe die nicht in der Combobox  existiert. Ausser das er den Kunden anzeigt der am nächsten bei dieser Nummer steht. Habe übrigens beide Varianten (MzKlMu & Bahasu) probiert. Der Code sind nun folgendermassen aus:

Private Sub Combo24_AfterUpdate()
' Find the record that matches the control.
    Dim rs As Object

    Set rs = Me.Recordset.Clone
    rs.FindFirst "[FixVendor] = '" & Me![Combo24] & "'"
    If Not rs.EOF Then Me.Bookmark = rs.Bookmark
   

End Sub


Private Sub Combo24_NotInList(NewData As String, Response As Integer)

If MsgBox("Der Kunde ist neu. Möchten Sie ihn anlegen?", vbYesNo) = vbYes Then

  Response = acDataErrContinue
  DoCmd.OpenForm "frm_vendormailing_new", , , , acFormAdd
  Forms!frm_vendormailing_new!NVendor = NewData
Else  'z.B. bei Tippfehler
  Response = acDataErrContinue
  Me!Combo24.Undo
End If

End Sub

daolix

ZitatLeider funktioniert es immer noch nicht, bzw passiert gar nichts wenn ich eine Kundennumer reinschreibe die nicht in der Combobox  existiert.
Ich interpretiere das mal so das wenn du eine nicht existierende Nummer eingibst erscheint nicht MsgBox("Der Kunde ist neu. Möchten Sie ihn anlegen?", vbYesNo), sprich die Sub NotInList wird nicht ausgeführt. Das passiert z.b. wenn die Eigenschaft "Nur Listeneinträge" der Combobox auf nein steht. Umschalten auf Ja könnte ggf helfen.

bahasu

Hallo,

vielleicht hilft Dir das Beispiel im Anhang weiter.

Harald

[Anhang gelöscht durch Administrator]
Servus

boehnli01

Wunderbar. Hat funktioniert. Hat am "Ja" im nur Listeneinträge gelegen. Vielen Dank.

Beaker s.a.

Hallo Cédric,
Zitat aus gepostetem Link:
Zitat- setze die Eigenschaft Nur Listeneinträge auf Ja und
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)