Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
688to692
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
688to692
688to692
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Prüfen wenn Wert vorhanden
04.11.2005 17:57:01
Gernot
Hallo!
Ich habe eine Adressenliste. Ich starte ein Formular in dem ich die den Nachnahmen eingebe. Dann klicke ich auf den Commandbutton "Suche" und starte die Suche nach den Namen und lasse mir die Ergebnisse in einer Listbox anzeigen und klicke mir den entsprechenden Wert an und diese Werte werden in die Userform-Felder eingetragen. Wenn der Name nicht vorhanden ist, dann kommt eine MsgBox und das Feld der Userform wird wieder aktiviert. Das Bedeutet Neueingabe einer Adresse.
Was immer neu eingegeben wird, sind die Artikeldaten. Wenn ich dann auf Eintragen klicke, werden die Adress-Daten in die Tabelle "Adressen" eingetragen und die Artikel in die Tabelle "Artikel" eingetragen.
Jetzt kommt das Problem:
Ich möchte verhindern, wenn eine Adresse schon eingetragen ist, dass Sie nochmals in die Liste eingetragen wird und dass in der Zeile das Feld "Anzahl Ankäufe" um den Wert 1 addiert wird.
Ich habe da im Augenblick eine Denkblockade und weiss nicht mehr weiter.
Anbei der Code. Wie muss ich den Code abändern?
-----------------------snip

Private Sub roCommand1_Click()
'Eintrag der Daten in die Datenbank "Adressen"
Dim ankaufzahl As Integer
Dim ergebnisZeile As Integer
'Sind die Zellen gefüllt?
If ak2.Value = "" Then
MsgBox "Bitte die Ausweisnummer eintragen!"
GoTo ENDE
End If
If ak5.Value = "" Then
MsgBox "Bitte den Vornamen eintragen!"
GoTo ENDE
End If
If ak6.Value = "" Then
MsgBox "Bitte den Nachnamen eintragen!"
GoTo ENDE
End If
If ak7.Value = "" Then
MsgBox "Bitte die Strasse und Hausnummer eintragen!"
GoTo ENDE
End If
If ak8.Value = "" Then
MsgBox "Bitte den Ort eintragen!"
GoTo ENDE
End If
If ak11.Value = "" Then
MsgBox "Bitte die Ausweis-Art eintragen!"
GoTo ENDE
End If
If ak12.Value = "" Then
MsgBox "Bitte das Ausweisland eintragen!"
GoTo ENDE
End If
If ak10.Value = "" Then
MsgBox "Bitte das Geburtsdatum eintragen!"
GoTo ENDE
End If
If txtSerienNr.Value = "" Then
MsgBox "Bitte die Serien-Nummer eintragen!"
GoTo ENDE
End If
If cbArtikelgruppe.Value = "" Then
MsgBox "Bitte die Artikelgruppe eintragen!"
GoTo ENDE
End If
If txtArtikelbezeichnung.Value = "" Then
MsgBox "Bitte die Artikelbezeichnung eintragen!"
GoTo ENDE
End If
If cbZustand.Value = "" Then
MsgBox "Bitte den Zustand eintragen!"
GoTo ENDE
End If
If cbAusstattung.Value = "" Then
MsgBox "Bitte die Ausstattung eintragen!"
GoTo ENDE
End If
If txtAnkaufspreis.Value = "" Then
MsgBox "Bitte den Ankaufspreis eintragen!"
GoTo ENDE
End If
If cbKgeber.Value = "" Then
MsgBox "Bitte die Kassenart eintragen!"
GoTo ENDE
End If
'Prüfen ob schon eingetragen
If Range("'Listenfelder'!A12") = 1 Then
Call ZellenNrSuche
ergebnisZeile = Range("'Listenfelder'!A16")
ankaufszahl = Range("'Listenfelder'!A14")
ankaufszahl = ankaufszahl + 1
Cells(ergebnisZeile, 16) = ankaufszahl
'MsgBox Cells(ergebnisZeile, 16)
Range("'Listenfelder'!A14").Clear
GoTo Artikeleintragen
End If
Sheets("Adressen").Select
Dim iRow As Integer
iRow = Cells(Rows.Count, 3).End(xlUp).Row + 1
Cells(iRow, 2).Value = ak2.Value
'Cells(iRow, 3).Value =
Cells(iRow, 4).Value = ak4.Value
Cells(iRow, 5).Value = ak5.Value
Cells(iRow, 6).Value = ak6.Value
Cells(iRow, 7).Value = ak7.Value
Cells(iRow, 8).Value = ak8.Value
Cells(iRow, 9).Value = ak9.Value
Cells(iRow, 10).Value = ak10.Value
Cells(iRow, 11).Value = ak11.Value
Cells(iRow, 12).Value = ak12.Value
Cells(iRow, 13).Value = ak13.Value
Cells(iRow, 14).Value = ak14.Value
Cells(iRow, 15).Value = ak15.Value
Cells(iRow, 16).Value = ak16.Value
'Cells(iRow, 17).Value = ak17.value
Cells(iRow, 25).Value = "Verkäufer"
Cells(iRow, 27).Value = Now
Artikeleintragen:
'Eintrag der Daten in die Datenbank "Artikel"
Sheets("Artikel").Select
Dim eRow As Integer
eRow = Cells(Rows.Count, 3).End(xlUp).Row + 1
Cells(eRow, 2).Value = txtSerienNr.Value
Cells(eRow, 3).Value = cbArtikelgruppe.Value
Cells(eRow, 4).Value = txtArtikelbezeichnung.Value
Cells(eRow, 5).Value = cbZustand.Value
Cells(eRow, 6).Value = cbAusstattung.Value
Cells(eRow, 7).Value = txtSonstiges.Value
Cells(eRow, 8).Value = txtOrginalrechnung.Value
Cells(eRow, 9).Value = txtAnkaufspreis.Value
Cells(eRow, 16).Value = cbKgeber.Value
Cells(eRow, 22).Value = cbAusweisNr.Value
'Eintrag der Daten in das Vertragsformular
Sheets("Vertrag").Select
Range("B10") = ak5.Value & " " & ak6.Value
Range("B11") = ak7.Value
Range("D11") = ak8.Value & " " & ak9.Value
Range("B12") = ak10.Value
Range("D12") = ak11.Value
Range("B13") = ak2.Value
Range("D13") = ak12.Value
Range("B19") = cbArtikelgruppe.Value
Range("B20") = txtArtikelbezeichnung.Value
Range("B21") = txtSerienNr.Value
Range("B22") = cbAusstattung.Value
Range("B23") = txtSonstiges.Value
Range("B24") = txtOrginalrechnung.Value
Range("E21") = cbZustand.Value
Range("C26") = txtAnkaufspreis.Value
Range("D14") = txtTelefonMobil.Value
'MsgBox Cells(eRow, 2).Value
'Range("E2") = Cells(eRow, 2).Value
'Vertrag drucken
'ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
'Nach dem Drucken Felder löschen
Range("'Listenfelder'!A12").Clear
Sheets("Hauptmenue").Select
End
ENDE:
End Sub

--------------------snap
Danke für die Hilfe!
Mfg
Gernot

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Prüfen wenn Wert vorhanden
04.11.2005 18:57:41
Jürgen
Hallo Gernot,
sieh mal unter Services/Recherche nach "Doppelte suchen".
Gruß
Jürgen
AW: Prüfen wenn Wert vorhanden
04.11.2005 20:23:53
Gernot
Hallo Jürgen!
Das ist nicht das was ich meinte! Doppelte suche ich nicht, ich will wenn er ein Suchergebnis gefunden hat, die Daten nicht noch einmal in die Tabelle schreiben. Somit entstehen gar keine doppelten Einträge!
Also noch mal:
Wie stelle ich das an, wenn ein Suchergebnis vorliegt und schon in die Userform geschrieben worden sind, nicht nochmals in die Tabelle geschrieben wird.
Danke!
Mfg Gernot
AW: Prüfen wenn Wert vorhanden
04.11.2005 20:45:17
Leo
Hi,
wie ist denn defeniert, ab wann ein Datensatz als doppelt anzusehen ist?
mfg Leo
Anzeige
AW: Prüfen wenn Wert vorhanden
04.11.2005 23:52:28
Gernot
Guten Abend!

Irgendwie scheine ich mich falsch auszudrücken.
Nochmals:
Ich will doch nur verhindern, dass sich Einträge in der Datenbank verdoppeln, sprich es existiert nur ein Eintrag pro Kunde. Es ist aber möglich, dass der Kunde mehrfach Artikel verkaufen kann. Ich suche nicht nach doppelten Datensätzen!
Die Datensätze die ich brauche sind ja in einer zusammenhängenden Zeile. Die Listbox die mir die Suchergebnisse bringt, lässt aber nur 10 Spalten zu, obwohl in der Tabelle 29 existieren. Wie kann ich jetzt die Begrenzung elegant umgehen dass mir alle Spalten in die Userform übertragen werden und nicht nur 10?
Wie kann ich das machen mit Rowsource? Ich habe keinen Schimmer wie ich so regeln sollte.
Zudem ist aber auch wichtig, dass ich später auch den gefundenen Datensatz wieder zurückschreiben kann wenn eine Änderung der Adressdaten stattgefunden hat, aber dass ist eine anderes Problem mit geringer Priorität.
Ich hoffe jetzt mich deutlicher Ausgedrückt zu haben!
Mfg
Gernot
Anzeige
AW: Prüfen wenn Wert vorhanden
05.11.2005 00:34:32
Leo
Hi,
wenn du wirklich alle 29 Spalten in der Listbox brauchst, warum auch immer, musst
du RowSource verwenden, ansonsten ist die Anzahl der Spalten auf 10 begrenzt.
Für RowSource müssen die Daten in einem Block stehen.
mfg Leo

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige