VFP ·R¥ÎªÌªÀ°Ï ­º­¶ VFP ·R¥ÎªÌªÀ°Ï
¥»°Q½×°Ï¬° Visual Foxpro ·R¥ÎªÌ¸gÅç¥æ¬yªº¦a¤è, ½Ð¦h¦h§Q¥Î"·j´M"ªº¥\¯à, ¥ý¬d¬Ý¬Ý¦³µL«e¨Ò¥i´`, ¦pªGÁÙ¦³¤£À´ªº¦Aµo°Ý. ³¡¥÷¥DÃD¦³ªþ¥[ÀÉ®×, ¶·¥ýµù¥U¦¨¬°ªÀ°Ï©~¥Á¤~¥i¥H¤U¸ü.
 
 ±`¨£°ÝÃD±`¨£°ÝÃD   ·j´M·j´M   ·|­û¦Cªí·|­û¦Cªí   ·|­û¸s²Õ·|­û¸s²Õ   ·|­ûµù¥U·|­ûµù¥U 
 ­Ó¤H¸ê®Æ­Ó¤H¸ê®Æ   µn¤JÀˬd±zªº¨p¤H°T®§µn¤JÀˬd±zªº¨p¤H°T®§   µn¤Jµn¤J

Âà´«Access¨ìVFP Tables(Âà¶K)

 
µoªí·s¥DÃD   ¦^ÂÐ¥DÃD    VFP ·R¥ÎªÌªÀ°Ï ­º­¶ -> VFP °Q½×°Ï
¤W¤@½g¥DÃD :: ¤U¤@½g¥DÃD  
µoªí¤H ¤º®e
Ruey



µù¥U®É¶¡: 2003-03-12
¤å³¹: 1698
¨Ó¦Û: tunglo

²Ä 1 ¼Ó

µoªíµoªí©ó: ¬P´Á¤­ ¤­¤ë 16, 2003 10:56 pm    ¤å³¹¥DÃD: Âà´«Access¨ìVFP Tables(Âà¶K) ¤Þ¨¥¦^ÂÐ

MS Access MDB to VFP tables

Summary

Well it started when I found it hard to check rtf files for MSDN subscription index. In last few shipments there were also an MDB in 'UN-SUPPED' directory but my Access is too perfect to use an MDB < g > so I decided to get Access data to VFP tables.

Description

For anyone interested it's also a simple demonstration of converting MDB tables to VFP tables (Here in his particular case I was only dealing with tables, if you want you can access < bg > other as well - VIEW and SYSTEM TABLES. To do that you'd only change ['TABLE'] to something like ['TABLE','VIEW'] But be aware if you also include SYSTEM TABLES you get their names in myMDB cursor however you shouldn't try to execute following SQLEXEC on them).


lcDataBaseName = 'MSDN'
lcMDBDir = 'C:\My Documents\MSDN CD SUBCRIPTION INDEXES\UN-SUPPED'
lcMDBName = 'MSDN APRIL CD SUBCRIPTION INDEX.MDB'
lnConnHandle = SQLSTRINGCONNECT('DSN=MS Access Database;DBQ='+;
lcMDBDir+'\'+lcMDBName+';DefaultDir='+;
lcMDBDir+';DriverId=25;FIL=MS Access;MaxBufferSize=2048;'+;
'PageTimeout=5;UID=admin;')
Create data (lcDataBaseName)
SQLTABLES(lnConnHandle, ['TABLE'], 'myMDB')
Select myMDB
Scan
lcSQL = 'select * from "'+trim(table_name)+'"'
lcCursor = chrtran(trim(table_name),' ','_')
lcTableName = '_'+lcCursor
SQLEXEC(lnConnHandle,lcSQL,lcCursor)
Select (lcCursor)
Copy to (lcTableName)
Add table (lcTableName)
Endscan
SQLDISCONNECT(lnConnHandle)
Modi data
Once you have data in a VFP database you know what to do with it :)
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§
Ruey



µù¥U®É¶¡: 2003-03-12
¤å³¹: 1698
¨Ó¦Û: tunglo

²Ä 2 ¼Ó

µoªíµoªí©ó: ¬P´Á¥| ¤»¤ë 05, 2003 2:05 pm    ¤å³¹¥DÃD: ¤Þ¨¥¦^ÂÐ

§@ªÌJacky
¨Ó·½µ{¦¡³]­p­Ñ¼Ö³¡
*********** ConvertAccessDataToVFPData.prg**************
******************* 2003/04/12 ************************
******************** by Jacky *************************
*****************************************************
********************½d¨Ò»¡©ú*************************
***¥H¤U½d¨Ò¤£»Ý­n§ó°Ê¥ô¦óµ{¦¡½X¡A¶È­×§ïÀɮצWºÙ§Y¥i¡A
***§Y lcDatabaseName_Access, lcTableName_Access,
***lcDatabaseName_VFP ¤Î lcTableName_VFP¡C
***¥¦±N¦Û°Ê§âAccess¸ê®ÆÂনVFP¸ê®Æ¡A
***¨Ã¦Û°Ê²£¥ÍVFP¸ê®Æ®w¤Î¸ê®Æªí®æ¡A
***±z¥i¥HCOPY¥H¤Uµ{¦¡½X¨Ó¨Ï¥Î¡A¨Ã§â¥¦¦s¦¨ .prg ÀÉ¡C
***­nª¾¹D¡A¥Î .prg ÀɨÓÂàÀÉ»·¤ñ .scx Àɧֱo¦h¡A
***­Y¸ê®Æ¶qÃe¤j¡A¨ä¶¡®t²§´N«D±`©úÅã ¡D¡D¡D
***­Y¸ê®Æ¤£¦h¡A¼Æ¬í¤º´NÂàÀɧ¹¦¨
*********************** µ{¦¡¶}©l ******************************
CLOSE DATABASE ALL
SET SAFETY OFF
*********************** ¥u»Ý­×§ï¤U¦CÀɮצWºÙ ****************
lcDatabaseName_Access = "C:\AccessÀÉ®×\test.mdb" && §â¥¦§ï¦¨±z±ýÂàÀɪºAccess¸ê®Æ®w(database)
lcTableName_Access = "Table_Access" && §â¥¦§ï¦¨±z±ýÂàÀɪºAccess¸ê®Æªí®æ(table)
lcDatabaseName_VFP = "Database_VFP" && §â¥¦§ï¦¨±z¤ß¥Ø¤¤ªº¸ê®Æ®w¦WºÙ
lcTableName_VFP = "Table_VFP" && §â¥¦§ï¦¨±z¤ß¥Ø¤¤ªº¸ê®Æªí®æ¦WºÙ
=ConvertAccessToVFP(lcDatabaseName_Access, lcTableName_Access, lcDatabaseName_VFP, lcTableName_VFP)
CLOSE ALL
******************** ¥H¤U¤£¥²§ó°Ê **************************
PROCEDURE ConvertAccessToVFP
PARAMETER cDatabaseName_Access, cTableName_Access, cDatabaseName_VFP, cTableName_VFP

Insertion = .F.
PRIVATE cString
cString = "DRIVER=Microsoft Access Driver (*.mdb);"
cString = cString + "DBQ=" + cDatabaseName_Access

cHandle=SQLSTRINGCONNECT(cString) && ³sµ²¨Ã¶}±Ò Access ¸ê®Æ®w
Insertion = .F.
IF cHandle < 0
=MessageBox("³s±µ¤£¤W", 48, "ª`·N")
return
ELSE
cSQLString = "SELECT * FROM " + cTableName_Access && SQL¬d¸ß¦r¦ê
=SQLEXEC(cHandle, cSQLString , "temp") && °õ¦æSQL¬d¸ß¡A¨Ã±Nµ²ªGÀx¦s©ó CURSOR "temp" ¤¤
=SQLDisconnect(cHandle) && ¤¤Â_»PAccess¸ê®Æ®w³sµ²
SELECT temp
IF RECCOUNT() = 0
=MessageBox("¬dµL¸ê®Æ", 48 , "ª`·N")
ELSE
BROWSE NOMODIFY && ¥ýÂsÄýAccess¸ê®Æªí®æ¤º®e
Insertion = .T.
ENDIF
ENDIF

IF Insertion = .T.
SELECT temp
********* ¨ç¼Æ»¡©ú ***********
*FCount()-----¬°Àò¨ú Fieldªº¼Æ¶qªº¨ç¼Æ
*Field()----¬°Àò¨úFieldªº¦WºÙªº¨ç¼Æ
*FSize()-------¬°Àò¨úFieldªº¦ì¤¸¼Æªº¨ç¼Æ
*Type()---------¬°Àò¨úFieldªº«¬ºAªº¨ç¼Æ
*****************************
*«Ø¥ß¸ê®Æ®w¡G
CREATE DATABASE &cDatabaseName_VFP
*«Ø¥ßVFP¸ê®Æªí®æ¡A¥¦¦Û°Ê¥[¤J¸ê®Æ®w¤¤
cCreateTableString = "CREATE TABLE &cTableName_VFP ( "
FOR i = 1 TO FCount()
DO CASE
CASE i = FCount()
cCreateTableString = cCreateTableString + Field(i) + " " ;
+ Type(Field(i)) + "(" ;
+ ALLTRIM(STR(FSize(Field(i)))) + "))"
OTHERWISE
cCreateTableString = cCreateTableString + Field(i) + " " ;
+ Type(Field(i)) + "(" ;
+ ALLTRIM(STR(FSize(Field(i)))) + "),"
ENDCASE
ENDFOR
&cCreateTableString && °õ¦æ CREATE TABLE ©R¥O
*******************************************
SELECT temp
nFieldCount = FCount()
DIMENSION FieldName(nFieldCount), FieldContents (nFieldCount) &&«Å§i¤G­Ó°}¦C
FOR i = 1 TO nFieldCount
FieldName( i ) = FIELD( i ) &&§âÄæ¦ì¦WºÙÀx¦s©ó°}¦C¤¤
ENDFOR
************** °»´ú¿Ã¹õ pixels ***************
nSreenHeight = SYSMETRIC(2) &&¿Ã¹õ¼e«×
DO CASE
CASE nSreenHeight = 768
nRows = 25
nCols = 75
CASE nSreenHeight = 600
nRows = 20
nCols = 55
OTHERWISE
nRows = 25
nCols = 70
ENDCASE
************** ¶}©lÂàÀÉ ***************
SELECT temp
WAIT WINDOW AT nRows, nCols "ÂàÀɤ¤¡A½Ðµy­Ô¡D¡D¡D" NOWAIT
SCAN
FOR i = 1 TO nFieldCount
STORE &FieldName( i ) TO FieldContents(i) && §âÄæ¦ì¤º®eÀx¦s©ó°}¦C¤¤
ENDFOR
SELECT &cTableName_VFP
APPEND BLANK
FOR i = 1 TO nFieldCount
IF NOT IsNull(FieldContents(i))
REPLACE &FieldName( i ) WITH FieldContents(i)
ENDIF
ENDFOR
ENDSCAN
***************¤j¥\§i¦¨¡AÅ禬¦¨ªG **************
WAIT WINDOW AT nRows, nCols - 5 "¤j¥\§i¦¨¡A¥i¥HÅ禬¦¨ªG¤F¡I" NOWAIT
SELECT &cTableName_VFP
BROWSE && ÂsÄýÂàÀɫ᪺VFP¸ê®Æªí¤º®e¬O§_»PAccess¤@­P
ENDIF
***************** µ{¦¡µ²§ô ***********************

¡@¡@

_________________
#############################
§Ö¼Ö¶ý«}¨t¦C©¯ºÖ¦v°t,³Ü¤Q¥þÂû´ö~­ì¨Ó©¯ºÖ¨º»ò²³æ!!

¾Ç·|VFP¨Ï¥ÎªÌªÀ°Ïªº·j´M,Code¤~·|§ó¦³½ì~
#############################
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§
Ruey



µù¥U®É¶¡: 2003-03-12
¤å³¹: 1698
¨Ó¦Û: tunglo

²Ä 3 ¼Ó

µoªíµoªí©ó: ¬P´Á¥| ¤»¤ë 05, 2003 2:34 pm    ¤å³¹¥DÃD: Dbc»PMdb¤¬Â઺¤u¨ã ¤Þ¨¥¦^ÂÐ

Dbc»PMdb¤¬Â઺¤u¨ã
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§
Ruey



µù¥U®É¶¡: 2003-03-12
¤å³¹: 1698
¨Ó¦Û: tunglo

²Ä 4 ¼Ó

µoªíµoªí©ó: ¬P´Á¥| ¤»¤ë 12, 2003 1:32 pm    ¤å³¹¥DÃD: ¤Þ¨¥¦^ÂÐ

access­ì½X
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§
Rita



µù¥U®É¶¡: 2003-04-16
¤å³¹: 38


²Ä 5 ¼Ó

µoªíµoªí©ó: ¬P´Á¤é ¤E¤ë 05, 2010 12:14 am    ¤å³¹¥DÃD: ½Ð°Ývfpªºdbf Âà¨ìmdbªº¤@­Ótable¦p¦ó¼gµ{¦¡ ¤Þ¨¥¦^ÂÐ

¤½¥q·~°È¤W­n±Ndbfªº¸ê®ÆÂà¨ì·~°È³¡³B²z,
¥Ø«e¬O¥Îaccessùتº¶×¤J¥\¯à,¤£ª¾¨º¦ìªB¤Í¼g¹LÃþ¦üvfpªºÂàÀɵ{¦¡
¯àÀ°§Ú­Ì¸Ñ¨M³o­Ó¤£¤è«K¤S¤£¬ì¾Çªº§@ªk
ÁÂÁÂ
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§
saint



µù¥U®É¶¡: 2003-07-14
¤å³¹: 211


²Ä 6 ¼Ó

µoªíµoªí©ó: ¬P´Á¤@ ¤E¤ë 06, 2010 10:47 am    ¤å³¹¥DÃD: Re: ½Ð°Ývfpªºdbf Âà¨ìmdbªº¤@­Ótable¦p¦ó¼gµ{¦¡ ¤Þ¨¥¦^ÂÐ

Rita ¼g¨ì:
¤½¥q·~°È¤W­n±Ndbfªº¸ê®ÆÂà¨ì·~°È³¡³B²z,
¥Ø«e¬O¥Îaccessùتº¶×¤J¥\¯à,¤£ª¾¨º¦ìªB¤Í¼g¹LÃþ¦üvfpªºÂàÀɵ{¦¡
¯àÀ°§Ú­Ì¸Ñ¨M³o­Ó¤£¤è«K¤S¤£¬ì¾Çªº§@ªk
ÁÂÁÂ

°Ú..¤£´N°Ê¤â¼g¤@¤U´N¥i¥H¤F¶Ü..?
1.query ¥X¸ê®Æ
2.ODBC ³s¨ì Access
3.Âà¤J

§A¤½¥q¦b¨º§r? ¦b¥x¥_¤]³\¥i¥HÀ°§A¬Ý¤@¤U
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§ µo°e¹q¤l¶l¥ó MSN Messenger
nelsonchuang



µù¥U®É¶¡: 2003-09-04
¤å³¹: 563
¨Ó¦Û: »OÆW

²Ä 7 ¼Ó

µoªíµoªí©ó: ¬P´Á¤@ ¤E¤ë 06, 2010 1:12 pm    ¤å³¹¥DÃD: Re: ½Ð°Ývfpªºdbf Âà¨ìmdbªº¤@­Ótable¦p¦ó¼gµ{¦¡ ¤Þ¨¥¦^ÂÐ

Rita ¼g¨ì:
¤½¥q·~°È¤W­n±Ndbfªº¸ê®ÆÂà¨ì·~°È³¡³B²z,
¥Ø«e¬O¥Îaccessùتº¶×¤J¥\¯à,¤£ª¾¨º¦ìªB¤Í¼g¹LÃþ¦üvfpªºÂàÀɵ{¦¡
¯àÀ°§Ú­Ì¸Ñ¨M³o­Ó¤£¤è«K¤S¤£¬ì¾Çªº§@ªk
ÁÂÁÂ

¬O±`±`­nÂà,ÁÙ¬OÂà¤@¦¸´N¥i¥H¤F?

_________________
¤j®a¦n,½Ð¦h«ü±Ð
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§
Rita



µù¥U®É¶¡: 2003-04-16
¤å³¹: 38


²Ä 8 ¼Ó

µoªíµoªí©ó: ¬P´Á¥| ¤E¤ë 09, 2010 12:47 am    ¤å³¹¥DÃD: dbfÀÉÂàaccess³B²z ¤Þ¨¥¦^ÂÐ

ÁÂÁ¦U¦ìªºÀ°¦£!!

¤½¥qªº·~°È¬O¨C¤é¦³´N­n°õ¦æ¤@¦¸¸ê®Æ§ó·s,
©Ò¥H¦³3­Ó³¡ªù´N­n¤â°ÊÂà3¦¸
³oºØ§@ªk¥i¥H§ï¶i
©Ò¥H·Q¸I¸I¹B®ð¬Ý¦³µL¦n¤Í¹J¨ì¹L¦P¼Ëªº°ÝÃD
¦^³»ºÝ
À˵ø·|­û­Ó¤H¸ê®Æ µo°e¨p¤H°T®§
±q¤§«eªº¤å³¹¶}©lÅã¥Ü:   
µoªí·s¥DÃD   ¦^ÂÐ¥DÃD    VFP ·R¥ÎªÌªÀ°Ï ­º­¶ -> VFP °Q½×°Ï ©Ò¦³ªº®É¶¡§¡¬° ¥x¥_®É¶¡ (GMT + 8 ¤p®É)
²Ä1­¶(¦@1­¶)

 
«e©¹:  
±z µLªk ¦b³o­Óª©­±µoªí¤å³¹
±z µLªk ¦b³o­Óª©­±¦^ÂФ峹
±z µLªk ¦b³o­Óª©­±½s¿è¤å³¹
±z µLªk ¦b³o­Óª©­±§R°£¤å³¹
±z µLªk ¦b³o­Óª©­±¶i¦æ§ë²¼
±z µLªk ¦b³o­Óª©­±ªþ¥[ÀÉ®×
±z µLªk ¦b³o­Óª©­±¤U¸üÀÉ®×


Powered by phpBB © 2001, 2005 phpBB Group
¥¿Å餤¤å»y¨t¥Ñ phpbb-tw ºûÅ@»s§@