Como puedo exportar una tabla y despues cargarla mediante codigos
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.
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 !!
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 !!
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
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...
' ........
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...
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
sALUDOS
