Exportar DBF a Microsoft Office ACCESS

Exportar DBF a Microsoft Office ACCESS

Postby Loren » Wed Feb 18, 2009 8:50 am

Compañeros:

Tengo un aplicativo corriendo perfectamente, pero ahora mi cliente me plantea la posibilidad de incorporar una opción nueva en el aplicativo que permita migrar determinadas DBF a ACCESS.

¿ Es posible esto ?

Mil gracias.
LORENZO.
Loren
 
Posts: 479
Joined: Fri Feb 16, 2007 10:29 am
Location: Cadiz - España

Re: Exportar DBF a Microsoft Office ACCESS

Postby Biel EA6DD » Wed Feb 18, 2009 10:57 am

Sin problema, usando ADOx.
En una entrada de mi blog hay un ejemplo en el que se crea un MDB, y se rellena con datos de prueba.
http://bielsys.blogspot.com/2008/04/usando-origenes-de-datos-ado-y-2.html
En concreto esta parte del ejemplo puede servirte como base para lo que quieres hacer.
Code: Select all  Expand view
FUNCTION CrtMdb()
   LOCAL oCatalog,oTable,oColumn,oKey
   IF File('demo.mdb')
      FErase('demo.mdb')
   ENDIF
   //--Crea una nueva base de datos ---
   oCataLog:=CreateObject("ADOX.Catalog")
   oCataLog:Create("Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Engine Type=4;Data Source=demo.mdb")
   //--Crea una nueva tabla----
   oTable:=CreateObject("ADOX.Table")
   oTable:Name:="Cliente"
   //A¤adimos campos a la tabla----
   oTable:Columns:Append("CliCod", adInteger,  5 )
   oTable:Columns:Append("CliDes", adVarWChar, 30 )
   oTable:Columns("CliDes"):Attributes:=adColNullAble     //Permitimos valores nulos
   //-- Definimos la clave primaria-
   oKey:=CreateObject('ADOX.Key')
   oKey:Name:= 'CliCod'
   oKey:Type:= adKeyPrimary
   oKey:RelatedTable:='Prueba'
   oKey:Columns:Append("CliCod")
   oTable:Keys:Append( oKey )
   //-
   oCatalog:Tables:Append( oTable )
RETURN NIL
//------------------------
FUNCTION CrtTstDat(nReg)        //Crea registros de prueba
   LOCAL oCnn,oRs, i,x,cCliDes
   DEFAULT nReg:=100
   oCnn:=tOleAuto():new("ADODB.connection")
   oCnn:open("Provider= MicroSoft.Jet.OLEDB.4.0;Data Source=.\demo.mdb;")
   // -- Creamos RecordSet----
   oRs:=tOleAuto():New("ADODB.RecordSet")
   oRs:CursorLocation   := adUseClient
   oRs:CursorType       := adOpenDynamic
   oRs:LockType         := adLockOptimistic
   oRs:ActiveConnection := oCnn
   oRs:Source           := "SELECT * FROM CLIENTE"
   oRs:Open()

   FOR i:=1 TO nReg
      cCliDes:=''
      oRs:AddNew()
      oRs:Fields("CliCod"):Value:=i
      FOR x:=1 TO 20
         cCliDes+=Chr(HB_RandomInt(65,70))
      NEXT
      oRs:Fields("CliDes"):Value:=cCliDes
      oRs:Update()
   NEXT
RETURN NIL
 
Saludos desde Mallorca
Biel Maimó
http://bielsys.blogspot.com/
User avatar
Biel EA6DD
 
Posts: 682
Joined: Tue Feb 14, 2006 9:48 am
Location: Mallorca


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 92 guests