ورود

View Full Version : سوال: اضافه کردن اطلاعات فایل اکسل در بانک اطلاعاتی



hmgjob
چهارشنبه 09 بهمن 1392, 17:59 عصر
سلام
چطوری میتونم اطلاعات داخل یک فایل اکسل رو در یک بانک اطلاعاتی با فیلدهای مشابه در ویژوال فاکس پرو انجام بدهم به طوریکه اطلاعات داخل بانک DBF از بین نره و فقط اطلاعات جدید اضافه بشه؟

rezamim
چهارشنبه 09 بهمن 1392, 21:48 عصر
با دستور IMPORT و البته با كمي كد نويسي جهت هماهنگ كردن فيلدها

hmgjob
شنبه 12 بهمن 1392, 11:27 صبح
میشه لطفا یه کمی موضوع رو باز تر و کامل تر توضیح بدید؟

akbar_2020
شنبه 12 بهمن 1392, 12:44 عصر
اینم یه تابع که فایل excel و میگره و توی یه Cursor میریزه:

************ FUNCTION EXCEL ************************************************** **
* opens and excel file from version 5 thru current version installed on computer
* Parameter cfile=name of excel file to open ***********************************
*
* Example to add records from an excel file named test.xlsx into the current work area
* =_excel('test.xlsx')
Function ADD_From_Excel
Parameters filename,Table
*_filexls=Locfile('*.xls','xls')
*filename = _filexls

#Define xlLastCell 11
#Define xlMaximized -4137
#Define xlRangeAutoformatClassic2 2
#Define xlPortrait 1

Excel = Createobject("Excel.Application")
If Vartype(Excel) != "O"
* could not instantiate Excel object
* show an error message here
Return .F.
Endif

* make excel visible during development
oExcel.Visible = .F.

* open the workbook you just created
oExcel.SheetsInNewWorkBook = 1
oWorkbook = oExcel.Workbooks.Open(filename)

* rename the Sheet to whatever you like
oActiveSheet = oExcel.ActiveSheet
oActiveSheet.Name = "Sheet1"

#Define xlLastCell 11

Local loLastCell As Excel.Range
Public Array XLData[1]

* I'm skipping the code to create the oExcel object, load a workbook, and select
* a worksheet.
With Excel.ActiveWorkBook
With Excel.ActiveWorkBook.ActiveSheet
* This is just asking Excel to give us the last cell for the range of data,
* but you can use whatever technique you want to determine the range to use.
loLastCell = .Cells.SpecialCells( xlLastCell )

* This command re-dimensions and populates the array with all the data from
* the specified Range.
* Note that in this example I assume that the first row contains captions
* or field names.
XLData = .Range( .Cells(2,1), m.loLastCell ).Value
Excel.DisplayAlerts = .F.
Excel.Workbooks.Close &&(cFileName)

Endwith
Excel.Quit

Endwith
* You can now process the data directly in the array, or dump it into a cursor:
* INSERT INTO MyAlias FROM ARRAY laData
* -- OR --

Sele &Table
Append From Array XLData




نحوه استفاده از تابع:


= ADD_From_Excel(filename, 'Cursorname’)
SELECT Cursorname
Browse normal

hmgjob
شنبه 12 بهمن 1392, 14:04 عصر
Cursor کجا هست و چیه؟ و اینکه هر کدام از آنها رو باید کجا بگذارم اگه ممکنه یک نمونه کار نشونم بدید ممنون می شم؟

akbar_2020
شنبه 12 بهمن 1392, 14:10 عصر
به نظرم شما باید ابتدا در مورد اصول برنامه نویسی در Vfox یکم مطالعه داشته باشید که بهترین منبع هم Help خود Vfox

hmgjob
شنبه 12 بهمن 1392, 15:18 عصر
ممنون از راهنمایی تان
اگر بزرگواری بفرمایید درباره سوال بنده هم راهنمایی بفرمایید بسیار متشکر می شوم.

hmgjob
دوشنبه 14 بهمن 1392, 06:28 صبح
آقا کسی از دوستان جواب ما رو نمیده؟
اساتید نیازمند یاری سبزتان هستیم

yabande92
سه شنبه 15 بهمن 1392, 08:56 صبح
دوست عزیز اساتید راهنمایی لازم رو انجام دادن .
یک راهش اینه که : تابع مورد نظر که داخل یک فایل ریخته میشه و در مسیر مورد نظر دو دستور بالا اجرا .
اما بنظر میاد شما با اصول اولیه برنامه نویسی foxpro آشنایی چندانی نداشته باشید . بنابراین لازم است تا با کتاب و یا از help خود vfp استفاده کنید .

hmgjob
شنبه 19 بهمن 1392, 13:11 عصر
عزیزان حق با شماست
ولی تمنا دارم یک نمونه برنامه لطف کنید این کار ما راه بیفته دعا گوی خودتان و رفتگانتان هستم. با تشکر

akbar_2020
شنبه 19 بهمن 1392, 15:47 عصر
بابا همونی که فرستادم یه نمونه برنامه است دیگه فقط کافیه دو تا فایل Prg درست کنی و کدها رو توش کپی کنی......... همین!!!!!!!!!!!!!!

hmgjob
یک شنبه 20 بهمن 1392, 05:35 صبح
ریختمشون تو 2 تا فایل پی آر جی ولی کار نکرد. بزرگواری بفرمایید تست کنید اگه جواب داد پیوست بفرمایید بسیار ممنون می شم.

hmgjob
شنبه 26 بهمن 1392, 06:38 صبح
خدایا هیچ مبتدی رو بدون کمک نگذار- الهی آمین

gh_khajehzade
شنبه 26 بهمن 1392, 14:32 عصر
سلام
فایل excel (فقط چند تا رکورد باشه کافیه) و فایل dbf رو بزارتا ببینیم چی میشه!

shahram-007007
شنبه 26 بهمن 1392, 22:04 عصر
با عرض پوزش . از دوستان كسي هست تمايل به تدريس خصوصي فاكس پرو را داشته باشه .و من دنبال معلم ميگردم

hmgjob
یک شنبه 27 بهمن 1392, 15:13 عصر
سلام
فایل excel (فقط چند تا رکورد باشه کافیه) و فایل dbf رو بزارتا ببینیم چی میشه!

به این شکل که منظورم نیست قربان
منظورم این بود که برنامه یک بانک اطلاعاتی داشته باشه که یک فایل اکسل با فیلدهای استاندارد با بانک اطلاعاتی رو داخلش به عنوان یک رکورد اضافه شود به طوری که اطلاعات قبلی صدمه نخورد.
هدف من این هست که به جای اینکه به چند نفر برگه هایی را بدهم که به صورت دستی پر کنند و در آخر من دوباره بخواهم یک به یک آنها را وارد برنامه بکنم بیایم و یک فایل اکسل به هر کدام از آنها بدهم و در نهایت فقط فایلهای اکسل را یک به یک داخل برنامه ایمپورت کنم.

rezamim
یک شنبه 27 بهمن 1392, 19:25 عصر
http://www.sweetpotatosoftware.com/spsblog/2008/09/30/UsingExcel2007FileFormatsInVFP90.aspx

hmgjob
دوشنبه 28 بهمن 1392, 07:29 صبح
بسیار ممنون ولی وقتی اجرا می شه هیچ کاری نمیکنه

gh_khajehzade
دوشنبه 28 بهمن 1392, 10:57 صبح
به این شکل که منظورم نیست قربان

منظورتو گرفتم!یک فایل اکسل رو که به یکی دادی و پر کرده بفرست تا فایل dbf و برنامشو برات بفرستم.

hmgjob
دوشنبه 28 بهمن 1392, 12:53 عصر
منظورتو گرفتم!یک فایل اکسل رو که به یکی دادی و پر کرده بفرست تا فایل dbf و برنامشو برات بفرستم.
این فایل اکسل که من می خواهم خیلی بزرگ هستش. شما بزرگواری بفرمایید همینجوری یک نمونه کوچک درست کنید من از روی همون روش برای خودم رو درست می کنم. بسیار ممنون از زحمات همه دوستان عزیز