• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

voorkom duplicates voordat wordt ingevoert?

Status
Niet open voor verdere reacties.

Dummy1912

Gebruiker
Lid geworden
26 mrt 2010
Berichten
362
Hallo,

hoe kan ik zorgen als wij nieuwe klant toevoegen
eerst wordt gekeken of deze echt nog niet bestaat voordat word toegevoegt

indien deze toch bestaat zou ik de ID nummer willen nemen en dan zo de gegevens aanpassen..

iemand een idee aub

de aanmaak code is:

Code:
Private Sub cmdAdd_Click()
On Error GoTo cmdAdd_Click_Error

If Me.txtSurname.Value = "" _
Or Me.txtFirstName.Value = "" Then
Call MsgBox("De velden voor achternaam en voornaam kunnen niet leeg zijn.", vbInformation, "Maken van nieuwe Klant")
Exit Sub
End If
If Me.txtiditem.Value = "" Then
Call MsgBox("De Referentie code kan niet leeg zijn.", vbInformation, "Maken van nieuwe Klant")
txtiditem.SetFocus
Exit Sub
End If

If Sheet1.Range("B9").Value = "" Then
Sheet1.Range("B9:R9").FormulaArray = "1"
End If

Set Drng = Sheet1.Range("B8")
Dim btn0, btn1, btn2, btn3, btn4, btnstock, btnbovenkast, btnboven, btnmuur, btnding, btnverzenden As String
Set DataSH = Sheet1

If Me.chkKast1.Value = True Then
btn0 = DataSH.Range("C1").Value
Else
    btn0 = ""
End If
If Me.ChkKast2.Value = True Then
btn1 = DataSH.Range("C1").Value
Else
    btn1 = ""
End If
If Me.ChkKast3.Value = True Then
btn2 = DataSH.Range("C1").Value
Else
    btn2 = ""
End If
If Me.ChkKast4.Value = True Then
btn3 = DataSH.Range("C1").Value
Else
    btn3 = ""
End If
If Me.ChkKast5.Value = True Then
btn4 = DataSH.Range("C1").Value
Else
    btn4 = ""
End If
'''''''''''''''''''''''''''''''''''''''''''
If Me.ChkStock.Value = True Then
btnstock = DataSH.Range("C1").Value
Else
    btnstock = ""
End If
If Me.ChkBovenKast.Value = True Then
btnbovenkast = DataSH.Range("C1").Value
Else
    btnbovenkast = ""
End If
If Me.ChkBoven.Value = True Then
btnboven = DataSH.Range("C1").Value
Else
    btnboven = ""
End If
If Me.ChkMuur.Value = True Then
btnmuur = DataSH.Range("C1").Value
Else
    btnmuur = ""
End If
If Me.ChkVerzenden.Value = True Then
btnverzenden = "Verzending" 'DataSH.Range("C1").Value
Else
    btnverzenden = ""
End If
If Me.Chkding.Value = True Then
btnding = DataSH.Range("C1").Value
Else
    btnkringding = ""
End If
If Me.ChkBlocked.Value = True Then
btnblocked = "Geblokkeerd!" 'DataSH.Range("C1").Value
Else
    btnblocked = ""
End If

Drng.End(xlDown).Offset(1, 0).Value = Me.txtSurname.Text
Drng.End(xlDown).Offset(0, 1).Value = Me.txtFirstName.Text
Drng.End(xlDown).Offset(0, 2).Value = btn0
Drng.End(xlDown).Offset(0, 3).Value = btn1
Drng.End(xlDown).Offset(0, 4).Value = btn2
Drng.End(xlDown).Offset(0, 5).Value = btn3
Drng.End(xlDown).Offset(0, 6).Value = btn4

Drng.End(xlDown).Offset(0, 7).Value = btnstock
Drng.End(xlDown).Offset(0, 8).Value = btnboven
Drng.End(xlDown).Offset(0, 9).Value = btnmuur
Drng.End(xlDown).Offset(0, 10).Value = btnbovenkast
Drng.End(xlDown).Offset(0, 11).Value = btnding
Drng.End(xlDown).Offset(0, 12).Value = btnverzenden
Drng.End(xlDown).Offset(0, 13).Value = Me.txtiditem.Text
Drng.End(xlDown).Offset(0, 14).Value = btnblocked
Drng.End(xlDown).Offset(0, 15).Value = Me.txtdatum.Caption
Drng.End(xlDown).Offset(0, 16).Value = Me.txtnotas.Text
Drng.End(xlDown).Offset(0, 17).Value = Drng.End(xlDown).Offset(-1, 17).Value + 1
Call MsgBox("Nieuwe klant is aangemaakt", vbInformation, "Maken van nieuwe Klant")

Sortit
Call ClearList

Call cmdContact_Click
On Error GoTo 0
Exit Sub

cmdAdd_Click_Error:
MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure cmdAdd_Click"

de update code is:

Code:
Private Sub cmdEdit_Click()

On Error GoTo cmdEdit_Click_Error

If Me.ListBox1.ListIndex = -1 Then
        MsgBox "Selecteer een klantnaam aub, en double click de geslecteerde klant zodat wij deze kunnen aanpassen."
    Exit Sub
ElseIf Me.txtSurname.Value = "" _
Or Me.txtFirstName.Value = "" Then
Call MsgBox("De velden voor achternaam en voornaam kunnen niet leeg zijn.", vbInformation, "Bewerken van Klant")
Exit Sub
End If
If Me.txtiditem.Value = "" Then
Call MsgBox("De Referentie code kan niet leeg zijn.", vbInformation, "Bewerken van Klant")
txtiditem.SetFocus
Exit Sub
End If

Set findvalue = Sheet1.Range("S8:S10000").Find(What:=Me.txtID.Value, LookIn:=xlValues)

Set DataSH = Sheet1

If Me.chkKast1.Value = True Then
    'checked
btn0 = DataSH.Range("C1").Value
Else
    'unchecked
    btn0 = ""
End If
If Me.ChkKast2.Value = True Then
    'checked
btn1 = DataSH.Range("C1").Value
Else
    'unchecked
    btn1 = ""
End If
If Me.ChkKast3.Value = True Then
    'checked
btn2 = DataSH.Range("C1").Value
Else
    'unchecked
    btn2 = ""
End If
If Me.ChkKast4.Value = True Then
    'checked
btn3 = DataSH.Range("C1").Value
Else
    'unchecked
    btn3 = ""
End If
If Me.ChkKast5.Value = True Then
    'checked
btn4 = DataSH.Range("C1").Value
Else
    'unchecked
    btn4 = ""
End If
'''''''''''''''''''''''''''''''''''''''''''
If Me.ChkStock.Value = True Then
    'checked
btnstock = DataSH.Range("C1").Value
Else
    'unchecked
    btnstock = ""
End If
If Me.ChkBovenKast.Value = True Then
    'checked
btnbovenkast = DataSH.Range("C1").Value
Else
    'unchecked
    btnbovenkast = ""
End If
If Me.ChkBoven.Value = True Then
    'checked
btnboven = DataSH.Range("C1").Value
Else
    'unchecked
    btnboven = ""
End If
If Me.ChkMuur.Value = True Then
    'checked
btnmuur = DataSH.Range("C1").Value
Else
    'unchecked
    btnmuur = ""
End If
If Me.ChkVerzenden.Value = True Then
    'checked
btnverzenden = "Verzenden" 'DataSH.Range("C1").Value
Else
    'unchecked
    btnverzenden = ""
End If
If Me.Chkkding.Value = True Then
    'checked
btnding = DataSH.Range("C1").Value
Else
    'unchecked
    btnding = ""
End If
If Me.ChkBlocked.Value = True Then
    'checked
btnblocked = "Geblokkeerd" 'DataSH.Range("C1").Value
Else
    'unchecked
    btnblocked = ""
End If
If Me.Chkcompleet.Value = True Then
    'checked
btncompleet = "Afgehandeld"
Else
    'unchecked
    btncompleet = ""
End If

findvalue.Offset(0, -1).Value = Me.txtnotas.Value
findvalue.Offset(0, -2).Value = txtdatum.Caption
findvalue.Offset(0, -3).Value = btnblocked
findvalue.Offset(0, -4).Value = Me.txtiditem.Value

If Me.ChkVerzenden.Value = True Or Me.Chkcompleet.Value = False Then
findvalue.Offset(0, -5).Value = btnverzenden
End If
If Me.Chkcompleet.Value = True Or Me.ChkVerzenden.Value = False Then
findvalue.Offset(0, -5).Value = btncompleet
End If

findvalue.Offset(0, -6).Value = btnding
findvalue.Offset(0, -7).Value = btnbovenkast
findvalue.Offset(0, -8).Value = btnmuur
findvalue.Offset(0, -9).Value = btnboven
findvalue.Offset(0, -10).Value = btnstock
findvalue.Offset(0, -11).Value = btn4
findvalue.Offset(0, -12).Value = btn3
findvalue.Offset(0, -13).Value = btn2
findvalue.Offset(0, -14).Value = btn1
findvalue.Offset(0, -15).Value = btn0
findvalue.Offset(0, -16).Value = Me.txtFirstName.Value
findvalue.Offset(0, -17).Value = Me.txtSurname.Value

Call MsgBox("Klant gegevens zijn opgeslagen", vbInformation, "Bewerken van Klant")
Call ClearList

Call cmdContact_Click
 For X = 0 To Me.ListBox1.ListCount - 1
        If Me.ListBox1.Selected(X) Then Me.ListBox1.Selected(X) = False
 Next X
On Error GoTo 0
Exit Sub

cmdEdit_Click_Error:

MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure cmdEdit_Click"

Dank u
 
Doe die controle in het _Exit of _Change event van het het betreffende object in de Userform.
 
Dat zal met een voorbeeld documentje vast wel lukken.
 
Hallo Haije,

oooh, ja zal ik toch even moeten denken hoe we dat moeten fixen.
 
Hallo,

hier dan een voorbeeld documentje
hoop dat jullie mij kunnen helpen.

Dank u
 

Bijlagen

Laatst bewerkt:
Kijk achter het userform in de procedure cmdADD naar het kopje "Toevoeging van Helpmij" en test eens of dat je bedoeling is:
Bekijk bijlage OnsDing.xlsm
 
Hallo Edmoor,

bedankt voor je berichtje,

kan nog steeds de zelfde klant toevoegen die al bestaat
zou niet mogen.


hij zou moeten kijken als de klant al bestaat met de volledige naam zoals B9 en C9
en dan zou melding geven deze bestaat en eventueel deze kan updaten
als ik het excel run mode deed kon ik eerst niets invoeren want bleef zeggen dat ID 6 bestond
en als ik dan in de sheet zelf teste kon ik wel invoeren maar geen message van bestond
 

Bijlagen

Je initiële vraag ging over het ID nummer en daar heb ik de controle op gezet.
Maar dat stukje zou voldoende voor je moeten zijn om dat naar wens aan te passen.
 
Hallo Edmoor,

je hebt gelijk,

komt goed, bedankt voor de hulp

ik ga er mee aan de slag ;)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan