Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Meldung anzeigen.
zurück: VBA/ADO Zugriff auf verteilte Datenbanken weiter: Datensätze aus 2 Listenfelder hinzufügen Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Gast



Verfasst am:
22. Jan 2009, 22:03
Rufname:

Meldung anzeigen. - Meldung anzeigen.

Nach oben
       Version: Office 2003

Hallo brauche einen Code.
In meinem Formular (Datenherkunft: tblProdukte) gibt es unter anderem den Feldnamen: Produktnummer. Diese Produktnummer wird im Formular eingegeben und darf öffters vorkommen.
Ich möchte jetzt eine Meldung angezeigt bekommen, wenn die Produktnummer eingegeben ist und diese Produktnummer bereits vorhanden ist.
MsgBox "Info! Produkt bereits vorhanden. "
Danke für eure Hilfe

Gruß
KlausMz
Moderator Access


Verfasst am:
22. Jan 2009, 23:32
Rufname:
Wohnort: Irgendwo in der Pfalz


AW: Meldung anzeigen. - AW: Meldung anzeigen.

Nach oben
       Version: Office 2003

Hallo,
versuche es mal so:
Code:
Private Sub Formularfeld_BeforeUpdate(Cancel As Integer)
    If DCount("*", "tblProdukte", _
              "Produktnummer= " & Nz(Me!Formularfeld, 0)) > 0 Then
        If MsgBox("Vorhanden trotzdem speichern?", vbYesNo) = vbNo Then
            Cancel = True
        End If
    End If
End Sub
Mit Ja bei der MsgBox wird nichts getan, das Feld wird gespeichert. Mit Nein kommt Else zum Zug und mit Cancel=True wird das Aktualiseren abgebrochen, der Cursor bleibt im Feld.

Falls die Produktnummer als Text (Datentyp) angelegt ist, die Zeile mit dem DCount wie folgt ändern:
Code:
    If DCount("*", "tblProdukte", _
              "Produktnummer= '" & Me!Formularfeld & "'") > 0 Then

Kleine Anmerkung:
Wenn in der Tabelle "tblProdukte" die Produktnummer mehrfach vorkommen kann, ist was nicht ganz stimmig. Eine Produkttabelle soltte nur jeweis einen eindeutigen Datensatz enthalten. Also jede Produktnummer (jedes Produkt) nur ein mal. Eine Produktnummer müsste sogar indiziert sein mit "Ohne Duplikate". Warum lässt Du mehrfach die gleiche Produktnummer zu?

_________________
Gruß
Klaus . . . . . Feedback wäre wünschenswert.
Ich möchte bitte keine unaufgeforderten PN. Fragen bitte im Forum.
Gast



Verfasst am:
23. Jan 2009, 02:49
Rufname:

AW: Meldung anzeigen. - AW: Meldung anzeigen.

Nach oben
       Version: Office 2003

Gast am 22. Jan 2009 um 23:10 hat folgendes geschrieben:
Ja das stimmt, dann wäre alles einfacher und korrekter aber was ich noch nicht gesagt habe ist, dass diese Produkte in verschiedenen Lagerorten gelagert werden, und es dann möglich ist, dass ein Produkt mit der selben Produktnummer in zwei verschiedenen Lagerorten ist. Weil z.B. ein Schrank für ein entsprechendes Produkt nicht ausreicht und deswegen dann auf z.B. Schrank 11 und Schrank 12 aufgeteilt wird. Hab die ID als Primärschlüssel.
Ich weis keine optimale Lösung, aber mit deinem Code ist es für die Benutzer eine gute Lösung.
Danke für deine schnelle Hilfe.
Echt Klasse

Gruß

Hallo,
für was steht 'Formularfeld' in deinem Code ?? Muss ich deinen Code genau so eingeben?
oder ist das so korrekt? kannst Du mir noch mal helfen? Danke
Code:
Private Sub Form_BeforeUpdate(Cancel As Integer)
    If DCount("*", "tblProdukte", _
              "Produktnummer= " & Me!Produktnummer) > 0 Then
        If MsgBox("Produkt bereits vorhanden, trotzdem speichern?", _
                  vbYesNo) = vbNo Then
            Cancel = True
         End If
    End If
End Sub
Willi Wipp
Moderator


Verfasst am:
23. Jan 2009, 03:19
Rufname:
Wohnort: Raum Wiesbaden

Re: Meldung anzeigen. - Re: Meldung anzeigen.

Nach oben
       Version: Office 2003

Hi Gast,

damit ist das Formular-Steuerelement gemeint in dem die Produktnummer eingegeben wird.
Habe den Code von Klaus bei einer Zahl noch mit der Funktion Nz erweitert.
Ansonsten teste es halt einfach mal Wink

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
Gast



Verfasst am:
23. Jan 2009, 11:32
Rufname:


AW: Meldung anzeigen. - AW: Meldung anzeigen.

Nach oben
       Version: Office 2003

Hallo
funktioniert soweit gut bei der Eingabe von neuen Produkten, nur die MsgBox kommt auch bei allen bestehenden Datensätze, wenn diese geändert und abgespeichert werden.
Möchte aber nur die Meldung bei Produkten die mehr als einmal vorkommen.
Danke für die Hilfe
KlausMz
Moderator Access


Verfasst am:
23. Jan 2009, 17:25
Rufname:
Wohnort: Irgendwo in der Pfalz

AW: Meldung anzeigen. - AW: Meldung anzeigen.

Nach oben
       Version: Office 2003

Hallo,
das versteh ich jetzt nicht, es ist doch der Sinn der Sache dass geprüft wird ob da bereits eine Produktnummer besteht, auch bei Änderungen.
Zitat:
Möchte aber nur die Meldung bei Produkten die mehr als einmal vorkommen.
Genau so ist es doch im Moment.
_________________
Gruß
Klaus . . . . . Feedback wäre wünschenswert.
Ich möchte bitte keine unaufgeforderten PN. Fragen bitte im Forum.
Gast



Verfasst am:
23. Jan 2009, 18:53
Rufname:

AW: Meldung anzeigen. - AW: Meldung anzeigen.

Nach oben
       Version: Office 2003

Hallo
Beim neu Eingeben von Datensätzen funktioniert es optimal. Die Meldung kommt dann, wenn die gleiche Produktnummer bereits schon vorhanden ist.
Ändert man aber bei einem schon vorhandenen Datensatz , der nur einmal vorhanden ist, irgend etwas, kommt beim speichern auch die Meldung.
Und das ist eigentlich nicht erwünscht, denn der Datensatz mit dieser Produktnummer ist nur einmal vorhanden und es wurde lediglich irgend ein Feldname geändert.
Ich denke das bekommt ihr noch hin
Danke
Gruß
KlausMz
Moderator Access


Verfasst am:
23. Jan 2009, 20:27
Rufname:
Wohnort: Irgendwo in der Pfalz

AW: Meldung anzeigen. - AW: Meldung anzeigen.

Nach oben
       Version: Office 2003

Hallo,
Du hast ja auch das falsche Ereiegnis, nicht das Formularereignis "Vor Aktualisierung" sondern das Feldereignis "Vor Aktualisierung", da ist ein Unterschied. So hatte ich es auch vorgesehen.

Code:
Private Sub Formularfeld_BeforeUpdate(Cancel As Integer)
    If DCount("*", "tblProdukte", _
              "Produktnummer= " & Nz(Me!Formularfeld, 0)) > 0 Then
        If MsgBox("Vorhanden trotzdem speichern?", vbYesNo) = vbNo Then
            Cancel = True
        End If
    End If
End Sub


Für Formularfeld musst Du den Namen verwenden, den das Feld mit der produktnummer in Deinem Formular hat.

_________________
Gruß
Klaus . . . . . Feedback wäre wünschenswert.
Ich möchte bitte keine unaufgeforderten PN. Fragen bitte im Forum.
Gast



Verfasst am:
23. Jan 2009, 21:13
Rufname:

AW: Meldung anzeigen. - AW: Meldung anzeigen.

Nach oben
       Version: Office 2003

Hallo
Ja genau das ist es. Jetzt gehts optimal.
Sorry, war mein Fehler.
Danke nochmal für eure Hilfe.

Gruß
Willi Wipp
Moderator


Verfasst am:
24. Jan 2009, 01:31
Rufname:
Wohnort: Raum Wiesbaden

Re: Meldung anzeigen. - Re: Meldung anzeigen.

Nach oben
       Version: Office 2003

@KlausMz, entschuldige das ich wiederspreche Wink

Hi Gast,

ich wuerde beim Formular-Ereignis bleiben.
Dann muss man allerdings zusaetzlich pruefen ob der Primaerschluessel (Autowert) nicht identisch ist!
Code:
Private Sub Form_BeforeUpdate(Cancel As Integer)
    If DCount("*", "tblProdukte", _
              "Produktnummer= " & Nz(Me!Produktnummer, 0) & " " & _
          "AND DeineID <>" & Nz(Me!DeineID, 0)) > 0 Then
        If MsgBox("Produkt bereits vorhanden, trotzdem speichern?", _
                  vbYesNo) = vbNo Then
            Cancel = True
         End If
    End If
End Sub

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
KlausMz
Moderator Access


Verfasst am:
24. Jan 2009, 01:44
Rufname:
Wohnort: Irgendwo in der Pfalz

AW: Meldung anzeigen. - AW: Meldung anzeigen.

Nach oben
       Version: Office 2003

@Willi Wipp,
Zitat:
entschuldige das ich wiederspreche

Kein Problem, wir sind ja in einem Forum Razz

_________________
Gruß
Klaus . . . . . Feedback wäre wünschenswert.
Ich möchte bitte keine unaufgeforderten PN. Fragen bitte im Forum.
Gast



Verfasst am:
24. Jan 2009, 19:46
Rufname:


AW: Meldung anzeigen. - AW: Meldung anzeigen.

Nach oben
       Version: Office 2003

Hallo,
also ich muss sagen, Ihr seit spitze.
Dank eurer Hilfe, hab ich es jetzt genau so, wie ich wollte und noch viel dazu gelernt.
Gruß
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: tageswert anzeigen 3 heirnele 588 26. Jan 2006, 12:35
Willi Wipp tageswert anzeigen
Keine neuen Beiträge Access Tabellen & Abfragen: Aktuellster Datumswert anzeigen+dazugehörige Daten (AXP) 1 cubus 715 27. Okt 2005, 10:33
cubus Aktuellster Datumswert anzeigen+dazugehörige Daten (AXP)
Keine neuen Beiträge Access Tabellen & Abfragen: Keine Datensätze aber dennoch Wert 0 anzeigen 1 Dracula 714 25. Okt 2005, 14:02
stpimi Keine Datensätze aber dennoch Wert 0 anzeigen
Keine neuen Beiträge Access Tabellen & Abfragen: nur einmal anzeigen 4 bohne 674 21. Okt 2005, 16:22
bohne nur einmal anzeigen
Keine neuen Beiträge Access Tabellen & Abfragen: Berechnung im Listenfeld anzeigen? 3 Schnoop 804 20. Okt 2005, 08:24
Timbo Berechnung im Listenfeld anzeigen?
Keine neuen Beiträge Access Tabellen & Abfragen: Abos die ablaufen Anzeigen lassen ? 1 reneschaub 477 04. Okt 2005, 18:56
jens05 Abos die ablaufen Anzeigen lassen ?
Keine neuen Beiträge Access Tabellen & Abfragen: Abfrage in Formular anzeigen, und dann sortieren 1 christian_10 597 22. Aug 2005, 13:28
lothi Abfrage in Formular anzeigen, und dann sortieren
Keine neuen Beiträge Access Tabellen & Abfragen: alle Tabellen anzeigen? 1 HoriZZon 816 01. Aug 2005, 16:14
Loomex alle Tabellen anzeigen?
Keine neuen Beiträge Access Tabellen & Abfragen: gruppieren-beide texteintraege anzeigen 7 paty 1196 14. Jun 2005, 02:54
tobes gruppieren-beide texteintraege anzeigen
Keine neuen Beiträge Access Tabellen & Abfragen: Access 2002 - Primärschlüssel mit Gültgkeitsregel/Meldung ? 6 Icelight 1004 06. Jun 2005, 10:35
Willi Wipp Access 2002 - Primärschlüssel mit Gültgkeitsregel/Meldung ?
Keine neuen Beiträge Access Tabellen & Abfragen: Alle möglichen Kombinationen anzeigen 5 BigBonsai 5609 18. Apr 2005, 12:12
BigBonsai Alle möglichen Kombinationen anzeigen
Keine neuen Beiträge Access Tabellen & Abfragen: alle Kunden mit letzter Rechnung anzeigen 2 Dalmatinchen 1109 08. März 2005, 20:58
Dalmatinchen alle Kunden mit letzter Rechnung anzeigen
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Web Editor Forum