<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: help creating custom &amp;quot;input masks&amp;quot; and entry validation for textboxes in ArcObjects SDK Questions</title>
    <link>https://community.esri.com/t5/arcobjects-sdk-questions/help-creating-custom-amp-quot-input-masks-amp-quot/m-p/9597#M229</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Jill,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Why don't you do away with all this painful validation and simply have a date time picker control on your VBA form? Far more user friendly too.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;OL&gt;&lt;BR /&gt;&lt;LI&gt;When you are in form design mode open the toolbox up&lt;/LI&gt;&lt;BR /&gt;&lt;LI&gt;right click on toolbox and select additional controls&lt;/LI&gt;&lt;BR /&gt;&lt;LI&gt;Select the Microsoft Date time picker control 6 (sp4)&lt;/LI&gt;&lt;BR /&gt;&lt;LI&gt;drag the control onto your form&lt;/LI&gt;&lt;BR /&gt;&lt;/OL&gt;&lt;BR /&gt;&lt;SPAN&gt;Duncan&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 14 Mar 2011 20:19:04 GMT</pubDate>
    <dc:creator>DuncanHornby</dc:creator>
    <dc:date>2011-03-14T20:19:04Z</dc:date>
    <item>
      <title>help creating custom &amp;quot;input masks&amp;quot; and entry validation for textboxes</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/help-creating-custom-amp-quot-input-masks-amp-quot/m-p/9596#M228</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I have several entry validations I would like to do for my forms; but, vba in arcgis does not have built-in "input masks". (Does C# in arcgis offer more straight forward input masking?)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Can anyone offer their solutions or point to online solutions to coding "input masks" and error validation for textboxes in vba/arcgis?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;STRONG&gt;I especially need an input mask and entry validation for a date textbox.&lt;/STRONG&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;My first code sample below is my attempt at both an input mask and validation for a date textbox; but, there are still incorrect entry's that can slip through; for example 02/31/2011 would be valid). The second code sample is a simple textbox entry validation for length not to exceed a specific value (the maximum value of the table field to which the data will be saved).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Seems like we should have a library of basic form code to share among ourselves.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards, Jill (USFS Region 6)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;---------------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Private Sub txtReqDate_Change()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;On Error GoTo EH&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; 'Data entry validation&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; If Not txtReqDate = "" Then&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; [INDENT]If Len(txtReqDate) = 2 Then&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; [INDENT]If Left(txtReqDate, 2) &amp;gt; 12 Or Left(txtReqDate, 2) &amp;lt; 0 Or IsNumeric(Left(txtReqDate, 2)) = False Then&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; [INDENT]MsgBox "ERROR: Re-enter Month.", vbOKOnly, "ERROR in Date Requested on Form"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; 'txtReqDate.Value = ""&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Exit Sub[/INDENT] Else&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; [INDENT]txtReqDate.Value = txtReqDate.Value &amp;amp; "/"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Exit Sub[/INDENT] End If[/INDENT] &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ElseIf Len(txtReqDate) = 5 Then&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; [INDENT]If Left(txtReqDate, 2) &amp;gt; 12 Or Left(txtReqDate, 2) &amp;lt; 0 Or _&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Mid(txtReqDate, 4, 2) &amp;gt; 31 Or Mid(txtReqDate, 4, 2) &amp;lt; 0 Or _&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IsNumeric(Mid(txtReqDate, 4, 2)) = False Then&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; [INDENT]MsgBox "ERROR: Re-enter day.", vbOKOnly, _&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; "ERROR in Date Requested on Form"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; txtReqDate.Value = Left(txtReqDate.Value, 3)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Exit Sub[/INDENT] Else&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; [INDENT]txtReqDate.Value = txtReqDate.Value &amp;amp; "/"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Exit Sub[/INDENT] End If[/INDENT] &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ElseIf Len(txtReqDate) = 10 Then&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; [INDENT]If IsDate(txtReqDate.Value) = False Then&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; [INDENT]MsgBox "ERROR: Re-enter date as 'MM/DD/YYYY')", vbOKOnly, "ERROR in Date Requested on Form"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; 'txtReqDate.Value = ""&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Exit Sub[/INDENT] End If&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; If IsNumeric(Right(txtReqDate, 4)) Then&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; [INDENT]temp1 = CInt(Right(txtReqDate, 4))[/INDENT] Else&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; [INDENT]MsgBox "ERROR: Re-enter year.", vbOKOnly, _&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; "ERROR in Date Requested on Form"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; txtReqDate.Value = Left(txtReqDate.Value, 6)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Exit Sub[/INDENT] End If&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; temp2 = CInt(DatePart("yyyy", Date))&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; If Right(txtReqDate, 4) &amp;lt; 1900 Or IsNumeric(Right(txtReqDate, 4)) = False Or temp1 &amp;gt; temp2 Then&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; [INDENT]MsgBox "ERROR: Re-enter year.", vbOKOnly, "ERROR in Date Requested on Form"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; txtReqDate.Value = Left(txtReqDate.Value, 6)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Exit Sub[/INDENT] End If&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; If IsDate(txtReqDate.Value) = False Then&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; [INDENT]MsgBox "ERROR: Re-enter date as 'MM/DD/YYYY')", vbOKOnly, "ERROR in Date Requested on Form"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; 'txtReqDate.Value = ""&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Exit Sub[/INDENT] End If[/INDENT] ElseIf Len(txtReqDate) &amp;gt; 10 Then&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; [INDENT]MsgBox "ERROR: Date must be entered as 'MM/DD/YYYY')", vbOKOnly, "ERROR in Date Requested on Form"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; txtReqDate.Value = Left(txtReqDate.Value, 10)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Exit Sub[/INDENT] End If[/INDENT] End If&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;EH:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; MsgBox Err.Description, vbInformation, "Change textbox: Request Date"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;End Sub&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Private Sub cmdSave_Click()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;On Error GoTo EH&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; If txtReqDate &amp;lt;&amp;gt; "" Then&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[INDENT] If IsDate(txtReqDate.Value) = False Or Len(txtReqDate) &amp;lt;&amp;gt; 10 Or Left(txtReqDate, 2) &amp;gt; 12 Or Left(txtReqDate, 2) &amp;lt; 0 Or _&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; [INDENT]Mid(txtReqDate, 4, 2) &amp;gt; 31 Or Mid(txtReqDate, 4, 2) &amp;lt; 0 Or _&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; IsNumeric(Mid(txtReqDate, 4, 2)) = False Then&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; MsgBox "ERROR: Date must be entered as 'MM/DD/YYYY')", vbOKOnly, "ERROR in Date Requested on Form"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Exit Sub[/INDENT] Else&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; [INDENT]Dim temp1, temp2 As Integer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; If IsNumeric(Right(txtReqDate, 4)) Then&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; [INDENT]temp1 = CInt(Right(txtReqDate, 4))[/INDENT] Else&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; [INDENT]MsgBox "ERROR: Date must be entered as 'MM/DD/YYYY')", vbOKOnly, "ERROR in Date Requested on Form"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Exit Sub[/INDENT] End If&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; temp2 = CInt(DatePart("yyyy", Date))&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; If Right(txtReqDate, 4) &amp;lt; 1900 Or IsNumeric(Right(txtReqDate, 4)) = False Or temp1 &amp;gt; temp2 Then&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; [INDENT]MsgBox "ERROR: Date must be entered as 'MM/DD/YYYY')", vbOKOnly, "ERROR in Date Requested on Form"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Exit Sub[/INDENT] End If[/INDENT] End If[/INDENT] End If&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;-----------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Private Sub txtGNIS_Change()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;On Error GoTo EH&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[INDENT] 'Data entry validation&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; If Not txtGNIS = "" Then&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; [INDENT] If Not Len(txtGNIS) &amp;lt; 21 Then&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; [INDENT]MsgBox "ERROR: GNIS must be 20 or less characters", vbOKOnly, "ERROR in GNIS textbox on Form"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;txtGNIS = Left(txtGNIS, 20)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Exit Sub[/INDENT] End If&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[/INDENT]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; End If[/INDENT]EH:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;[INDENT] MsgBox Err.Description, vbInformation, "Change textbox: GNIS ID"[/INDENT]End Sub&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 11 Mar 2011 18:30:37 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/help-creating-custom-amp-quot-input-masks-amp-quot/m-p/9596#M228</guid>
      <dc:creator>JillFritz</dc:creator>
      <dc:date>2011-03-11T18:30:37Z</dc:date>
    </item>
    <item>
      <title>Re: help creating custom "input masks" and entry validation for textboxes</title>
      <link>https://community.esri.com/t5/arcobjects-sdk-questions/help-creating-custom-amp-quot-input-masks-amp-quot/m-p/9597#M229</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Jill,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Why don't you do away with all this painful validation and simply have a date time picker control on your VBA form? Far more user friendly too.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;OL&gt;&lt;BR /&gt;&lt;LI&gt;When you are in form design mode open the toolbox up&lt;/LI&gt;&lt;BR /&gt;&lt;LI&gt;right click on toolbox and select additional controls&lt;/LI&gt;&lt;BR /&gt;&lt;LI&gt;Select the Microsoft Date time picker control 6 (sp4)&lt;/LI&gt;&lt;BR /&gt;&lt;LI&gt;drag the control onto your form&lt;/LI&gt;&lt;BR /&gt;&lt;/OL&gt;&lt;BR /&gt;&lt;SPAN&gt;Duncan&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 14 Mar 2011 20:19:04 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcobjects-sdk-questions/help-creating-custom-amp-quot-input-masks-amp-quot/m-p/9597#M229</guid>
      <dc:creator>DuncanHornby</dc:creator>
      <dc:date>2011-03-14T20:19:04Z</dc:date>
    </item>
  </channel>
</rss>

