VB Code:
  1. Private Sub LoadTerminalComboBox()
  2.         Try
  3.             Dim iRow As DataRow
  4.             Dim tmpTerminal As String = ""
  5.  
  6.             strProcedure = "LoadTerminalComboBox"
  7.             cmbTerminal.Items.Clear()
  8.  
  9.             For Each iRow In dtBatchHeader.Rows
  10.                 If iRow.Item("terminal") = Convert.ToString(tmpTerminal) Then
  11.                 Else
  12.                     cmbTerminal.Items.Add(iRow("terminal"))
  13.                     tmpTerminal = iRow("terminal")
  14.                 End If
  15.             Next
  16.  
  17.         Catch ex As Exception
  18.             ErrorHandler(strProgram, strModule, strProcedure, Msg)
  19.         End Try
  20.     End Sub

Where are you calling this from? And I am not sure that I follow the logic statement your using.
VB Code:
  1. if iRow.items("Terminal") = Convert.ToString(tmpTerminal) then

Is that like??????
VB Code:
  1. if not iRow.Items("Terminal").ToString = String.Empty

Plus you clear the box everytime you clear this function. Even if it can not be repopulated.