First thing to note is that BETWEEN is Inclusive of the first date, and Exclusive of the second. So if your user specifies
BETWEEN 2011-02-01 AND 2011-02-02
Only those entries for February 1st will be returned.
In addition, do not convert dates to any format: if you have them as DateTime objects, then pass that through as is using parametrized queries. In this case, you are not at risk from SQL injection attacks, but it is well worth always avoiding concatenated strings to prevent accidental or deliberate destruction of your database.
SELECT * FROM voucher WHERE trndate BETWEEN @DT1 AND @DT2
SelectCommand.Parameters.AddWithValue("@DT1", Me.dtp_from.Value)
SelectCommand.Parameters.AddWithValue("@DT2", Me.dtp_to.Value)
(It also makes the code easier to read)