Error 424 se requiere un objeto

Respuesta de
a
Usuario
Tengo este código y me da error 424 se requiere un objeto

Private Sub Importar_Click()
DoCmd.TransferSpreadsheet acImport, 8, "hoja1", "F:\MIENTRAS\SISTEMA\BASE.xls", True
End Sub

¿Qué tengo mal?
Avatar
Experto
El docmd, ¿con qué lo estas utilizando? Ya que no entiendo bien que es lo que te pasa en tu aplicación.

Saludos

David Enciso
Usuario
Hola mira tengo un hoja de calculo excel y esa cambia todos los meses y esta siempre en la misma carpeta y quiero un comando en visual que la importe a access a una base asoc
Avatar
Experto
Sugiero que utilices el objeto createobject con una instancia de access, para que este abierto antes de la ejecución del delete o del docommand, checa la referencia de ayuda del createobject.

http://www.csidata.com/custserv/onlinehelp/VBSdocs/vbs85.htm

Saludos

David Enciso
Avatar
Experto
Solo que sea en el momento de tu apertura de la instancia de access, ya que solamente me comentas la ejecución que realizas pero no la programación en la que tengas la referencia de access.

Saludos

David Enciso
Avatar
Experto
Sería mejor así:

Dim oAccess As object

oAccess = CreateObject("Access.Application")
oAccess.Visible = True
oAccess.OpenCurrentDatabase("F:\MIENTRAS\SISTEMA\exportaciones\asoc.mdb", False)

Saludos

David Enciso
Usuario
Gracias pero ya resolví ese problema lo que me pasa es que cuando importo a access desde excel tengo que tener la base de datos abierta y hay los importa pero cuando tengo el access cerrado trata de abrirlo pero se me que da pegado

Capas que me falte la ruta de la base pero no se donde colocarla gracias

Saludos
Usuario
Private Sub Importar_Click()
asoc.Execute ("delete from hoja1")
DoCmd.TransferSpreadsheet acImport, 8, "hoja1", "F:\MIENTRAS\SISTEMA\tabla1.xls", True, "a1:b16000"
End Sub

Ese es el código
La base de datos se llama asoc y se importa en la tabla hoja1

Y la hoja de calculo se llama tabla1

Pero cuando tengo el access abierto donde esta la base de datos asoc me importa los datos pero cuando no tengo el access abierto me sale un error en el método 'TransferSpreadsheet' del objeto 'IDoCmd'

Gracias por tu ayuda
Avatar
Experto
Me puedes completar bien el comentario, no llego bien.

Saludos

David Enciso
Usuario
aaa ya gracias pero era así

Dim oAccess As Object

oAccess = CreateObject("Access.Application")
oAccess.Visible = True
oAccess.OpenCurrentDatabase ("F:\MIENTRAS\SISTEMA\exportaciones\asoc.mdb")

sin el (, false)

pero me da un error en

oAccess = CreateObject("Access.Application")

me dice variable de tipo object o la variable de bloque with no esta establecida

Gracias
Usuario
Gracias ya lo vi seria algo así

Dim oAccess As Access.ApplicationClass

oAccess = CreateObject("Access.Application")
oAccess.Visible = True
oAccess.OpenCurrentDatabas("F:\MIENTRAS\SISTEMA\exportaciones\asoc.mdb", False)

Si no es así me puedes ayudar a crear el código

Gracias
Avatar
Experto
Perdón, todo por no fijarme bien:

oAccess = CreateObject("Access.Application")

Es

Set oAccess = CreateObject("Access.Application")


Saludos

David Enciso
Usuario
Gracias por todo david me salio todo bien