Error al acceder desde vb6 a tabla dbf

No se si me recordarás, me ayudaste hace unas semanas con un problema que tenía en vb 6 al intentar acceder a tablas dbf. Bueno se quedo funcionando. Lo probé sobre windows me y me funcionaba bien, ahora lo he pasado a windows xp y me da errores por todos los lados (creo que es por el sistema operativo).
Me da el error -2147417848 (80010108) en el método 'execute' del objeto '_command'. El código que tengo es el siguiente:
Private Sub Command4_Click()
Text1.Text = "PROCESO COMENZADO: " & Now()
Set conn1 = New ADODB.Connection
conn1.Open "Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=c:\abb;Exclusive=No;Collate=Machine;NULL=NO;DELETED=YES;BACKGROUNDFETCH=YES"
Set cmd1 = New ADODB.Command
cmd1.CommandType = adCmdText
cmd1.ActiveConnection = conn1
cmd1.CommandText = "delete from articulo where ccodpro = '000001'"
cmd1.Execute
cmd1.CommandText = "delete from stocks"
cmd1.Execute
conn1.Close
Set conn1 = Nothing
Set conn1 = New ADODB.Connection
conn1.Open "Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=c:\abb;Exclusive=No;Collate=Machine;NULL=NO;DELETED=YES;BACKGROUNDFETCH=YES"
Set cmd1 = New ADODB.Command
cmd1.CommandType = adCmdText
Set cmd1.ActiveConnection = conn1
cmd1.CommandText = "Set Exclusive On"
cmd1.Execute
cmd1.CommandText = "Pack articulo.dbf"
cmd1.Execute *** AQUÍ ME DA EL ERROR ***
cmd1.CommandText = "Pack stocks.dbf"
cmd1.Execute
conn1.Close
With res1
.ConnectionString = "Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDB=c:\abb;Exclusive=No;Collate=Machine;NULL=NO;DELETED=YES;BACKGROUNDFETCH=YES"
.ConnectionTimeout = 10
End With
Dim CONN As Connection
Dim rs As New Recordset
Set CONN = New Connection
CONN.CommandTimeout = 10
CONN.Mode = adModeReadWrite
CONN.Open "Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=c:\abb;"
rs.Open "SELECT * FROM ARTICU", CONN, adOpenDynamic, adLockBatchOptimistic
While rs.EOF = False
res1.Open
'Print rs.Fields(0)
PVPN = Val(rs.Fields(4))
PVPM = Val(rs.Fields(4)) - Val(rs.Fields(4)) * 0.15
NOMB = rs.Fields(2)
If InStr(NOMB, "'") Then
Text1.Text = Text1.Text & Chr(13) & Chr(10) & NOMB
Else
ORDEN = "insert into articulo (cref, cdetalle, ccodfam, cformato, npzorep, ncosteprom, ncostediv, nstockmin, nstockmax, ctipoiva, cgrpconta, npvp, npremayor, ndto1, ndto2, ndto3, ndto4, ndto5, ndto6, npendser, npendrec, ccoddiv, nentacu, ccodpro, crefprov, lselect, nunidades, netiquetas, cimagen, cpredef1, cpredef2, cpredef3, cpredef4, cpredef5, cpredef6, cpredef7, cpredef8, cpredef9, cpredef10, linternet, lunidades, ccodebar, ntipocode, lkit, lpeso, ntara, nbenefpvp, nbenefmay, lprecprop1, lprecprop2, npconiva, npmconiva, lctrlstock, nprepv, lactualiza, cgrpcontac, nsalacu, csctavtas, csctacpras, lanticipo, ccodpago, csctavabon, csctacabon, lbmptactil, ncant_tac, cdes_tac, nperigaran, centalm, clote) " & _
"values ('" & rs.Fields(0) & rs.Fields(1) & "', '" & NOMB & "', '" & rs.Fields(0) & "', '', 0, " & rs.Fields(4) & ", " & rs.Fields(4) & ", 0, 0, 'G', '000001', " & PVPN & ", " & PVPM & ", 0, 0, 0, 0, 0, 0, 0, 0, 'EUR', 0, '000001', '" & rs.Fields(1) & "', 0, 0, 1, '', '', '', '', '', '', '', '', '', '', '', 0, 0, '', 1, 0, 0, 0, 0, -15, 0, 0, " & PVPN * 1.16 & ", " & PVPM * 1.16 & ", 1, 0, 1, '000000', 0, '', '', 0, '', '', '', 0, 0, '', 0, 'N', '')"
res1.Execute (ORDEN)
ORDEN = "insert into stocks (ccodalm, cref, nstock, nunidades) values ('AL1', '" & rs.Fields(0) & rs.Fields(1) & "', 0, 0)"
res1.Execute (ORDEN)
End If
Rs. MoveNext
Res1. Close
Wend
Rs. Close
CONN. Close
Text1.Text = Text1.Text & Chr(13) & Chr(10) & "TRASPASO TERMINADO:" & Now()
End Sub
¿Sabes cómo lo puedo solucionar?.
Gracias por ayuda y disculpa por la molestia otra ves.

1 respuesta

Respuesta
1
Disculpa por la tardanza, pero creo que el problema viene con el driver de acceso a los datos, no con el windows xp, para este tipo de problemas, lo que se me ocurre es revisar el ADo que tienes seleccionado y cambiarlo por el más reciente.
Si esto no resuelve el problema, pues, solamente el cambiar de plataforma de base de datos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas