• Domingo 22 de Diciembre de 2024, 04:11

Autor Tema:  Error En Un Insert Into  (Leído 2476 veces)

_vgt_

  • Miembro activo
  • **
  • Mensajes: 76
    • Ver Perfil
Error En Un Insert Into
« en: Martes 11 de Enero de 2005, 22:17 »
0
Hola!!, estoy pasando datos de unas hojas excel a mi base de datos access pero me da un problema en el INSERT INTO y me saca un mensaje k me dice: "No se pudo encontrar el archivo ISAM instalable"  :blink: y la verdad es k me tiene descuadrado... os pongo el codigo y lo veis a ver k os parece...

este es el procedimiento con el k introduzco los datos:

Dim RS As Recordset

Public Sub Envia_Datos_Access()

Dim db As Connection
Set db = New Connection
db.CursorLocation = adUseClient
db.Open "PROVIDER=MSDataShape;Data PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=Z:\Nerv.vgt;"

Set RS = New Recordset
RS.Open "INSERT INTO Contabilidad IN 'Z:\Nerv.vgt' SELECT * FROM [datos$] IN 'Z:\excel\datos.xls'[EXCEL 6.0;]", db, adOpenStatic, adLockOptimistic

Unload frmContabilidad
frmContabilidad.Show

End Sub

cualkier ayuda se agradece un monton !!   :comp:

Muchas gracias y saludos a todos/as !!    :hola:
...solo los perdedores alegan haber hexo lo k han podido...

ebolo

  • Miembro MUY activo
  • ***
  • Mensajes: 188
    • Ver Perfil
Re: Error En Un Insert Into
« Respuesta #1 en: Miércoles 12 de Enero de 2005, 09:05 »
0
Hola _vgt_, se supone que tienes activada la referencia Microsoft Activex Data 2.x Library  (yo uso la 2.8).

Citar
Dim RS As Recordset

Public Sub Envia_Datos_Access()

Dim db As Connection
Set db = New Connection
db.CursorLocation = adUseClient
db.Open "PROVIDER=MSDataShape;Data PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=Z:\Nerv.vgt;"

Set RS = New Recordset
RS.Open "INSERT INTO Contabilidad IN 'Z:\Nerv.vgt' SELECT * FROM [datos$] IN 'Z:\excel\datos.xls'[EXCEL 6.0;]", db, adOpenStatic, adLockOptimistic
El Dim RS as Recordset, debería estar dentro de Public Sub.

Yo siempre hago la conexión, cuando es access, así:
Citar
Dim db As ADODB.Connection, rs as ADODB.Recordset
Set db= New ADODB.Connection
Set rs = New ADODB.Recordset
db.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0; Data Source=Z:\Nerv.vgt"
En tú caso, como es un .vgt  igual lo tienes bien hecho no lo sé. Pero sí conviene dimensionar que son variables ADODB.

Para el INSERT INTO, uso:
Citar
db.Execute "INSERT INTO Contabilidad IN 'Z:\Nerv.vgt' SELECT * FROM [datos$] IN 'Z:\excel\datos.xls'[EXCEL 6.0;]"
Con lo que nos ahorramos una variable 'rs
Lo que pasa es que yo nunca he añadido registros desde una tabla de excel y a lo mejor se hace como tú lo tienes.

Saludos y suerte.

_vgt_

  • Miembro activo
  • **
  • Mensajes: 76
    • Ver Perfil
Re: Error En Un Insert Into
« Respuesta #2 en: Miércoles 12 de Enero de 2005, 09:11 »
0
execute... si es k soy un garrulo xD

Muxisimas gracias ebolo!!!  :lol:

x cierto, si funciona dejo aki el codigo puesto x si alguna vez lo necesitas (o cualkiera)   :hola:
...solo los perdedores alegan haber hexo lo k han podido...

_vgt_

  • Miembro activo
  • **
  • Mensajes: 76
    • Ver Perfil
Re: Error En Un Insert Into
« Respuesta #3 en: Miércoles 12 de Enero de 2005, 09:44 »
0
mmmmmm... me sigue dando el mismo error...

te cuento: no tenia instalado el MDAC 2.8 pero como a ti no te daba problemas lo acabo de instalar y le he asignado las referencias del 2.8 aunque aun asi me sigue dando el mismo error de "No se pudo encontrar el archivo ISAM instalable" ...  :lightsabre:

Cualkier ayuda se agrade muxo  :(
...solo los perdedores alegan haber hexo lo k han podido...

ebolo

  • Miembro MUY activo
  • ***
  • Mensajes: 188
    • Ver Perfil
Re: Error En Un Insert Into
« Respuesta #4 en: Miércoles 12 de Enero de 2005, 13:19 »
0
Revisa esta dirección de Microsoft:
http://support.microsoft.com/?kbid=283881
Saludos y suerte.

_vgt_

  • Miembro activo
  • **
  • Mensajes: 76
    • Ver Perfil
Re: Error En Un Insert Into
« Respuesta #5 en: Sábado 15 de Enero de 2005, 16:51 »
0
Holas!!, al final he optado x hacer el paso de datos desde access en una macro k ya lleva preparada y total como solo lo voy hacer una vez para k no pierdan unos datos (y como k tengo un poco de prisa) pues voy a optar x esa opcion: para los k tengan un caso como el mio atentos:

Abrir el access/ macro/ nueva/ TransferirHojaCálculo ... te pilla la hoja de calculo y te la pasa enteretita y para salir de un apuro puede valer...

Muxas gracias x vuestro tiempo ebolo, Brroz !!!   :hola:
...solo los perdedores alegan haber hexo lo k han podido...