La Web del Programador: Comunidad de Programadores
 
    Pregunta:  24885 - ERROR [8961] CONTROLADOR ODBC DBASE
Autor:  Jesus
Ejecutando un proceso de importación de datos desde ficheros .dbf (dBase) para ficheros Access con una aplicación Visual Basic, se produce el siguiente error (en algunos equipos)
[Microsoft] [Controlador ODBC dBase] Error no esperado desde el controlador de la base de datos externa [ 8961 ]
¿ Qué controlador me falta por instalar ?

  Respuesta:  Alfredo Camacho
Hola .....

MIra de Hecho estoy haciendo algo similar pero con la solucion ke te voy a dar funciona bien solo ke si tu tabla contiene campos de tipo memo ahi si no te va a servir hasta ahorita no he enontrado la solucion para los campos memo claro ke las mias son tablas de fox pero funcionan correcatamente exepto con los cmpos memos otra cosa no puedes meter este controlador para tablas con un nombre mayor a 8 caracteres es decir ke el nombre del archivo no puede ser a mayor de 8 letras esto es lo malo de utilizar un control de dbase la otra es usar el control de fox pero por lo ke he visto hasta ahorita solo funciona con bases de datos extencion dbc he ahi mi problema pero en fin ahorita estamos con el tuyo te voy a pasar un codigo ke tengo y de ahi lo vaz checando y cualkier duda pues me puedes escribir al mail ......

Solucion ......
' se inicializa el controlador de Conexión y el recordset
dim StrSQL as string
Dim Cn1 As ADODB.Connection
Dim RsTablas As ADODB.Recordset
Set Cn1 = New ADODB.Connection
Set RsTablas = New ADODB.Recordset

' aki esta el driver de coneccion para la tabla el ke esta como path es la ruta donde se ubica tu tabla por ejemplo el path para mi es el sigiente
'Path =C:\TEMP\visual Proy
'si te fijas solamente indico hasta la carpeta donde esta la tabla dbf no el archivo ese no lo metas en el control porke te marcaria error .....

Cn1.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Path & ";Extended Properties=""DBASE IV;"";"

y eso seria todo para hacer las consultas solamete pones el nombre de la tabla con su extencion ejemplo ...

StrSQL = "SELECT * FROM X1.dbf"
RsTablas.Open StrSQL, Cn1, adOpenDynamic, adLockPessimistic

y eso es todo podras pasar ya conla consulta en el record set a tu tabla de acces como lo kieres con un simple insert a tu base de datos destino cualkier cosa mas con gusto si kieres por mi mal nos entendemos y vemos en ke te puedo ayudar ......

Un saludo de Alfredo Camacho, San Luis Potosi Mexico