Your code works for me, however you can add the value to the reportviewer fairly easy.
VB Code:
  1. Dim crReport As New header
  2. CRV.ReportSource = crReport ' CRV is the reportviewer
  3. Dim crParameterDiscreteValue As New ParameterDiscreteValue
  4. crParameterDiscreteValue.Value = CDate(tranperiodend)
  5. CRV.ParameterFieldInfo("Dateparam").CurrentValues.Add(crParameterDiscreteValue)
I am almost sure you are setting the report source in the code not in the designer but it worths checking it again.

Anyway, If i were you I would have used a Formula Field instead of Parameter Field. Each time you do a refresh or something you should again pass the parameter, and thats just a pain in the neck.