FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Exportar DBF a Microsoft Office ACCESS
Posts: 479
Joined: Fri Feb 16, 2007 10:29 AM
Exportar DBF a Microsoft Office ACCESS
Posted: Wed Feb 18, 2009 08: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.

Posts: 682
Joined: Tue Feb 14, 2006 09:48 AM
Re: Exportar DBF a Microsoft Office ACCESS
Posted: 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 (fw): Select all Collapse
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/

Continue the discussion