als textbox1 toch leeg blijft dan geeft hij geen melding meer

Status
Niet open voor verdere reacties.

markwat

Gebruiker
Lid geworden
11 mrt 2011
Berichten
301
als textbox1 toch leeg blijft dan geeft hij geen melding meer wanneer ik nee klikt en er toch nog andere textboxen leeg zijn.
hoe kan ik NO het pad laten vervolgen?

Code:
Sub kontaktpersoon_nieuw()
    With CreateObject("Outlook.Application").CreateItem(2)
    .FirstName = UserForm2.TextBox1.Value
  If UserForm2.TextBox1.Text = "" Then
     MsgBox "The texbox1 er is geen VOORLETTER ingevuld, stoppen?", vbYesNo
     If vbYes Then Exit Sub
    .MiddleName = UserForm2.TextBox2.Value
    .LastName = UserForm2.TextBox3.Value
  If UserForm2.TextBox3.Text = "" Then
     MsgBox "The texbox3 er is geen ACHTERNAAM ingevuld, stoppen?", vbYesNo
     If vbYes Then Exit Sub
    .BusinessAddressStreet = UserForm2.TextBox4.Value
  If UserForm2.TextBox4.Text = "" Then
     MsgBox "The texbox4 er is geen ADRES ingevuld, stoppen?", vbYesNo
     If vbYes Then Exit Sub
    .BusinessAddressPostalCode = UserForm2.TextBox5.Value
  If UserForm2.TextBox5.Text = "" Then
     MsgBox "The texbox5 er is geen POSTCODE ingevuld, stoppen?", vbYesNo
     If vbYes Then Exit Sub
    .BusinessAddressCity = UserForm2.TextBox6.Value
  If UserForm2.TextBox6.Text = "" Then
     MsgBox "The texbox6 er is geen PLAATS ingevuld, stoppen?", vbYesNo
     If vbYes Then Exit Sub
    .HomeTelephoneNumber = UserForm2.TextBox7.Value
    .MobileTelephoneNumber = UserForm2.TextBox8.Value
  If UserForm2.TextBox8.Text = "" Then
     MsgBox "The texbox8 er is geen 06 NUMMER ingevuld, stoppen?", vbYesNo
     If vbYes Then Exit Sub
    .BusinessTelephoneNumber = UserForm2.TextBox9.Value
    .Email1Address = UserForm2.TextBox10.Value
  If UserForm2.TextBox10.Text = "" Then
     MsgBox "The texbox10 er is geen Email ingevuld, stoppen?", vbYesNo
     If vbYes Then Exit Sub
    .Email2Address = UserForm2.TextBox11.Value
    .Save
    End If
    End If
    End If
    End If
    End If
    End If
    End If
   End With
MsgBox "Successfully Exported Worksheet Data to the Default Outlook Contacts Folder."


On Error Resume Next
   For Each TextBox In UserForm2.Controls
    TextBox.Value = ""
   Next
   
  UserForm2.Hide

End Sub
 
ik heb het in een bestand gezet.
als bv de eerste MsgBox bij Textbox 1 geactiveerd is ( omdat deze leeg was) en ik druk op Nee, dan ziet hij geen volgende fouten meer.
ik wil gewoon dat elke Textbox waarbij gekeken moet worden of deze leeg is ook een MsgBox tevoorschijn komt en dat de bewerking gestopt word zodat er als nog het adres eerst aangevuld kan worden.
 

Bijlagen

  • proef.xlsm
    20 KB · Weergaven: 13
als nog zelf opgelost met dit.

Code:
Sub AdresAanOutlook()
Load UserForm2
     UserForm2.Show
End Sub

Sub kontaktpersoon_nieuw()

Dim LResult As String
Dim Result As Integer


    With CreateObject("Outlook.Application").CreateItem(2)
    .FirstName = UserForm2.TextBox1.Value
  If UserForm2.TextBox1.Text = "" Then
     Result = MsgBox("Er is geen VOORLETTER ingevuld, stoppen?", vbQuestion + vbYesNo)
     If Result = vbYes Then Exit Sub
    End If
    .MiddleName = UserForm2.TextBox2.Value
    .LastName = UserForm2.TextBox3.Value
  If UserForm2.TextBox3.Text = "" Then
     Result = MsgBox("Er is geen ACHTERNAAM ingevuld, stoppen?", vbQuestion + vbYesNo)
     If Result = vbYes Then Exit Sub
    End If
    .BusinessAddressStreet = UserForm2.TextBox4.Value
  If UserForm2.TextBox4.Text = "" Then
     Result = MsgBox("Er is geen ADRES ingevuld, stoppen?", vbQuestion + vbYesNo)
     If Result = vbYes Then Exit Sub
    End If
    .BusinessAddressPostalCode = UserForm2.TextBox5.Value
  If UserForm2.TextBox5.Text = "" Then
     Result = MsgBox("Er is geen POSTCODE ingevuld, stoppen?", vbQuestion + vbYesNo)
     If Result = vbYes Then Exit Sub
    End If
    .BusinessAddressCity = UserForm2.TextBox6.Value
  If UserForm2.TextBox6.Text = "" Then
     Result = MsgBox("Er is geen PLAATS ingevuld, stoppen?", vbQuestion + vbYesNo)
     If Result = vbYes Then Exit Sub
    End If
    .HomeTelephoneNumber = UserForm2.TextBox7.Value
    .MobileTelephoneNumber = UserForm2.TextBox8.Value
  If UserForm2.TextBox8.Text = "" Then
     Result = MsgBox("Er is geen 06 NUMMER ingevuld, stoppen?", vbQuestion + vbYesNo)
     If Result = vbYes Then Exit Sub
    End If
    .BusinessTelephoneNumber = UserForm2.TextBox9.Value
    .Email1Address = UserForm2.TextBox10.Value
  If UserForm2.TextBox10.Text = "" Then
     Result = MsgBox("Er is geen Email ingevuld, stoppen?", vbQuestion + vbYesNo)
     If Result = vbYes Then Exit Sub
    End If
    .Email2Address = UserForm2.TextBox11.Value
    .Save
   End With
MsgBox "Successfully Exported Worksheet Data to the Default Outlook Contacts Folder."


On Error Resume Next
   For Each TextBox In UserForm2.Controls
    TextBox.Value = ""
   Next
   
  UserForm2.Hide
  
  If MsgBox("OUTLOOK OPENEN?", vbYesNo) = vbYes Then
  Shell ("OUTLOOK")
  
  MsgBox "Succesvol toegevoegd aan Outlook."

  End If
  
End Sub
 
Je procedure kan een stuk netter. Om te beginnen: waarom de code van de knop niet op het formulier gezet? Lijkt mij een beetje omslachtig. Daarnaast gebruik je nodeloze variabelen en opdrachtregels. En kun je, omdat je de code apart hebt gezet, niet zo makkelijk van Me gebruik maken.

Code:
    With CreateObject("Outlook.Application").CreateItem(2)
        .FirstName = Me.TextBox1.Value
        If Me.TextBox1.Text = "" Then
            If MsgBox("Er is geen VOORLETTER ingevuld, stoppen?", vbQuestion + vbYesNo) = vbYes Then GoTo Hell
        End If
        .MiddleName = Me.TextBox2.Value
        .LastName = Me.TextBox3.Value
        If Me.TextBox3.Text = "" Then
        If MsgBox("Er is geen ACHTERNAAM ingevuld, stoppen?", vbQuestion + vbYesNo) = vbYes Then GoTo Hell
            .BusinessAddressStreet = Me.TextBox4.Value
        End If
        If Me.TextBox4.Text = "" Then
            If MsgBox("Er is geen ADRES ingevuld, stoppen?", vbQuestion + vbYesNo) = vbYes Then GoTo Hell
        End If
        .BusinessAddressPostalCode = Me.TextBox5.Value
        If Me.TextBox5.Text = "" Then
            If MsgBox("Er is geen POSTCODE ingevuld, stoppen?", vbQuestion + vbYesNo) = vbYes Then GoTo Hell
        End If
        .BusinessAddressCity = Me.TextBox6.Value
        If Me.TextBox6.Text = "" Then
            If MsgBox("Er is geen PLAATS ingevuld, stoppen?", vbQuestion + vbYesNo) = vbYes Then GoTo Hell
        End If
        .HomeTelephoneNumber = Me.TextBox7.Value
        .MobileTelephoneNumber = Me.TextBox8.Value
        If Me.TextBox8.Text = "" Then
            If MsgBox("Er is geen 06 NUMMER ingevuld, stoppen?", vbQuestion + vbYesNo) = vbYes Then GoTo Hell
        End If
        .BusinessTelephoneNumber = Me.TextBox9.Value
        .Email1Address = Me.TextBox10.Value
        If Me.TextBox10.Text = "" Then
            If MsgBox("Er is geen Email ingevuld, stoppen?", vbQuestion + vbYesNo) = vbYes Then GoTo Hell
        End If
        .Email2Address = Me.TextBox11.Value
        .Save
    End With
 
waarom de code van de knop niet op het formulier gezet....

beste AccessGuru,

ik ben een amateur op dit gebied.
Vind het gewoon leuk om dit te doen, al hoewel soms ik best wel in de knoei zit.
Je aanpassingen heb ik opgevolgd.

alleen wat bedoel je met;
" waarom de code van de knop niet op het formulier gezet...." de Userform bedoel je?

dit heb ik in de programmacode gezet.
zodat de eerste letter of het hele woord hoofdletters krijgt.
Code:
Private Sub TextBox1_Change()
TextBox1.Text = UCase(TextBox1.Text)
End Sub

Private Sub TextBox2_Change()
TextBox2.Text = (TextBox2.Text)
End Sub

Private Sub TextBox3_Change()
TextBox3.Text = UCase(Left(TextBox3.Text, 1)) & LCase(Mid(TextBox3.Text, 2))
End Sub

Private Sub TextBox4_Change()
TextBox4.Text = UCase(Left(TextBox4.Text, 1)) & LCase(Mid(TextBox4.Text, 2))
End Sub

Private Sub TextBox5_Change()
TextBox5.Text = UCase(TextBox5.Text)
End Sub

Private Sub TextBox6_Change()
TextBox6.Text = UCase(TextBox6.Text)
End Sub

Private Sub TextBox7_Change()
TextBox7.Text = (TextBox7.Text)
End Sub

Private Sub TextBox8_Change()
TextBox8.Text = (TextBox8.Text)
End Sub

Private Sub TextBox9_Change()
TextBox9.Text = UCase(TextBox9.Text)
End Sub

Private Sub TextBox10_Change()
TextBox10.Text = UCase(Left(TextBox10.Text, 1)) & LCase(Mid(TextBox10.Text, 2))
End Sub

Private Sub TextBox11_Change()
TextBox11.Text = UCase(Left(TextBox11.Text, 1)) & LCase(Mid(TextBox11.Text, 2))
End Sub

vr gr paul
 
Zo laat je een woord starten met een hoofdletter.

Code:
Sub jec()
Debug.Print StrConv("hallo", vbProperCase)
End Sub
 
jveer

Het werkt goed wat ik heb.
Waarom zou ik het beter kunnen veranderen naar uw oplossing?

gr paul
 
Je procedure kan een stuk netter. Om te beginnen: waarom de code van de knop niet op het formulier gezet? Lijkt mij een beetje omslachtig. Daarnaast gebruik je nodeloze variabelen en opdrachtregels. En kun je, omdat je de code apart hebt gezet, niet zo makkelijk van Me gebruik maken.

Code:
    With CreateObject("Outlook.Application").CreateItem(2)
        .FirstName = Me.TextBox1.Value
        If Me.TextBox1.Text = "" Then
            If MsgBox("Er is geen VOORLETTER ingevuld, stoppen?", vbQuestion + vbYesNo) = vbYes Then GoTo Hell
        End If
        .MiddleName = Me.TextBox2.Value
        .LastName = Me.TextBox3.Value
        If Me.TextBox3.Text = "" Then
        If MsgBox("Er is geen ACHTERNAAM ingevuld, stoppen?", vbQuestion + vbYesNo) = vbYes Then GoTo Hell
            .BusinessAddressStreet = Me.TextBox4.Value
        End If
        If Me.TextBox4.Text = "" Then
            If MsgBox("Er is geen ADRES ingevuld, stoppen?", vbQuestion + vbYesNo) = vbYes Then GoTo Hell
        End If
        .BusinessAddressPostalCode = Me.TextBox5.Value
        If Me.TextBox5.Text = "" Then
            If MsgBox("Er is geen POSTCODE ingevuld, stoppen?", vbQuestion + vbYesNo) = vbYes Then GoTo Hell
        End If
        .BusinessAddressCity = Me.TextBox6.Value
        If Me.TextBox6.Text = "" Then
            If MsgBox("Er is geen PLAATS ingevuld, stoppen?", vbQuestion + vbYesNo) = vbYes Then GoTo Hell
        End If
        .HomeTelephoneNumber = Me.TextBox7.Value
        .MobileTelephoneNumber = Me.TextBox8.Value
        If Me.TextBox8.Text = "" Then
            If MsgBox("Er is geen 06 NUMMER ingevuld, stoppen?", vbQuestion + vbYesNo) = vbYes Then GoTo Hell
        End If
        .BusinessTelephoneNumber = Me.TextBox9.Value
        .Email1Address = Me.TextBox10.Value
        If Me.TextBox10.Text = "" Then
            If MsgBox("Er is geen Email ingevuld, stoppen?", vbQuestion + vbYesNo) = vbYes Then GoTo Hell
        End If
        .Email2Address = Me.TextBox11.Value
        .Save
    End With

kunt u het zoals u het zou doen in de proef.xlsm kunnen zetten?
 
Omdat je nu een omweg gebruikt terwijl er een functie voor is
 
Jveer,

maar dit is alleen de eerste letter, andere Textboxen moeten geheel hoofdletters zijn.
 
Dan gebruik je wel Ucase
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan