Gosh, I wasted alot of time playing around with this. An ODBC direct link is fine, as long as your data source doesnt change. eg: your software goes out to a customer, with different servername, database name, login, etc. You can program vb to change the the datasource information at runtime before the report loads. Thats gives you better customisation. Or alternately, as I have come to realise, do all your data selection in vb, and pass a dataset to CR instead. When designing the report, run your program quickly, but include a dataset.writeschema (c:\myschema.xsd) Then when you set the datasource for the report, choose xml. So much easier, neater programming, better maintainability. The selection criteria in CR becomes redundant (which is a blessing). Or... yeh, if its just 1 report in your office, odbc links are fine! :)