Como puedo exportar una tabla y despues cargarla mediante codigos

dradana2003
26 de Agosto del 2004
necesito que una tabla que tengo en mi base de datos sea exportada para un disco de 3 1/2 o para un subdirectorio y despues como puedo importarla todo mediante cadigos.

semperfimxl
26 de Agosto del 2004
Prueba con el siguiente codigo...

Esto exporta la tabla indicada en los strings a un archivo DBF (Dbase III) en disco utilizando Access.Aplication para ello; despues utiliza el mismo Access.Application para importarla de regreso...

Necesitas marcar en Referencias en el proyecto el "Microsoft Access xx Object Library" ... y poner dos Commands en tu form de prueba ...

Private Sub Form_Load()
Command1.Caption = "Exportar"
Command2.Caption = "Importar"
End Sub

Private Sub Command1_Click()
Dim cDatabase As String
Dim oAccess As Access.Application

Dim cTablaExportar As String
Dim cTablaEnDisco As String

cTablaExportar = "Usuarios"
cTablaEnDisco = "TablaExp" ' Maximo 8 caracteres

cDatabase = "C:Archivo.mdb"
Set oAccess = New Access.Application

With oAccess
.OpenCurrentDatabase cDatabase, False
.DoCmd.TransferDatabase acExport, "dBase III", "A:", acTable, cTablaExportar, cTablaEnDisco, False, False
.CloseCurrentDatabase
.DoCmd.Quit acQuitSaveNone
End With

Set oAccess = Nothing

End Sub

Private Sub Command2_Click()
Dim cDatabase As String
Dim oAccess As Access.Application

Dim cTablaImportar As String
Dim cTablaEnAccess As String

cTablaImportar = "TablaExp" 'Maximo 8 Caracteres
cTablaEnAccess = "Usuarios"

cDatabase = "C:Archivo.mdb"
Set oAccess = New Access.Application

' Al importar la tabla, si el nombre ya existe en la base de datos
' de access, se le agregara 1 al nombre (2,3,4,... si existe previamente
' el nombre con el que se desea guardar la tabla)

With oAccess
.OpenCurrentDatabase cDatabase, False
.DoCmd.TransferDatabase acImport, "dBase III", "A:", acTable, cTablaImportar, cTablaEnAccess, False, False
.CloseCurrentDatabase
.DoCmd.Quit acQuitSaveNone
End With

Set oAccess = Nothing

End Sub

'..........

Espero te sirva de base para lo que necesites hacer...

Saludos !!

dradana2003
26 de Agosto del 2004
esto me funciona bien pero la base de datos tien contraseña y cada ves que corro el codigo me pide la contraseña hay alguna forma de evitar eso para el usuario

semperfimxl
26 de Agosto del 2004
Si la base de datos tiene contraseña, entonces modificamos un poco el codigo anterior para dejarlo de esta manera... Necesitas utilizar DAO para este efecto...

' ........

Private Sub cmdExport_Click()
Dim oDatabase As Database
Dim cDatabase As String
Dim oAccess As Access.Application

Dim cTablaExportar As String
Dim cTablaEnDisco As String

cTablaExportar = "Usuarios"
cTablaEnDisco = "TablaExp" ' Maximo 8 caracteres

cDatabase = "C:Archivo.mdb"
Set oAccess = New Access.Application

Set oDatabase = oAccess.DBEngine.OpenDatabase(cDatabase, False, False, ";pwd=semper")
With oAccess
.OpenCurrentDatabase cDatabase, False
.DoCmd.TransferDatabase acExport, "dBase III", "A:", acTable, cTablaExportar, cTablaEnDisco, False, False
.CloseCurrentDatabase
End With
oDatabase.Close
Set oDatabase = Nothing

oAccess.Quit acQuitSaveNone

Set oAccess = Nothing

End Sub

' .......

Private Sub cmdImport_Click()
Dim oDatabase As Database
Dim cDatabase As String
Dim oAccess As Access.Application

Dim cTablaImportar As String
Dim cTablaEnAccess As String

cTablaImportar = "TablaExp" 'Maximo 8 Caracteres
cTablaEnAccess = "Usuarios"

cDatabase = "C:Archivo.mdb"
Set oAccess = New Access.Application

' Al importar la tabla, si el nombre ya existe en la base de datos
' de access, se le agregara 1 al nombre (2,3,4,... si existe previamente
' el nombre con el que se desea guardar la tabla)

Set oDatabase = oAccess.DBEngine.OpenDatabase(cDatabase, False, False, ";pwd=semper")
With oAccess
.OpenCurrentDatabase cDatabase, False
.DoCmd.TransferDatabase acImport, "dBase III", "A:", acTable, cTablaImportar, cTablaEnAccess, False, False
.CloseCurrentDatabase
End With
oDatabase.Close
Set oDatabase = Nothing

oAccess.Quit acQuitSaveNone

Set oAccess = Nothing

End Sub

' ....

Ahora si, espero que no tengas problemas...
Cualquier cosa, dejame saber...

dradana2003
26 de Agosto del 2004
OK AMIGO ESTO ESTA TRABAJANDO BIEN PERO QUISIERA SABER COMO PONGO PARA SI EN LA TORRE A NO HAY DISKO EL PROGRAMA LE ALERTE AL USUARIO

sALUDOS

dradana2003
26 de Agosto del 2004
POR FAVOR AYUDEN CON ESTO