برنامج اكثر من رائع يقوم بتحويل قاعدة البيانات الاكسيس الى فوكس برويراعى وضع البرنامج فى مجلد خالى من قواعد بيانات فوكس قبل التشغيل كل الشكر لمصمم البرنامجKalpesh Chhatrala
م علاء قاسم
ALAAQASEM@YAHOO.COM
0106187487
برنامج اكثر من رائع يقوم بتحويل قاعدة البيانات الاكسيس الى فوكس برويراعى وضع البرنامج فى مجلد خالى من قواعد بيانات فوكس قبل التشغيل كل الشكر لمصمم البرنامجKalpesh Chhatrala
م علاء قاسم
ALAAQASEM@YAHOO.COM
0106187487
تم تعديل هذه المشاركة بواسطة alaaqasem في 21 يونيو 2010 في 10:14
SET SAFETY off
!DEL *.FPT
!DEL *.DBF
!DEL *.DBC
!DEL *.DCT
!DEL *.DCX
CLEAR ALL
CLOSE DATABASES ALL
CLOSE ALL
LOCAL lcMyFile, lnConnHandle, lnResult, lcSQLCommand, lnGetData, lcNewName
LOCAL ARRAY laWhatErr(1)
lcMyFile = GETFILE('MDB')
lcMyPath = LOCFILE(lcMyFile)
lon=LEN(ALLTRIM(lcMyFile))
lon=lon-4
newname=LEFT(ALLTRIM(lcMyFile),lon)
*CREATE DATABASE &NEWNAME
*!* No point if no MDB file is selected
IF !EMPTY(lcMyFile)
*!* Use a SQLStringConnect to connect to the MDB file
*!* lnConnHandle = SQLSTRINGCONNECT('DRIVER=MICROSOFT ACCESS DRIVER (*.MDB);DBQ=' + lcMyFile)
ConnectString = "DSN=MS Access Database;"+;
"DBQ="+lcMyFile+";"+;
"DefaultDir="+lcMyPath+"; DriverId=281;FIL=MS Access;MaxBufferSize=2048;"+;
"PageTimeout=5;UID=youruserid;pwd=yourpassword"
lnConnHandle = SQLSTRINGCONNECT(ConnectString,.t.)
IF lnConnHandle > 0
*!* Need to know what tables are contained in the MDB file
lnResult = SQLTABLES(lnConnHandle, 'TABLE')
IF lnResult > 0
*!* Create a new DBC named "newname"
CREATE DATABASE &newname
*!* Select SQLResult and scan through the cursor.
SELECT SQLResult
SCAN
*!* Build a SQL SELECT statement to pass to SQLEXEC()
lcSQLCommand = ;
"SELECT * FROM [" + ALLTRIM(SQLResult.table_name) + "]"
lnGetData = SQLEXEC(lnConnHandle, lcSQLCommand, 'newdata')
IF lnGetData > 0
*!* SQLEXEC() was successful
lcNewName = STRTRAN(ALLTRIM(SQLResult.table_name), " ", "_")
SELECT newdata
*!* Copy Table Structure and Data to a DBF file
*!* VFP 3.0 - loses long field names
*!* COPY TO (lcNewName)
*!* ADD TABLE (lcNewName)
*!* VFP 5.0/6.0 - keeps long field names
* COPY TO (lcNewName) DATABASE myNew
COPY TO (lcnewname) DATABASE &NEWNAME
ENDIF
ENDSCAN
ENDIF
*!* Done Getting Data, so Disconnect
=SQLDISCONNECT(lnConnHandle)
ELSE
*!* The SQLStringConnect failed
=MESSAGEBOX('ODBC Connection Failed', 'ODBC')
*!* Call AERROR()
=AERROR(laWhatErr)
*!* Display the error
DISPLAY MEMORY LIKE laWhatErr
ENDIF
ENDIF
تم تعديل هذه المشاركة بواسطة alaaqasem في 21 يونيو 2010 في 10:20