Select emp_id,First_Name,Last_Name,; Iif(Year(Birth_Date)<1950,.Null.,Birth_Date) As Birth_Date,; Title,Notes ; from (Home()+'samples\data\employee') ; into Cursor crsToExcel ; nofilter oExcel = Createobject("Excel.Application") With oExcel .Workbooks.Add .Visible = .T. With .ActiveWorkBook.ActiveSheet VFP2Excel(oExcel, 'crsToExcel', .Name, "A1") Endwith Endwith Function VFP2Excel Lparameters toExcel, tcCursorName, tcSheetName, tcRange tcCursorName = Iif(Empty(m.tcCursorName),Alias(),m.tcCursorName) tcSheetName = Iif(Empty(m.tcSheetName),"Sheet1", m.tcSheetName) Local loConn As AdoDB.Connection, loRS As AdoDB.Recordset,; lcTempRs, lcTemp, oExcel lcTemp = Forcepath(Sys(2015)+'.dbf',Sys(2023)) lcTempRs = Forcepath(Sys(2015)+'.rst',Sys(2023)) Select (m.tcCursorName) Copy To (m.lcTemp) loConn = Createobject("Adodb.connection") loConn.ConnectionString = "Provider=VFPOLEDB;Data Source="+Sys(2023) loConn.Open() loRS = loConn.Execute("select * from "+m.lcTemp) loRS.Save(m.lcTempRs) loRS.Close loConn.Close Erase (m.lcTemp) loRS.Open(m.lcTempRs) With toExcel.WorkSheets( ; Iif(Empty(m.tcSheetName),; .ActiveWorkBook.ActiveSheet.Name, ; m.tcSheetName)) .QueryTables.Add( loRS, .Range(m.tcRange)).Refresh() Endwith loRS.Close Erase (m.lcTempRs)Cetin