I'll reply to my own post seen as no-one else has :(
I'm quite sure many people have this problem...
I found out what the problem was - You need a lisence to create Custom reports at runtime. Using the following working code
vb.net told me this:
Dim app As New CRAXDRT.Application
Dim repdoc As CRAXDRT.Report
Private Sub Form2_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
repdoc = app.NewReport
'repdoc = New CRAXDRT.Report
' Open the data connection
Dim ADOConnection As New ADODB.Connection
ADOConnection.Provider = "ASAProv"
ADOConnection.ConnectionString = "Provider=MSDASQL.1;Persist Security Info=False;Data Source=DOB"
ADOConnection.CursorLocation = ADODB.CursorLocationEnum.adUseClient
' Create a new instance of an ADO command object
Dim ADOCommand As New ADODB.Command
' ADOCommand.ActiveConnection = New ADODB.Connection
ADOCommand.CommandText = "Customer"
ADOCommand.CommandType = ADODB.CommandTypeEnum.adCmdTable
' Add the data source (patient table) to the report
repdoc.Database.AddADOCommand(ADOConnection, ADOCommand.CommandText)
'Add a title to the report
repdoc.Sections(1).AddTextObject("Patient Test Report", 6000, 400)
' Add fields to details section
' Note that the Sections collection can be accessed via
' number or string index
repdoc.Sections("D").AddFieldObject("{ado.sname}", 750, 5)
repdoc.Sections("D").AddFieldObject("{ado.fname}", 3150, 5)
repdoc.Sections("D").AddFieldObject("{ado.dob}", 5500, 5)
repdoc.Sections("D").AddFieldObject("{ado.adr1}", 8850, 5)
CRViewer91.ReportSource = repdoc
CRViewer91.ViewReport()
End Sub