Exportar a Access

29/01/2006 - 14:01 por zepelin | Informe spam
Hola amigos, otra vez preguntando.
Tengo un boton en una hoja de excel con el siguiente codigo, que lo que
hace es guardar e imprimir la hoja con los parametros seleccionados.
Private Sub CommandButton1_Click()
If CheckBox1 = False Then
ActiveWorkbook.SaveAs "C:\XXXXXX\ADMINISTRACION\ALBARANES\ALBARANES
2006\" & Sheets("Factura").Range("I13").Text & " , " &
Sheets("Factura").Range("C14").Text & " " &
Sheets("Factura").Range("D14").Text& & " , " & " Fecha " &
Sheets("Factura").Range("D13").Text
Else
ActiveWorkbook.SaveAs "C:\XXXXXX\ADMINISTRACION\ALBARANES\FACTURAS
2006\" & Sheets("Factura").Range("I13").Text & " , " &
Sheets("Factura").Range("C14").Text & " " &
Sheets("Factura").Range("D14").Text& & " , " & " Fecha " &
Sheets("Factura").Range("D13").Text
End If
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Application.Quit
ThisWorkbook.Close savechanges:=False
End Sub

Mi pregunta es como puedo adicionar código para que me guarde en una
base de datos ya creada en Access, en la tabla factura 3 valores de la
hoja de excel, que serian el cliente, el nº de factura y la fecha.

He recogido y e intentado adecuar este codigo que aparece en las news,
pero no me funciona. Me da error. Atributo no valido en sub o funcion.

Ya he creado una referencia a la librería "Microsoft DAO X.x Object
Library"
Aqui va el codigo.

Public Sub AddBDPuc()

Public BD As Database
Public Reg As Recordset


Set BD = OpenDatabase(ThisWorkbook.Path & "\xxxxxxx.mdb")
Set Reg = BD.OpenRecordset(Name:="Factura", Type:=dbOpenDynaset)


'Ingreso del nuevo reg. a la BD
With Reg
.AddNew
.Fields("Nombre").Value = Range("I13")
.Fields("Fecha").Value = Range("D13")
.Fields("Factura").Value = Range("D14")
.Update
End With


BD.Close
End Sub
End Sub

Gracias por vuestra ayuda y perdon por tanto rollo.
 

Leer las respuestas

#1 Héctor Miguel
30/01/2006 - 00:26 | Informe spam
hola, 'anomimo/a' !

... como puedo adicionar codigo para que me guarde en una base de datos ya creada en Access
en la tabla factura 3 valores de la hoja de excel, que serian el cliente, el nº de factura y la fecha.
He recogido y e intentado adecuar este codigo que aparece en las news pero no me funciona.
Me da error. Atributo no valido en sub o funcion.
Ya he creado una referencia a la libreria "Microsoft DAO X.x Object Library" Aqui va el codigo. [...]



1) en relacion con tu segunda 'pregunta'... el error de -> 'Atributo no valido en sub o funcion'
se debe a la 'declaracion' Public que haces a tus 'variables' [BD As Database y Reg As Recordset]...
-> DENTRO de un procedimiento [sub o funcion]
=> cambia los 'Public'... -> por 'Dim'... [simple y llano] ;)

-> encontraras un ejemplo 'especifico' de lo que solicitas en...
Export data from Excel to Access (DAO)
http://www.erlandsendata.no/english...cexportdao

2) con relacion al ejemplo que pones del codigo en el commandbutton [supongo] incrustado en la hoja...
[probablemente] podrias hacerlo mas 'delgado/digerible/...' si lo cambias +/- a lo siguiente...
Private Sub CommandButton1_Click()
Dim Ruta As String, Archivo As String
Ruta = "C:\XXXXXX\administracion\albaranes\" & Iif(CheckBox1 = False, "albaranes", "facturas") & " 2006\"
With Sheets("Factura")
Archivo = .[i13].Text & " , " & .[c14].Text & " " & .[d14].Text& & " , Fecha " & .[d13].Text
End With
ActiveWorkbook.SaveAs Ruta & Archivo
ActiveWindow.SelectedSheets.PrintOut
Application.Quit
ThisWorkbook.Close False
End Sub

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
=> Public Sub AddBDPuc()
Public BD As Database
Public Reg As Recordset
Set BD = OpenDatabase(ThisWorkbook.Path & "\xxxxxxx.mdb")
Set Reg = BD.OpenRecordset(Name:="Factura", Type:=dbOpenDynaset)
'Ingreso del nuevo reg. a la BD
With Reg
.AddNew
.Fields("Nombre").Value = Range("I13")
.Fields("Fecha").Value = Range("D13")
.Fields("Factura").Value = Range("D14")
.Update
End With
BD.Close
End Sub


=> ... guardar e imprimir la hoja con los parametros seleccionados.
Private Sub CommandButton1_Click()
If CheckBox1 = False Then
ActiveWorkbook.SaveAs "C:\XXXXXX\ADMINISTRACION\ALBARANES\ALBARANES
2006\" & Sheets("Factura").Range("I13").Text & " , " &
Sheets("Factura").Range("C14").Text & " " &
Sheets("Factura").Range("D14").Text& & " , " & " Fecha " &
Sheets("Factura").Range("D13").Text
Else
ActiveWorkbook.SaveAs "C:\XXXXXX\ADMINISTRACION\ALBARANES\FACTURAS
2006\" & Sheets("Factura").Range("I13").Text & " , " &
Sheets("Factura").Range("C14").Text & " " &
Sheets("Factura").Range("D14").Text& & " , " & " Fecha " &
Sheets("Factura").Range("D13").Text
End If
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Application.Quit
ThisWorkbook.Close savechanges:=False
End Sub

Preguntas similares