Discussions

Thursday, August 2, 2012

Sample Program #10


Let us create a program that will post a message from txtmsg with the specified message and button style after pressing cmdpreview. When cmdmsg is pressed, an input box will appear asking you a message to be written to the txtmsg textbox. Here is the code:

Private Sub cmdclose_Click()
  If MsgBox("Are you sure you want to close the application?", vbQuestion + vbYesNo, "Confirm") = vbYes Then
    End
  End If
End Sub

Private Sub cmdpreview_Click()
  Dim ans As VbMsgBoxResult
  ans = MsgBox(txtmsg.Text, Val(cmbmsgtype.Text) + Val(cmbbtntype.Text), "Message Preview")
 
  lblbtnclick.Caption = "You clicked "
  If ans = vbAbort Then
    lblbtnclick.Caption = lblbtnclick.Caption & "Abort"
  ElseIf ans = vbCancel Then
    lblbtnclick.Caption = lblbtnclick.Caption & "Cancel"
  ElseIf ans = vbIgnore Then
    lblbtnclick.Caption = lblbtnclick.Caption & "Ignore"
  ElseIf ans = vbNo Then
    lblbtnclick.Caption = lblbtnclick.Caption & "No"
  ElseIf ans = vbOK Then
    lblbtnclick.Caption = lblbtnclick.Caption & "OK"
  ElseIf ans = vbRetry Then
    lblbtnclick.Caption = lblbtnclick.Caption & "Retry"
  Else
    lblbtnclick.Caption = lblbtnclick.Caption & "Yes"
  End If
End Sub

Private Sub cmdmsg_Click()
  txtmsg.Text = InputBox("Enter your message here: ", "Input Box Message", txtmsg.Text)
End Sub

Wednesday, August 1, 2012

Sample Program #9


Let us create a program that will capitalize every first letter of the word and lowering the case of the remaining letters after pressing the [ENTER] button. Here is the code:

Private Sub txtw_keypress(KeyAscii As Integer)
Dim size, pos As Integer
  If KeyAscii = 13 Then
    txtw.SelStart = 0
    txtw.SelLength = 1
    txtc.Text = UCase(txtw.SelText)
    size = Len(txtw.Text) - 1
    pos = 1
 
    Do While pos <= size
      txtw.SelStart = pos
      txtw.SelLength = 1
      If txtw.SelText = " " Then
        pos = pos + 1
        txtw.SelStart = pos
        txtw.SelLength = 1
        txtc.Text = txtc.Text + " " + UCase(txtw.SelText)
      Else
        txtc.Text = txtc.Text + LCase(txtw.SelText)
      End If
      pos = pos + 1
    Loop
    txtw.SelStart = Len(txtw.Text)
  End If
End Sub

Thursday, July 19, 2012

Sample Program #8


Let us create a program that will exhibit a passing of data between listboxes. The events of our program is to put the entered text from txtname to lstdata1 and after putting it, we will erase the string inside the textbox. No empty string will be inputted inside the lstdata1 thus we will put a condition to prevent it to happen. If "To Right" or "To left" button is pressed, the selected data from lstdata1 will be transferred to lstdata2 or vice versa. If "All Right" or "All Left" button is pressed, all data inside the listbox will be transferred to the other listbox. Here is the code:


Private Sub cmdadd_Click()
  If Trim(txtname.Text) <> "" Then
    lstdata1.AddItem txtname.Text
  End If
  txtname.Text = ""
End Sub

Private Sub cmdallleft_Click()
  Dim index As Integer
  For index = 0 To lstdata2.ListCount - 1
    lstdata1.AddItem lstdata2.List(index)
  Next index
  lstdata2.Clear
End Sub

Private Sub cmdallright_Click()
  Dim index As Integer
  For index = 0 To lstdata1.ListCount - 1
    lstdata2.AddItem lstdata1.List(index)
  Next index
  lstdata1.Clear
End Sub

Private Sub cmdtoleft_Click()
  If lstdata2.ListIndex <> -1 Then
    lstdata1.AddItem lstdata2.List(lstdata2.ListIndex)
    lstdata2.RemoveItem lstdata2.ListIndex
  End If
End Sub

Private Sub cmdtoright_Click()
  If lstdata1.ListIndex <> -1 Then
    lstdata2.AddItem lstdata1.List(lstdata1.ListIndex)
    lstdata1.RemoveItem lstdata1.ListIndex
  End If
End Sub

Friday, July 13, 2012

Sample Program #7

















Let us create a program that will get the average of three(3) numbers and control the decimal place of the result using the format function.


Private Sub cmdave_Click()
  Dim a, b, c As Integer
  Dim d As Currency

  a = Val(txtn1.Text)
  b = Val(txtn2.Text)
  c = Val(txtn3.Text)
 
  d = (a + b + c) / 3
  txtave.Text = "The average is " + Format(Trim(Str(d)), "0.00") 
End Sub

Discussion:

The format string function  varies between 0 and # sign. The 0 forces the number format to display the zero even if the amount of the number does not reach the digit position while the # sign on the other hand will not. The purpose of using the # sign is to limit the number of digit to be displayed. For example, using #.## in the code above will make a display of .5 instead of 0.50, 3. instead of 3.00 and 1.5 instead of 1.50.

Sample Program #6















Let us create a program that will get the first and last letter of an entered string combining the selstart, sellength, seltext and len() function.



'LONG METHOD STYLE CODE
Private Sub cmdfind_Click()
  Dim a As Integer
 
  txta.SelStart = 0
  txta.SelLength = 1
  txtb.Text = "The first letter is " + UCase(txta.SelText)
 
  a = Len(txta.Text) - 1
  txta.SelStart = a
  txta.SelLength = 1
  txtb.Text = txtb.Text + " and the last letter is " + UCase(txta.SelText)
 
  txta.SelStart = a + 1
End Sub


'SHORT METHOD STYLE CODE
Private Sub cmdfind_Click()
 
  txta.SelStart = 0
  txta.SelLength = 1
  txtb.Text = "The first letter is " + UCase(txta.SelText)
 
  txta.SelStart = Len(txta.Text) - 1
  txta.SelLength = 1
  txtb.Text = txtb.Text + " and the last letter is " + UCase(txta.SelText)
 
  txta.SelStart = Len(txta.Text)
End Sub

Sample Program #5















Let us create a program that will count base on the given start and end value using the different types of loop.


'USING FOR LOOP
Private Sub cmdcal_Click()
  Dim a, b, c As Integer
 
  a = Val(txtn1.Text)
  b = Val(txtn2.Text)
 
  For c = a To b
    txtsum.Text = txtsum.Text + Trim(Str(c)) + " "
  Next c
End Sub
  
'USING DO LOOP UNTIL
Private Sub cmdcal_Click()  
  Dim a, b, c As Integer
 
  a = Val(txtn1.Text)
  b = Val(txtn2.Text)
 
  Do
    txtsum.Text = txtsum.Text + Trim(Str(a)) + " "
    a = a + 1
  Loop Until (a > b)
End Sub 

  
'USING DO LOOP WHILE
Private Sub cmdcal_Click()  
  Dim a, b, c As Integer
 
  a = Val(txtn1.Text)
  b = Val(txtn2.Text)

  Do
    txtsum.Text = txtsum.Text + Trim(Str(a)) + " "
    a = a + 1
  Loop While (a <= b)
End Sub


'USING DO WHILE LOOP
Private Sub cmdcal_Click()  
  Dim a, b, c As Integer
 
  a = Val(txtn1.Text)
  b = Val(txtn2.Text)
  Do While (a <= b)
    txtsum.Text = txtsum.Text + Trim(Str(a)) + " "
    a = a + 1
  Loop
End Sub

Sample Program #4


 













Let us create a program that will evaluate the smallest and the largest number from the three given inputs. We will enhance our condition using the AND and OR operators. In this example, we will use only AND.


Private Sub cmdcal_Click()
  Dim a, b, c As Integer
 
  a = Val(txtn1.Text)
  b = Val(txtn2.Text)
  c = Val(txtn3.Text)
 
  If (a < b) And (a < c) Then
    txtsum.Text = "The smallest number is " + Trim(Str(a))
  ElseIf (b < a) And (b < c) Then
    txtsum.Text = "The smallest number is " + Trim(Str(b))
  Else
    txtsum.Text = "The smallest number is " + Trim(Str(c))
  End If
 
  If (a > b) And (a > c) Then
    txtsum.Text = txtsum.Text + " and the largest is " + Trim(Str(a))
  ElseIf (b > a) And (b > c) Then
    txtsum.Text = txtsum.Text + " and the largest is " + Trim(Str(b))
  Else
    txtsum.Text = txtsum.Text + " and the largest is " + Trim(Str(c))
  End If
End Sub

'ANOTHER METHOD STYLE CODE
Private Sub cmdcal_Click()
  Dim a, b, c As Integer
 
  a = Val(txtn1.Text)
  b = Val(txtn2.Text)
  c = Val(txtn3.Text)
 
  If (a < b) And (a < c) Then
    txtsum.Text = "The smallest number is " + Trim(Str(a))
    If (b > c) Then
      txtsum.Text = txtsum.Text + " and the largest is " + Trim(Str(b))
    Else
      txtsum.Text = txtsum.Text + " and the largest is " + Trim(Str(c))
    End If
  ElseIf (b < a) And (b < c) Then
    txtsum.Text = "The smallest number is " + Trim(Str(b))
    If (a > c) Then
      txtsum.Text = txtsum.Text + " and the largest is " + Trim(Str(a))
    Else
      txtsum.Text = txtsum.Text + " and the largest is " + Trim(Str(c))
    End If
  Else
    txtsum.Text = "The smallest number is " + Trim(Str(c))
    If (b > a) Then
      txtsum.Text = txtsum.Text + " and the largest is " + Trim(Str(b))
    Else
      txtsum.Text = txtsum.Text + " and the largest is " + Trim(Str(a))
    End If
  End If
End Sub

Sample Program #3
















Let us put an evaluation of the calculated sum using condition statement. The evaluations would be, "greater than 10", "less than 10" and "equal to 10" enhancing Sample Program #2.

'LONG METHOD STYLE CODE
Private Sub cmdcal_Click()
  Dim a, b, c As Integer

  a = Val(txtn1.Text)
  b = Val(txtn2.Text)
  c = a + b
  If (c < 10) Then
    txtsum.Text = "The sum is " + Trim(Str(c)) + " and is less than 10"
  ElseIf (c > 10) Then
    txtsum.Text = "The sum is " + Trim(Str(c)) + " and is greater than 10"
  Else
    txtsum.Text = "The sum is " + Trim(Str(c)) + " and is equal to 10"
  End If
End Sub

'SHORT METHOD STYLE CODE
Private Sub cmdcal_Click()
  txtsum.Text = "The sum is " + Trim(Str(Val(txtn1.Text) + Val(txtn2.Text)))
  If (Val(txtn1.Text) + Val(txtn2.Text) < 10) Then
    txtsum.Text = txtsum.Text + " and is less than 10"
  ElseIf (Val(txtn1.Text) + Val(txtn2.Text) > 10) Then
    txtsum.Text = txtsum.Text + " and is greater than 10"
  Else
    txtsum.Text = txtsum.Text + " and is equal to 10"
  End If
End Sub





Discussion:

Here, the condition statement if,elseif and else are connected thus if either of the conditions is true, the computer will no longer enter to the next condition block.

Thursday, July 12, 2012

Sample Program #2



Let us create a program enhancing the result from Sample Program #1. Aside of stating only the sum, combine the statement "The sum is" to make a human like calculator.


'LONG METHOD STYLE CODE
Private Sub cmdcal_Click()
  Dim a, b, c As Integer

  a = Val(txtn1.Text)
  b = Val(txtn2.Text)
  c = a + b
  txtsum.Text = "The sum is " + Trim(Str(c))
End Sub

'SHORT METHOD STYLE CODE
Private Sub cmdcal_Click()
  txtsum.Text = "The sum is " + Trim(Str(Val(txtn1.Text) + Val(txtn2.Text)))
End Sub

Discussion:

Basing on the previous example, we simply add the statement (THE SUM IS) which is inside a double quotation mark. The double quotation mark will tell the compiler that this statement does not contain any variable. To fuse it with a variable, just add a plus sign in between.

Sample Program #1
















Let us create a program that will calculate the sum of two integers using the val(), str() and trim() function.


'LONG METHOD STYLE CODE
Private Sub cmdcal_Click()
  Dim a, b, c As Integer

  a = Val(txtn1.Text)
  b = Val(txtn2.Text)
  c = a + b
  txtsum.Text = Trim(Str(c))
End Sub


'SHORT METHOD STYLE CODE
Private Sub cmdcal_Click()
  txtsum.Text = Trim(Str(Val(txtn1.Text) + Val(txtn2.Text)))
End Sub

Discussion:

The val() function will convert any string type value to a numeric value while the str() on the other hand will convert the numeric value to string type. During the conversion of numeric data type to string, a space is added thus trim() function will remove the spaces