Oi Fabiano,
Inicialmente pode não parecer relacionado à sua pergunta, mas deveria ser ;-)
As tabelas do VFP são abertas em áreas de trabalho. Existe um total de 32767 áreas de trabalho em cada sessão de dados. Para visualizarmos as áreas de trabalho nas diferentes sessões de dados abertas, podemos ir no menu "Window/Data Session" ou digitar SET na jabela de comando.
Bem, para abrirmos uma tabela em uma área de trabalho específica podemos fazer o seguinte:
SELECT 5
USE Clientes
Isso abre a tabela Clientes na área de trabalho número 5. Além das áreas de trabalho em formato numérico, podemos usar caracteres para acessar as dez primeiras. Ex.:
SELECT a
SELECT b
...
SELECT j
Aqui devemos lembrar que a letra "m" é reservada para acesso à variáveis de memória, e não como prefixo de alias...
Ok. Agora vamos tentar analisar o problema ocorrido: Quando você cria uma variável com nome "a", "b", "c", ..., "j", o VFP não consegue interpretar o acesso a um suporto método ou atributo do objeto como tal, mas acha que estamos lidando com um campo de tabela.
Para matar a dúvida, tente usar a próxima letra disponível após das 10 sessões de dados, no caso a letra "k":
PUBLIC k as ADODB.Connection
k = CREATEOBJECT("ADODB.Connection")
k.ConnectionString = "Provider=VFPOLEDB.1;Data source = x:\cadastro.dbc;"
E irá funcionar...
Espero ter ajudado...
Um abraço!