Olá,
Vamos lá, método Jack o Estripador...por partes. VocÊ nunca criou um DSN do ODBC, certo? É muito fácil. Veja:
1. Entre no Painel de Controle;
2. Se estiver no Win9x, procure por Fontes de Dados ODBC ou algo semelhante (existem várias versões do mesmo gerenciador, o título depende de qual você está usando). Se estiver no Win2000 ou XP, dentro do Painel de Controle, abra Ferramentas Administrativas que ele está lá dentro;
3. Você tem três opções de DSN (Data Source Name ou NFD, Nome de Fonte de Dados em português): Arquivo, Sistema ou Usuário. O primeiro cria um arquivo em disco que pode ser copiado, o segundo cria um acesso para toda a máquina mas não gera arquivo algum, o terceiro faz a mesma coisa, mas depende do usuáriuo logado no Windows. Eu prefiro usar DSN de sistema, assim, selecione a aba Fonte de Dados de Sistema;
4. Clique em Novo. aparecerá uma outra tela pedindo o driver. Selecione Driver do Microsoft Access (*.mdb) e clique em Concluir;
5. Aparecerá uma outra tela pedindo o nome da fonte de dados. Dê o nome que achar melhor. Pode ser o mesmo nome da base ou o nome do seu programa. Evite nomes muito grandes e não use espaços (em tese não precisaria se preocupar com isso mas já tive problemas, assim, fica aqui o alerta). A Descrição é opcional;
6. Depois, clique no botão Selecionar dentro do frame Banco de Dados e localize o seu banco de dados do Access. Se o banco estiver em rede, eu recomendo fazer o mapeamento para um drive, de forma a acessar o diretório da rede como se fosse um drive qualquer, tipo Drive E, Drive Z, ou qualquer outra letra disponível (um detalhe, se for usar o programa em vários computadores, cada um pode ter esse mapeamento com uma letra diferente). Depois de selecionar o banco, clique em OK;
7. Veja que agora, acima do botão selecionar aparece o caminho onde está o seu banco de dados. É normal em caminhos muito longos o mesmo aparecer truncado, mas isso é falha de exibição da Microsoft. Clique em OK e o seu DSN está criado.
Agora, vamos ao abominável Crystal das Neves. Para abrir o banco, você deverá informar ao Crystal que deseja acessar uma base ODBC e não uma base access. Entenda o ODBC como um driver genérico. Assim, basta dizer que que acessar o DSN criado que o próprio gerenciador de ODBC fará o acesso e a entrega dos dados para o Crystal.
Quando estiver no seu programa, use o seguinte comando antes de disparar o relatório:
CrystalReports1.Connect = "DSN = <nome do seu DSN>"
Se usar uma senha no banco:
CrystalReports1.Connect = "DSN = <nome do seu DSN>; PWD = <sua senha>"
um abraço,
Sandro.