Access - importar automaticamente...

 
Vista:

importar automaticamente...

Publicado por bekyna (88 intervenciones) el 30/06/2005 20:51:06
Buen día
Podrían decirme si es posible que por medio de un botón en un formulario pueda importar un archivo de Excel, se que se puede hacer pero hay que seguir varios pasos y mi usuario quiere que con un solo clic importe el archivo que necesita.

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:importar automaticamente...

Publicado por Manuel (268 intervenciones) el 01/07/2005 00:35:55
Aqui mismo en este foro encontre esto:

Private Sub cmdExcel_Click()
Dim Conexion As ADODB.Connection, _
rstExcel As ADODB.Recordset, _
rstaccess As Recordset, _
strArchivo As String, _
strTabla As String, _
strSQL As String
'Variables para usar DAO
Dim dbs As Database
Set dbs = CurrentDb
'rstAccess As ADODB.Recordset
On Error GoTo cmdExcel_Click_TratamientoErrores
Set rstaccess = dbs.OpenRecordset("PREDESPACHO2", dbOpenTable)
' asigno la ruta del libro Excel
strArchivo = Application.CurrentProject.Path & "\Prueba.xls"
' asigno el nombre de la hoja o rango a abrir,
' si quieres leer un rango con nombre, pon el nombre del rango en vez del de la hoja y borra-> & "$"
strTabla = "Predespacho" & "$"

Set Conexion = New ADODB.Connection
Set rstExcel = New ADODB.Recordset

' abro la conexión con la hoja de calculo
Conexion.Provider = "Microsoft.Jet.OLEDB.4.0"
Conexion.ConnectionString = "Data Source=" & strArchivo & ";Extended Properties=""Excel 8.0;HDR=Yes;"""
Conexion.CursorLocation = adUseClient
Conexion.Open

' abro el Recordset
With rstExcel
.ActiveConnection = Conexion
.CursorLocation = adUseClient
.CursorType = adOpenStatic
.LockType = adLockReadOnly
.Open "SELECT * FROM [" & strTabla & "]", , , , adCmdText
End With

' abro el recordset de la tabla
' si el recordset Excel no está vacío, inserto los datos en la tabla
If Not rstExcel.BOF And Not rstExcel.EOF Then
Do While Not rstExcel.EOF

' buscas el registro,
' si no existe lo insertas y si existe lo editas
If rstaccess.NoMatch Then
rstaccess.AddNew
Else
rstaccess.Edit
End If
rstaccess!hora = rstExcel!hora
rstaccess!FECHA = rstExcel!FECHA
rstaccess!CD = rstExcel!CD
rstaccess.Update
rstExcel.MoveNext
Loop
End If

' cierro los recordsets y la conexión con la hoja
If Not rstExcel Is Nothing Then
rstExcel.Close
Set rstExcel = Nothing
End If

If Not rstaccess Is Nothing Then
rstaccess.Close
Set rstaccess = Nothing
End If
Set Conexion = Nothing
Set dbs = Nothing

cmdExcel_Click_Salir:
On Error GoTo 0
Exit Sub

cmdExcel_Click_TratamientoErrores:

MsgBox "Error " & Err.Number & " en proc. cmdExcel_Click de Documento VBA Form_frmLeerExcelSinExcel (" & Err.Description & ")", vbOKOnly + vbCritical
GoTo cmdExcel_Click_Salir
End Sub

Espero te sirva

Saludos
Manuel
Venezuela
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:importar automaticamente...

Publicado por Claudio (21 intervenciones) el 27/09/2005 13:13:16
Una solución muy simple es crear una macro. En la columna "acción" buscar "TransferirBaseDatos" , allí dejar "importar" y luego seleccionar la planilla excel. Despues ir al formulario crear un botón y cuando te pide una macro le ponés esa.... ¡Y listo!. Espero que te funcione!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

gracias...

Publicado por bekyna (88 intervenciones) el 27/09/2005 16:56:17
Muchas gracias clero que funciona de esta forma.

saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar