Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Importar a access

47 views
Skip to first unread message

MERCEDES CUESTA MATEO

unread,
May 8, 2001, 1:13:34 PM5/8/01
to
Tengo que importar una tabla con formato dbf a formato Access
desde el código de Visual Basic. En realidad tengo que actualizar
los datos que ya esisten en una tabla de access con los de la otra tabla y
añadir los registros que sean nuevos.
¿Podeis decirme la forma más sencilla de hacerlo y si es posible mandarme
el código?

Gracias.


Enviado desde http://v.basic.aforo.com
¿Quieres el buscador de es.comp.lenguajes.visual-basic en tu web?
http://www.aforo.com/webmasters.asp


Pelao

unread,
May 9, 2001, 2:42:07 AM5/9/01
to
No se si se podrá hacer directamente desde VB, pero en Access 97 se hace con
el método TransferDatabase. Si usas OLE para comunicarte con Access, podrás
acceder a ella.
Espero que te sirva.
Saludos.


--

MERCEDES CUESTA MATEO <mecu...@ono.com> escribió en el mensaje de noticias
9d99fu$a0d$1...@talia.mad.ttd.net...

Francisco José Torra

unread,
May 9, 2001, 1:00:13 PM5/9/01
to
Desde Visual basic puedes abrir directamente ficheros .dbf definiendo como
base de datos el directorio donde está contenido. a continuación te pongo
una rutina que permite exportar tablas access a ficheros dbase o excel.

¡que la disfrutes!


Public Function ExportaTabla(ByVal stTabla As String, ByVal stDirectorio As
String, _
ByVal stNombreFichero As String, ByVal stFormato As
String)
Dim dbActual, dbExportacion As Database
Dim tbNueva, tbOrigen As TableDef
Dim fldCampo As Field
Dim stNombreCampo, stTipoCampo, stLostrCampo2 As String
''Dim nCampos, nI As Integer
''Dim douDato As Double
Dim rsnuevaTabla, rsOrigen As Recordset
Dim intCampo, intTipo, intLongitud, nI, nCampos As Integer
Dim longLongitud As Long
Set dbActual = OpenDatabase(stGestor)
Set tbOrigen = dbActual.TableDefs(stTabla)
Set rsOrigen = tbOrigen.OpenRecordset

Select Case stFormato
Case "DBASE III"
Set dbExportacion = OpenDatabase(stDirectorio, False, False, "dBase III")
Case "EXCEL"
Set dbExportacion = OpenDatabase(stDirectorio & "\" & stNombreFichero,
False, False, "Excel 8.0")
Case "TEXTO"
Set dbExportacion = OpenDatabase(stDirectorio, False, False, "Text")
End Select

Set tbNueva = dbExportacion.CreateTableDef(stNombreFichero)
intCampo = 0
Do While intCampo <= (rsOrigen.Fields.Count - 1)
stNombreCampo = rsOrigen.Fields(intCampo).Name
intTipo = rsOrigen.Fields(intCampo).Type
''longLongitud = rsOrigen.Fields(intCampo).FieldSize

''Set fldCampo = tbNueva.CreateField(stNombreCampo, intTipo,
longLongitud)
Set fldCampo = tbNueva.CreateField(stNombreCampo, intTipo)
tbNueva.Fields.Append fldCampo
intCampo = intCampo + 1
Loop
''añado la nueva tabla
dbExportacion.TableDefs.Append tbNueva
Set rsnuevaTabla = dbExportacion.OpenRecordset(stNombreFichero,
dbOpenTable)
nCampos = rsOrigen.Fields.Count

rsOrigen.MoveFirst
Do While rsOrigen.EOF = False
rsnuevaTabla.AddNew
For nI = 0 To nCampos - 1
rsnuevaTabla.Fields(nI) = rsOrigen.Fields(nI)
Next nI
rsnuevaTabla.Update
rsOrigen.MoveNext
Loop
rsnuevaTabla.Close
rsOrigen.Close
MsgBox "Tabla exportada correctamente " & Chr(13) & _
"al fichero " & stNombreFichero

End Function

SYGEM-Carlos Roca

unread,
May 9, 2001, 5:30:42 PM5/9/01
to
 
Te indico como importar .,dbf  desde Vbasic a Access, con una SQL completa, con la ruta del fichero dBase y
con la clausula WHERE por si quieres seleccionar algo. (este ejplo, te grabara en la TablaMDB los datos del ficheroDBF)
Cambia los nombres por los tuyos
Cuidado con las comillas simples y comillas normales ; lo pongo en negrita para que se vea bien.
Si solo quieres importar algun campo  y no todos, debes poner , por ejplo   " SELECT FicheroDBF.Codigo, FicheroDBF.Nombre ..." etc en vez de FicheroDBF.*  
Una vez lo hayas importado, no te costara hacer el proceso de actualizar o modificar los datos :
 
RutaDBF="C:\DATOS"
 
xSQL = "INSERT INTO  TablaMDB  SELECT   FicheroDBF.*  FROM FicheroDBF "
xSQL = xSQL + " IN ' "  &  RutaDBF  & "  '[dBase III;] WHERE  ....."
''' msgbox (xsql)  '' por si quieres ver la sql construida
SyDB.Execute (xSQL)
Si necesitas algo mas , me lo dices
Saludos
SYGEM-Carlos Roca
 
MERCEDES CUESTA MATEO <mecu...@ono.com> escribió en el mensaje de noticias 9d99fu$a0d$1...@talia.mad.ttd.net...
0 new messages