Export ACCESS to MYSQL : script VBA

[pastacode lang= »vba » manual= »Option%20Compare%20Database%0AOption%20Explicit%0A’%20exportSQL%20version%202.2%0A’%20www.cynergi.com%0A’%20%20%20Includes%20fixes%20for%20Access%20’95%20by%20Miguel%20de%20Reyna%0A’%20%20%20License%20update%20since%20version%202.1%0A’%0A’%20(C)%201997-2009%20Cynergi%20-%20www.cynergi.com%0A’%20(C)%20Pedro%20Freire%0A’%0A’%20This%20code%20is%20provided%20free%20for%20anyone’s%20use%20and%20is%20therefore%20without%20guarantee%20or%20support.%0A’%20This%20does%20NOT%20mean%20Cynergi%20delegates%20its%20copyright%20to%20anyone%20using%20it!%20You%20may%20change%20the%0A’%20code%20in%20any%20way%2C%20as%20long%20as%20this%20notice%20remains%20on%20the%20code%20and%20Cynergi%20is%20notified%20(if%20you%0A’%20publish%20the%20changes%3A%20if%20your%20changes%2Fcorrections%20prove%20valuable%20and%20are%20added%20to%20the%20code%2C%0A’%20you%20will%20be%20listed%20in%20a%20credit%20list%20on%20this%20file).%0A’%0A’%20You%20may%20NOT%20sell%20this%20as%20part%20of%20a%20non-free%20package%3A%0A’%20IF%20YOU%20HAVE%20PAID%20FOR%20THIS%20CODE%2C%20YOU%20HAVE%20BEEN%20ROBBED!%20CONTACT%20CYNERGI!%0A%0A’%20MODULE%0A’%20%20%20%22exportSQL%22%0A’%0A’%20GOAL%0A’%20%20%20Export%20all%20tables%20in%20a%20MS-Access%20database%20file%20to%202%20text%20files%3A%0A’%20%20%20one%20containing%20SQL%20instructions%20to%20delete%20the%20new%20tables%20to%20be%20created%2C%0A’%20%20%20and%20the%20other%20with%20SQL%20instructions%20to%20create%20and%20insert%20data%20into%0A’%20%20%20the%20new%20tables.%20The%20table%20structure%20and%20data%20will%20resemble%20as%20much%20as%0A’%20%20%20possible%20the%20current%20Access%20database.%0A’%0A’%20HOW%20TO%20USE%0A’%20%20%20Copy-and-paste%20this%20text%20file%20into%20an%20Access%20module%20and%20run%20the%20first%0A’%20%20%20(and%20only%20public)%20function.%20in%20more%20detail%2C%20you%3A%0A’%20%20%20*%20Open%20the%20Access%20.mdb%20file%20you%20wish%20to%20export%0A’%20%20%20*%20in%20the%20default%20database%20objects%20window%2C%20click%20on%20%22Modules%22%2C%20and%20then%20on%20%22New%22%0A’%20%20%20*%20The%20code%20window%20that%20opens%20has%20some%20pre-written%20text%20(code).%20Delete%20it.%0A’%20%20%20*%20Copy-and-paste%20this%20entire%20file%20to%20the%20code%20module%20window%0A’%20%20%20*%20You%20may%20hit%20the%20compile%20button%20(looks%20like%203%20sheets%20of%20paper%20with%20an%20arrow%20on%0A’%20%20%20%20%20top%20of%20them%2C%20pressing%20down%20on%20them)%2C%20or%20select%20Debug%2C%20Compile%20Loaded%20Modules%0A’%20%20%20%20%20from%20the%20top%20menu%2C%20just%20to%20make%20sure%20there%20are%20no%20errors%2C%20and%20that%20this%20code%0A’%20%20%20%20%20works%20on%20your%20Access%20version%20(it%20works%20on%20Access’97%20and%20should%20work%20on%20Access’95)%0A’%20%20%20*%20Close%20the%20code%20module%20window%20-%20windows%20will%20prompt%20you%20to%20save%20the%20code%3A%0A’%20%20%20%20%20answer%20%22Yes%22%2C%20and%20when%20promped%20for%20a%20name%20for%20the%20module%2C%20type%20anything%0A’%20%20%20%20%20(say%2C%20%22MexportSQL%22)%0A’%20%20%20The%20module%20is%20now%20part%20of%20your%20Access%20database.%20To%20run%20the%20export%2C%20you%3A%0A’%20%20%20*%20Re-open%20the%20code%20module%20(by%20double-clicking%20on%20it%2C%20or%20clicking%20%22Design%22%0A’%20%20%20%20%20with%20it%20selected).%20Move%20the%20cursor%20to%20where%20the%20first%20%22Function%22%20keyword%20appears.%0A’%20%20%20%20%20Press%20F5%20or%20select%20Run%2C%20Go%2FContinue%20from%20the%20top%20menu.%0A’%20%20%20*%20Alternativelly%2C%20click%20on%20%22Macros%22%20on%20the%20database%20objects%20window%2C%0A’%20%20%20%20%20and%20then%20on%20%22New%22.%20On%20the%20macro%20window%2C%20select%20%22RunCode%22%20as%20the%20macro%20action%2C%0A’%20%20%20%20%20and%20%22exportSQL%22%20as%20the%20function%20name%2C%20bellow.%20Save%20the%20macro%20similarly%20to%20the%0A’%20%20%20%20%20module%2C%20and%20this%20time%20double-clicking%20on%20it%2C%20or%20clicking%20%22Run%22%20will%20run%20the%20export.%0A’%0A’%20BEFORE%20RUNNING%20THE%20EXPORT%0A’%20%20%20Before%20running%20the%20export%2C%20be%20sure%20to%20check%20out%20the%20Export%20Options%20just%20bellow%20this%0A’%20%20%20text%2C%20and%20change%20any%20according%20to%20your%20wishes%20and%20specs.%0A’%0A’%20TECH%20DATA%0A’%20%20%20Public%20identifiers%3A%0A’%20%20%20*%20Only%20one%3A%20%22exportSQL%22%2C%20a%20function%20taking%20and%20returning%20no%20arguments.%20It%20runs%20the%20export.%0A’%20%20%20Functionallity%3A%0A’%20%20%20*%20Can%20export%20to%20mSQL%20v1%2C%20mSQL%20v2%20or%20MySQL-recognised%20SQL%20statements%0A’%20%20%20*%20Excellent%20respect%20for%20name%20conversion%2C%20namespace%20verification%2C%20type%20matching%2C%20etc.%0A’%20%20%20*%20Detects%20default%20values%20%22%3DNow()%22%2C%20%22%3DDate()%22%20and%20%22%3DTime()%22%20to%20create%20types%20like%20%22TIMESTAMP%22%0A’%20%20%20*%20Fully%20configurable%20via%20private%20constants%20on%20top%20of%20code%0A’%20%20%20*%20Exports%20two%20files%3A%20one%20for%20erasures%2C%20another%20for%20creations%20(useful%20when%20updating%20dbs)%0A’%20%20%20*%20Generates%20compatibility%20warnings%20when%20necessary%0A’%20%20%20*%20Code%20and%20generated%20files%20are%20paragraphed%20and%20easy%20to%20read%0A’%20%20%20*%20Access%20text%20and%20memo%20fields%20can%20have%20any%20type%20of%20line%20termination%3A%20%5Cn%5Cr%2C%20%5Cr%5Cn%2C%20%5Cn%20or%20%5Cr%0A’%20%20%20*%20Properly%20escapes%20text%20and%20memo%20fields%2C%20besides%20all%20types%20of%20binary%20fields%0A’%20%20%20*%20Closes%20all%20open%20objects%20and%20files%20on%20error%0A’%20%20%20*%20Known%20bugs%20%2F%20incomplete%20constructs%20are%20signalled%20with%20comments%20starting%20with%20%22!!!!%22%0A’%20%20%20*%20Two%20alternatives%20on%20absent%20date%2Ftime%20type%20on%20mSQL%3A%20REAL%20or%20CHAR%20field%0A%0A%0A’%20Export%20Options%20-%20change%20at%20will%0A%0A%23Const%20OFFICE97%20%3D%201%20%20%20%20’%200%3DFALSE%20(Office95%20assumed)%20%20%201%3DTRUE%0A%23Const%20DOCYESNO%20%3D%201%20%20%20%20’%201%3DOutput%20table%2Ffield%20description%20%200%3DDon’t%0A%0APrivate%20Const%20ESQL_VERSION%20As%20String%20%3D%20%222.1%22%0A%0APrivate%20Const%20DB_ENGINE%20As%20String%20%3D%20%22MY%22%20%20’%20USE%20ONLY%20%22M1%22%20(mSQL%20v1)%2C%20%22M2%22%20(mSQL%20v2)%20or%20%22MY%22%20(MySQL)%0APrivate%20Const%20DB_NAME%20As%20String%20%3D%20%22%22%20%20’%20Use%20empty%20string%20for%20current.%20Else%20use%20filename%20or%20DSN%20name%20of%20database%20to%20export%0APrivate%20Const%20DB_CONNECT%20As%20String%20%3D%20%22%22%20%20’%20Used%20only%20if%20above%20string%20is%20not%20empty%0APrivate%20Const%20MSQL_64kb_AVG%20As%20Long%20%3D%202048%20%20’%20ALWAYS%20%3C%2065536%20(to%20be%20consistent%20with%20MS%20Access).%20Set%20to%20max%20expected%20size%20of%20Access%20MEMO%20field%20(to%20preserve%20space%20in%20mSQL%20v1)%0APrivate%20Const%20WS_REPLACEMENT%20As%20String%20%3D%20%22_%22%20%20’%20Use%20%22%22%20to%20simply%20eat%20whitespaces%20in%20identifiers%20(table%20and%20field%20names)%0APrivate%20Const%20IDENT_MAX_SIZE%20As%20Integer%20%3D%2064%20%20’%20Suggest%2064.%20Max%20size%20of%20identifiers%20(table%20and%20field%20names)%0APrivate%20Const%20PREFIX_ON_KEYWORD%20As%20String%20%3D%20%22_%22%20%20’%20Prefix%20to%20add%20to%20identifier%2C%20if%20it%20is%20a%20reserved%20word%0APrivate%20Const%20SUFFIX_ON_KEYWORD%20As%20String%20%3D%20%22%22%20%20’%20Suffix%20to%20add%20to%20identifier%2C%20if%20it%20is%20a%20reserved%20word%0APrivate%20Const%20PREFIX_ON_INDEX%20As%20String%20%3D%20%22ix%22%20%20’%20Prefix%20to%20add%20to%20index%20identifier%2C%20to%20make%20it%20unique%20(mSQL%20v2)%0APrivate%20Const%20SUFFIX_ON_INDEX%20As%20String%20%3D%20%22%22%20%20’%20Suffix%20to%20add%20to%20index%20identifier%2C%20to%20make%20it%20unique%20(mSQL%20v2)%0APrivate%20Const%20ADD_SQL_FILE%20As%20String%20%3D%20%22c%3A%5Ctemp%5Cesql_add.txt%22%20%20’%20Use%20empty%20if%20open%20on%20%231.%20Will%20be%20overwritten%20if%20exists!%0APrivate%20Const%20DEL_SQL_FILE%20As%20String%20%3D%20%22c%3A%5Ctemp%5Cesql_del.txt%22%20%20’%20Use%20empty%20if%20open%20on%20%232.%20Will%20be%20overwritten%20if%20exists!%0APrivate%20Const%20LINE_BREAK%20As%20String%20%3D%20%22%5Cn%22%20%20’%20Try%20%22%3Cbr%3E%22.%20String%20to%20replace%20line%20breaks%20in%20text%20fields%0APrivate%20Const%20QUERY_SEPARATOR%20As%20String%20%3D%20%22%3B%22%20%20’%20Terminator%2Fseparator%20of%20SQL%20queries%20(to%20instruct%20some%20monitor%20program%20to%20execute%20them)%20%3A%20%22%5Cg%22%20or%20%22%3B%22%0APrivate%20Const%20COMMENT_PREFIX%20As%20String%20%3D%20%22%23%22%20%20’%20Use%20empty%20string%20for%20no%20comments%0APrivate%20Const%20DISPLAY_WARNINGS%20As%20Boolean%20%3D%20True%20%20’%20False%20to%20output%20the%20warnings%20to%20the%20files%2C%20only%0APrivate%20Const%20DATE_AS_STR%20As%20Boolean%20%3D%20True%20%20’%20False%20to%20use%20real%20number%20data%20type%20for%20date%2C%20time%20and%20timestamp%20(in%20mSQL%20only)%0APrivate%20Const%20PARA_INSERT_AFTER%20As%20Integer%20%3D%203%20%20’%20Field%20count%20after%20which%20print%20INSERTs%20different%20lines%0APrivate%20Const%20INDENT_SIZE%20As%20Integer%20%3D%205%20%20’%20Number%20of%20spaces%20on%20indents%0A%0A%0A’%20Global%20var%20to%20store%20inter-funtion%20data%0APrivate%20warnings%20As%20String%20%20’%20Not%20an%20option%3A%20do%20not%20set%20in%20any%20way%0A%0A%0A’%20Primary%20Export%20Function%0AFunction%20exportSQL()%0A%0AOn%20Error%20GoTo%20exportSQL_error%0A%0A%20%20%20%20Dim%20cdb%20As%20Database%0A%20%20%20%20Dim%20ctableix%20As%20Integer%2C%20ctablename%20As%20String%0A%0A%23If%20DOCYESNO%20Then%0A%20%20%20%20Dim%20nam%2C%20des%2C%20ast%20As%20String%0A%23End%20If%0A%0A%20%20%20%20If%20DB_NAME%20%3D%20%22%22%20Then%0A%20%20%20%20%20%20%20%20Set%20cdb%20%3D%20CurrentDb()%0A%20%20%20%20Else%0A%20%20%20%20%20%20%20%20Set%20cdb%20%3D%20OpenDatabase(DB_NAME%2C%20False%2C%20True%2C%20DB_CONNECT)%20’%20Shared%2C%20read-only%0A%20%20%20%20End%20If%0A%20%20%20%20%0A%20%20%20%20If%20ADD_SQL_FILE%20%3C%3E%20%22%22%20Then%20Open%20ADD_SQL_FILE%20For%20Output%20As%20%231%0A%20%20%20%20If%20DEL_SQL_FILE%20%3C%3E%20%22%22%20Then%20Open%20DEL_SQL_FILE%20For%20Output%20As%20%232%0A%0A%20%20%20%20DoCmd.Hourglass%20True%0A%0A%20%20%20%20If%20COMMENT_PREFIX%20%3C%3E%20%22%22%20Then%0A%20%20%20%20%20%20%20%20Print%20%231%2C%20COMMENT_PREFIX%20%26%20%22%20Exported%20from%20MS%20Access%20to%20%22%20%26%20IIf(Left%24(DB_ENGINE%2C%202)%20%3D%20%22MY%22%2C%20%22MySQL%22%2C%20%22mSQL%22)%0A%20%20%20%20%20%20%20%20Print%20%231%2C%20COMMENT_PREFIX%20%26%20%22%20(C)%201997-2009%20Cynergi%20-%20www.cynergi.com%22%0A%20%20%20%20%20%20%20%20Print%20%231%2C%20COMMENT_PREFIX%0A%20%20%20%20%0A%20%20%20%20%20%20%20%20Print%20%232%2C%20COMMENT_PREFIX%20%26%20%22%20Exported%20from%20MS%20Access%20to%20%22%20%26%20IIf(Left%24(DB_ENGINE%2C%202)%20%3D%20%22MY%22%2C%20%22MySQL%22%2C%20%22mSQL%22)%0A%20%20%20%20%20%20%20%20Print%20%232%2C%20COMMENT_PREFIX%20%26%20%22%20(C)%201997-2009%20Cynergi%20-%20www.cynergi.com%22%0A%20%20%20%20%20%20%20%20Print%20%232%2C%20COMMENT_PREFIX%0A%20%20%20%20End%20If%0A%20%20%20%20%0A%23If%20DOCYESNO%20Then%0A%20%20%20%20’%20Print%20list%20of%20tables%0A%20%20%20%20Print%20%231%2C%20COMMENT_PREFIX%20%26%20%22%20EXPORT%20DATE%2FTIME%3A%20%22%20%26%20Date%20%26%20%22%20%22%20%26%20Time%0A%20%20%20%20Print%20%231%2C%20COMMENT_PREFIX%20%26%20%22%20SOURCE%20DATA%20BASE%3A%20%22%20%26%20cdb.Name%20%26%20%22%20%20(Created%20by%20Access%20V.%22%20%26%20cdb.Version%20%26%20%22)%22%0A%20%20%20%20Print%20%231%2C%20COMMENT_PREFIX%20%26%20%22%20USER%20%20%20%20%20%20%20%20%20%20%20%20%3A%20%22%20%26%20DBEngine.Workspaces(0).UserName%0A%20%20%20%20Print%20%231%2C%20COMMENT_PREFIX%20%26%20%22%20EXPORTED%20BY%20%20%20%20%20%3A%20%22%20%26%20%22exportSQLD%20%22%20%26%20ESQL_VERSION%20%26%20%22%20(on%20Access%20V.%22%20%26%20DBEngine.Version%20%26%20%22)%22%0A%20%20%20%20Print%20%231%2C%20COMMENT_PREFIX%0A%20%20%20%20Print%20%231%2C%20COMMENT_PREFIX%20%26%20%22%20%20TABLE%20%20(*%20means%20name%20changed)%22%20%26%20Space(8)%20%26%20%22DESCRIPTION%22%0A%20%20%20%20Print%20%231%2C%20COMMENT_PREFIX%20%26%20%22%20%20%22%20%26%20String(35%2C%20%22-%22)%20%26%20%22%20%20%22%20%26%20String(40%2C%20%22-%22)%0A%20%20%20%20For%20ctableix%20%3D%200%20To%20cdb.TableDefs.Count%20-%201%0A%20%20%20%20%20%20%20%20If%20(((cdb.TableDefs(ctableix).Attributes%20And%20DB_SYSTEMOBJECT)%20Or%20_%0A%20%20%20%20%20%20%20%20(cdb.TableDefs(ctableix).Attributes%20And%20DB_HIDDENOBJECT)))%20%3D%200%20Then%0A%20%20%20%20%20%20%20%20%20%20%20%20nam%20%3D%20conv_name(%22%22%20%26%20cdb.TableDefs(ctableix).Name)%0A%20%20%20%20%20%20%20%20%20%20%20%20ast%20%3D%20IIf(UCase(nam)%20%3D%20UCase(cdb.TableDefs(ctableix).Name)%2C%20%22%20%20%22%2C%20%22*%20%22)%0A%20%20%20%20%20%20%20%20%20%20%20%20On%20Error%20Resume%20Next%0A%20%20%20%20%20%20%20%20%20%20%20%20des%20%3D%20cdb.TableDefs(ctableix).Properties(%22Description%22)%0A%20%20%20%20%20%20%20%20%20%20%20%20If%20Err%20%3D%203270%20Then%20des%20%3D%20%22N%2FA%22%20Else%20If%20Err%20%3C%3E%200%20Then%20GoTo%20exportSQL_error%0A%20%20%20%20%20%20%20%20%20%20%20%20On%20Error%20GoTo%20exportSQL_error%0A%20%20%20%20%20%20%20%20%20%20%20%20If%20Len(nam)%20%3E%2035%20Then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Print%20%231%2C%20COMMENT_PREFIX%20%26%20ast%20%26%20nam%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Print%20%231%2C%20COMMENT_PREFIX%20%26%20%22%20%20%22%20%26%20Space(37)%20%26%20des%0A%20%20%20%20%20%20%20%20%20%20%20%20Else%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Print%20%231%2C%20COMMENT_PREFIX%20%26%20ast%20%26%20nam%20%26%20Space(37%20-%20Len(nam))%20%26%20des%0A%20%20%20%20%20%20%20%20%20%20%20%20End%20If%0A%20%20%20%20%20%20%20%20End%20If%0A%20%20%20%20Next%0A%20%20%20%20Print%20%231%2C%20COMMENT_PREFIX%0A%20%20%20%20Print%20%231%2C%0A%0A%23End%20If%0A%0A%20%20%20%20’Go%20through%20the%20table%20definitions%0A%20%20%20%20For%20ctableix%20%3D%200%20To%20cdb.TableDefs.Count%20-%201%0A%0A%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20Dim%20cfieldix%20As%20Integer%2C%20cfieldname%20As%20String%0A%20%20%20%20%20%20%20%20Dim%20fieldlst%20As%20String%2C%20sqlcode%20As%20String%0A%20%20%20%20%20%20%20%20Dim%20primary_found%20As%20Boolean%0A%20%20%20%20%20%20%20%20Dim%20crs%20As%20Recordset%0A%20%20%20%20%0A%20%20%20%20%20%20%20%20’%20Let’s%20take%20only%20the%20visible%20tables%0A%20%20%20%20%20%20%20%20If%20(((cdb.TableDefs(ctableix).Attributes%20And%20DB_SYSTEMOBJECT)%20Or%20_%0A%20%20%20%20%20%20%20%20(cdb.TableDefs(ctableix).Attributes%20And%20DB_HIDDENOBJECT)))%20%3D%200%20Then%0A%20%20%20%20%20%20%20%20%20%20%20%20%0A%23If%20DOCYESNO%20Then%0A%20%20%20%20%20%20%20%20’%20Print%20field%20descriptions%0A%20%20%20%20%20%20%20%20Print%20%231%2C%0A%20%20%20%20%20%20%20%20Print%20%231%2C%20COMMENT_PREFIX%20%26%20String(79%20-%20Len(COMMENT_PREFIX)%2C%20%22-%22)%0A%20%20%20%20%20%20%20%20Print%20%231%2C%20COMMENT_PREFIX%20%26%20%22%20TABLE%3A%20%22%20%26%20conv_name(%22%22%20%26%20cdb.TableDefs(ctableix).Name)%0A%20%20%20%20%20%20%20%20Print%20%231%2C%20COMMENT_PREFIX%0A%20%20%20%20%20%20%20%20Print%20%231%2C%20COMMENT_PREFIX%20%26%20%22%20%20%20FIELD%20(*%20means%20field%20name%20changed)%22%20%26%20Space(2)%20%26%20%22DESCRIPTION%22%0A%20%20%20%20%20%20%20%20Print%20%231%2C%20COMMENT_PREFIX%20%26%20%22%20%20%22%20%26%20String(35%2C%20%22-%22)%20%26%20%22%20%20%22%20%26%20String(40%2C%20%22-%22)%0A%20%20%20%20%20%20%20%20For%20cfieldix%20%3D%200%20To%20cdb.TableDefs(ctableix).Fields.Count%20-%201%0A%20%20%20%20%20%20%20%20%20%20%20%20nam%20%3D%20conv_name(%22%22%20%26%20cdb.TableDefs(ctableix).Fields(cfieldix).Name)%0A%20%20%20%20%20%20%20%20%20%20%20%20ast%20%3D%20IIf(UCase(nam)%20%3D%20UCase(cdb.TableDefs(ctableix).Fields(cfieldix).Name)%2C%20%22%20%20%22%2C%20%22*%20%22)%0A%20%20%20%20%20%20%20%20%20%20%20%20On%20Error%20Resume%20Next%0A%20%20%20%20%20%20%20%20%20%20%20%20des%20%3D%20cdb.TableDefs(ctableix).Fields(cfieldix).Properties(%22Description%22)%0A%20%20%20%20%20%20%20%20%20%20%20%20If%20Err%20%3D%203270%20Then%20des%20%3D%20%22N%2FA%22%20Else%20If%20Err%20%3C%3E%200%20Then%20GoTo%20exportSQL_error%0A%20%20%20%20%20%20%20%20%20%20%20%20On%20Error%20GoTo%20exportSQL_error%0A%20%20%20%20%20%20%20%20%20%20%20%20If%20Len(nam)%20%3E%2035%20Then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Print%20%231%2C%20COMMENT_PREFIX%20%26%20ast%20%26%20nam%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Print%20%231%2C%20COMMENT_PREFIX%20%26%20%22%20%20%22%20%26%20Space(37)%20%26%20des%0A%20%20%20%20%20%20%20%20%20%20%20%20Else%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Print%20%231%2C%20COMMENT_PREFIX%20%26%20ast%20%26%20nam%20%26%20Space(37%20-%20Len(nam))%20%26%20des%0A%20%20%20%20%20%20%20%20%20%20%20%20End%20If%0A%20%20%20%20%20%20%20%20Next%0A%20%20%20%20%20%20%20%20Print%20%231%2C%20COMMENT_PREFIX%0A%23End%20If%0A%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20ctablename%20%3D%20conv_name(%22%22%20%26%20cdb.TableDefs(ctableix).Name)%0A%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20Print%20%232%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20Print%20%232%2C%20%22DROP%20TABLE%20%22%20%26%20ctablename%20%26%20QUERY_SEPARATOR%0A%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20’%20CREATE%20clause%0A%20%20%20%20%20%20%20%20%20%20%20%20Print%20%231%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20Print%20%231%2C%20%22CREATE%20TABLE%20%22%20%26%20ctablename%0A%20%20%20%20%20%20%20%20%20%20%20%20Print%20%231%2C%20Space%24(INDENT_SIZE)%20%26%20%22(%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20warnings%20%3D%20%22%22%0A%20%20%20%20%20%20%20%20%20%20%20%20fieldlst%20%3D%20%22%22%0A%20%20%20%20%20%20%20%20%20%20%20%20primary_found%20%3D%20False%0A%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20’%20loop%20thorugh%20each%20field%20in%20the%20table%0A%20%20%20%20%20%20%20%20%20%20%20%20For%20cfieldix%20%3D%200%20To%20cdb.TableDefs(ctableix).Fields.Count%20-%201%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Dim%20typestr%20As%20String%2C%20fieldsz%20As%20Integer%2C%20dvstr%20As%20String%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Dim%20found_ix%20As%20Boolean%2C%20cindex%20As%20Index%2C%20cfield%20As%20Field%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20’%20if%20this%20is%20not%20the%20first%20iteration%2C%20add%20separators%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20If%20fieldlst%20%3C%3E%20%22%22%20Then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20fieldlst%20%3D%20fieldlst%20%26%20%22%2C%20%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Print%20%231%2C%20%22%2C%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20End%20If%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20’%20get%20field%20name%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20cfieldname%20%3D%20conv_name(%22%22%20%26%20cdb.TableDefs(ctableix).Fields(cfieldix).Name)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20fieldlst%20%3D%20fieldlst%20%26%20cfieldname%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20’%20translate%20types%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20If%20DB_ENGINE%20%3D%20%22M1%22%20Or%20DB_ENGINE%20%3D%20%22M2%22%20Then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Select%20Case%20cdb.TableDefs(ctableix).Fields(cfieldix).Type%0A%0A%23If%20OFFICE97%20Then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Case%20dbChar%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20typestr%20%3D%20%22CHAR(%22%20%26%20cdb.TableDefs(ctableix).Fields(cfieldix).Size%20%26%20%22)%22%0A%23End%20If%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Case%20dbText%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20fieldsz%20%3D%20cdb.TableDefs(ctableix).Fields(cfieldix).Size%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20If%20fieldsz%20%3D%200%20Then%20fieldsz%20%3D%20255%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20typestr%20%3D%20%22CHAR(%22%20%26%20fieldsz%20%26%20%22)%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Case%20dbBoolean%2C%20dbByte%2C%20dbInteger%2C%20dbLong%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20typestr%20%3D%20%22INT%22%0A%23If%20OFFICE97%20Then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Case%20dbDouble%2C%20dbFloat%2C%20dbSingle%0A%23Else%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Case%20dbDouble%2C%20dbSingle%0A%23End%20If%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20typestr%20%3D%20%22REAL%22%0A%23If%20OFFICE97%20Then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Case%20dbCurrency%2C%20dbDecimal%2C%20dbNumeric%0A%23Else%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Case%20dbCurrency%0A%23End%20If%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20typestr%20%3D%20%22REAL%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20warn%20%22In%20new%20field%20’%22%20%26%20cfieldname%20%26%20%22’%2C%20currency%2FBCD%20will%20be%20converted%20to%20REAL%20-%20there%20may%20be%20precision%20loss!%22%2C%20False%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Case%20dbDate%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20typestr%20%3D%20IIf(DATE_AS_STR%2C%20%22CHAR(19)%22%2C%20%22REAL%22)%20’%20use%20Access%20internal%20format%3A%20IEEE%2064-bit%20(8-byte)%20FP%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20warn%20%22In%20new%20field%20’%22%20%26%20cfieldname%20%26%20%22’%2C%20date%2Ftime%2Ftimestamp%20will%20be%20converted%20to%20%22%20%26%20typestr%20%26%20%22.%22%2C%20False%0A%23If%20OFFICE97%20Then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Case%20dbTime%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20typestr%20%3D%20IIf(DATE_AS_STR%2C%20%22CHAR(8)%22%2C%20%22REAL%22)%20’%20use%20Access%20internal%20format%3A%20IEEE%2064-bit%20(8-byte)%20FP%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20warn%20%22In%20new%20field%20’%22%20%26%20cfieldname%20%26%20%22’%2C%20date%2Ftime%2Ftimestamp%20will%20be%20converted%20to%20%22%20%26%20typestr%20%26%20%22.%22%2C%20False%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Case%20dbTimeStamp%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20typestr%20%3D%20IIf(DATE_AS_STR%2C%20%22CHAR(19)%22%2C%20%22REAL%22)%20’%20use%20Access%20internal%20format%3A%20IEEE%2064-bit%20(8-byte)%20FP%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20warn%20%22In%20new%20field%20’%22%20%26%20cfieldname%20%26%20%22’%2C%20date%2Ftime%2Ftimestamp%20will%20be%20converted%20to%20%22%20%26%20typestr%20%26%20%22.%22%20%26%20IIf(DB_ENGINE%20%3D%20%22M2%22%2C%20%22%20Consider%20using%20pseudo%20field%20’_timestamp’.%22%2C%20%22%22)%2C%20False%0A%23End%20If%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Case%20dbMemo%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20If%20DB_ENGINE%20%3D%20%22M2%22%20Then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20typestr%20%3D%20%22TEXT(%22%20%26%20MSQL_64kb_AVG%20%26%20%22)%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Else%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20typestr%20%3D%20%22CHAR(%22%20%26%20MSQL_64kb_AVG%20%26%20%22)%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20warn%20%22In%20new%20field%20’%22%20%26%20cfieldname%20%26%20%22’%2C%20dbMemo%20is%20not%20supported%20by%20mSQL%20v1%20-%20fields%20larger%20than%20MSQL_64kb_AVG%20(%22%20%26%20MSQL_64kb_AVG%20%26%20%22)%20will%20not%20be%20accepted!%22%2C%20False%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20End%20If%0A%23If%20OFFICE97%20Then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Case%20dbBinary%2C%20dbVarBinary%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20typestr%20%3D%20%22CHAR(255)%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20warn%20%22In%20new%20field%20’%22%20%26%20cfieldname%20%26%20%22’%2C%20dbBinary%20and%20dbVarBinary%20are%20not%20supported%20by%20mSQL!%20-%20will%20use%20a%20text%20(CHAR(255))%20field.%22%2C%20True%0A%23End%20If%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Case%20dbLongBinary%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20typestr%20%3D%20%22CHAR(%22%20%26%20MSQL_64kb_AVG%20%26%20%22)%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20warn%20%22In%20new%20field%20’%22%20%26%20cfieldname%20%26%20%22’%2C%20dbLongBinary%20is%20not%20supported%20by%20mSQL!%20-%20will%20use%20a%20text%20(CHAR(%22%20%26%20MSQL_64kb_AVG%20%26%20%22))%20field.%22%2C%20True%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Case%20Else%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20warn%20%22In%20new%20field%20’%22%20%26%20cfieldname%20%26%20%22’%2C%20dbBigInt%20and%20dbGUID%20are%20not%20currently%20supported!%22%2C%20True%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Error%205%20%20’%20invalid%20Procedure%20Call%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20End%20Select%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Else%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Select%20Case%20cdb.TableDefs(ctableix).Fields(cfieldix).Type%0A%23If%20OFFICE97%20Then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Case%20dbBinary%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20typestr%20%3D%20%22TINYBLOB%22%0A%23End%20If%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Case%20dbBoolean%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20typestr%20%3D%20%22TINYINT%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Case%20dbByte%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20typestr%20%3D%20%22TINYINT%20UNSIGNED%22%0A%23If%20OFFICE97%20Then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Case%20dbChar%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20typestr%20%3D%20%22CHAR(%22%20%26%20cdb.TableDefs(ctableix).Fields(cfieldix).Size%20%26%20%22)%22%0A%23End%20If%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Case%20dbCurrency%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20typestr%20%3D%20%22DECIMAL(20%2C4)%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Case%20dbDate%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20typestr%20%3D%20%22DATETIME%22%0A%23If%20OFFICE97%20Then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Case%20dbDecimal%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20typestr%20%3D%20%22DECIMAL(20%2C4)%22%0A%23End%20If%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Case%20dbDouble%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20typestr%20%3D%20%22REAL%22%0A%23If%20OFFICE97%20Then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Case%20dbFloat%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20typestr%20%3D%20%22REAL%22%0A%23End%20If%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Case%20dbInteger%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20typestr%20%3D%20%22SMALLINT%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Case%20dbLong%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20typestr%20%3D%20%22INT%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Case%20dbLongBinary%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20typestr%20%3D%20%22LONGBLOB%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Case%20dbMemo%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20typestr%20%3D%20%22LONGBLOB%22%20%20’%20!!!!!%20MySQL%20bug!%20Replace%20by%20LONGTEXT%20when%20corrected!%0A%23If%20OFFICE97%20Then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Case%20dbNumeric%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20typestr%20%3D%20%22DECIMAL(20%2C4)%22%0A%23End%20If%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Case%20dbSingle%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20typestr%20%3D%20%22FLOAT%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Case%20dbText%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20fieldsz%20%3D%20cdb.TableDefs(ctableix).Fields(cfieldix).Size%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20If%20fieldsz%20%3D%200%20Then%20fieldsz%20%3D%20255%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20typestr%20%3D%20%22CHAR(%22%20%26%20fieldsz%20%26%20%22)%22%0A%23If%20OFFICE97%20Then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Case%20dbTime%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20typestr%20%3D%20%22TIME%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Case%20dbTimeStamp%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20typestr%20%3D%20%22TIMESTAMP%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Case%20dbVarBinary%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20typestr%20%3D%20%22TINYBLOB%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Case%20dbBigInt%2C%20dbGUID%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20warn%20%22In%20new%20field%20’%22%20%26%20cfieldname%20%26%20%22’%2C%20dbBigInt%20and%20dbGUID%20are%20not%20currently%20supported!%22%2C%20True%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Error%205%20%20’%20invalid%20Procedure%20Call%0A%23End%20If%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Case%20Else%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20typestr%20%3D%20%22LONGBLOB%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20End%20Select%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20End%20If%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20’%20check%20not%20null%20and%20auto-increment%20properties%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20If%20((cdb.TableDefs(ctableix).Fields(cfieldix).Attributes%20And%20dbAutoIncrField)%20%3C%3E%200)%20Then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20If%20Left%24(DB_ENGINE%2C%202)%20%3D%20%22MY%22%20Then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20typestr%20%3D%20typestr%20%26%20%22%20NOT%20NULL%20AUTO_INCREMENT%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Else%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20typestr%20%3D%20typestr%20%26%20%22%20NOT%20NULL%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20warn%20%22In%20new%20field%20’%22%20%26%20cfieldname%20%26%20%22’%2C%20mSQL%20does%20not%20support%20auto-increment%20fields!%20-%20they%20will%20be%20pure%20INTs.%22%20%26%20IIf(DB_ENGINE%20%3D%20%22M2%22%2C%20%22%20Consider%20using%20pseudo%20field%20’_rowid’%20or%20SEQUENCEs.%22%2C%20%22%22)%2C%20False%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20End%20If%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20ElseIf%20cdb.TableDefs(ctableix).Fields(cfieldix).Required%20%3D%20True%20Then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20typestr%20%3D%20typestr%20%26%20%22%20NOT%20NULL%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20End%20If%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20’%20default%20value%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20dvstr%20%3D%20cdb.TableDefs(ctableix).Fields(cfieldix).DefaultValue%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20If%20dvstr%20%3C%3E%20%22%22%20Then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20If%20Left%24(DB_ENGINE%2C%202)%20%3C%3E%20%22MY%22%20Then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20warn%20%22In%20new%20field%20’%22%20%26%20cfieldname%20%26%20%22’%2C%20mSQL%20does%20not%20support%20default%20values!%20-%20they%20won’t%20be%20initialised.%22%2C%20False%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Else%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20If%20cdb.TableDefs(ctableix).Fields(cfieldix).Required%20%3D%20False%20Then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20’warn%20%22In%20new%20field%20’%22%20%26%20cfieldname%20%26%20%22’%2C%20MySQL%20needs%20NOT%20NULL%20to%20support%20default%20values!%20-%20it%20won’t%20be%20set%20a%20default.%22%2C%20False%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20typestr%20%3D%20typestr%20%26%20%22%20NOT%20NULL%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20End%20If%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20If%20Left%24(dvstr%2C%201)%20%3D%20%22%22%22%22%20Then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20typestr%20%3D%20typestr%20%26%20%22%20DEFAULT%20’%22%20%26%20conv_str(Mid%24(dvstr%2C%202%2C%20Len(dvstr)%20-%202))%20%26%20%22’%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20End%20If%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20If%20((LCase(dvstr)%20%3D%20%22now()%22%20Or%20LCase(dvstr)%20%3D%20%22date()%22%20Or%20LCase(dvstr)%20%3D%20%22time()%22)%20And%20_%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20(Left%24(typestr%2C%205)%20%3D%20%22DATE%20%22%20Or%20Left%24(typestr%2C%205)%20%3D%20%22TIME%20%22%20Or%20Left%24(typestr%2C%209)%20%3D%20%22DATETIME%20%22))%20Then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20typestr%20%3D%20%22TIMESTAMP%20%22%20%26%20Right%24(typestr%2C%20Len(typestr)%20-%20InStr(typestr%2C%20%22%20%22))%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20End%20If%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20If%20LCase(dvstr)%20%3D%20%22no%22%20Then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20typestr%20%3D%20typestr%20%26%20%22%20DEFAULT%200%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20ElseIf%20LCase(dvstr)%20%3D%20%22yes%22%20Then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20typestr%20%3D%20typestr%20%26%20%22%20DEFAULT%201%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Else%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20typestr%20%3D%20typestr%20%26%20%22%20DEFAULT%20%22%20%26%20dvstr%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20End%20If%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20End%20If%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20End%20If%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20’%20check%20if%20primary%20key%20(for%20mSQL%20v1)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20If%20DB_ENGINE%20%3D%20%22M1%22%20Then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20found_ix%20%3D%20False%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20For%20Each%20cindex%20In%20cdb.TableDefs(ctableix).Indexes%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20If%20cindex.Primary%20Then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20For%20Each%20cfield%20In%20cindex.Fields%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20If%20cfield.Name%20%3D%20cdb.TableDefs(ctableix).Fields(cfieldix).Name%20Then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20found_ix%20%3D%20True%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Exit%20For%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20End%20If%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Next%20cfield%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20If%20found_ix%20Then%20Exit%20For%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20End%20If%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Next%20cindex%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20If%20found_ix%20Then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20If%20primary_found%20Then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20warn%20%22On%20new%20table%20’%22%20%26%20ctablename%20%26%20%22’%2C%20mSQL%20v1%20does%20not%20support%20more%20than%20one%20PRIMARY%20KEY!%20Only%20first%20key%20was%20set.%22%2C%20False%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Else%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20typestr%20%3D%20typestr%20%26%20%22%20PRIMARY%20KEY%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20primary_found%20%3D%20True%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20End%20If%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20End%20If%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20End%20If%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20’print%20out%20field%20info%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Print%20%231%2C%20Space%24(INDENT_SIZE)%20%26%20cfieldname%20%26%20Space%24(IDENT_MAX_SIZE%20-%20Len(cfieldname)%20%2B%202)%20%26%20typestr%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20Next%20cfieldix%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20’%20terminate%20CREATE%20clause%0A%20%20%20%20%20%20%20%20%20%20%20%20If%20DB_ENGINE%20%3D%20%22M2%22%20Then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Print%20%231%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Print%20%231%2C%20Space%24(INDENT_SIZE)%20%26%20%22)%22%20%26%20QUERY_SEPARATOR%0A%20%20%20%20%20%20%20%20%20%20%20%20End%20If%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20’%20primary%20key%20and%20other%20index%20declaration%0A%20%20%20%20%20%20%20%20%20%20%20%20If%20DB_ENGINE%20%3D%20%22M2%22%20Or%20Left%24(DB_ENGINE%2C%202)%20%3D%20%22MY%22%20Then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20For%20Each%20cindex%20In%20cdb.TableDefs(ctableix).Indexes%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20sqlcode%20%3D%20%22%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20For%20Each%20cfield%20In%20cindex.Fields%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20sqlcode%20%3D%20sqlcode%20%26%20IIf(sqlcode%20%3D%20%22%22%2C%20%22%22%2C%20%22%2C%20%22)%20%26%20conv_name(cfield.Name)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Next%20cfield%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20If%20DB_ENGINE%20%3D%20%22M2%22%20Then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Print%20%231%2C%20%22CREATE%20%22%20%26%20IIf(cindex.Unique%2C%20%22UNIQUE%20%22%2C%20%22%22)%20%26%20%22INDEX%20%22%20%26%20_%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20conv_name(PREFIX_ON_INDEX%20%26%20cindex.Name%20%26%20SUFFIX_ON_INDEX)%20%26%20%22%20ON%20%22%20%26%20_%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20ctablename%20%26%20%22%20(%22%20%26%20sqlcode%20%26%20%22)%22%20%26%20QUERY_SEPARATOR%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Else%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Print%20%231%2C%20%22%2C%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Print%20%231%2C%20Space%24(INDENT_SIZE)%20%26%20IIf(cindex.Primary%2C%20%22PRIMARY%20%22%2C%20%22%22)%20%26%20_%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22KEY%20(%22%20%26%20sqlcode%20%26%20%22)%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20End%20If%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Next%20cindex%0A%20%20%20%20%20%20%20%20%20%20%20%20End%20If%0A%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20’%20terminate%20CREATE%20clause%0A%20%20%20%20%20%20%20%20%20%20%20%20If%20DB_ENGINE%20%3C%3E%20%22M2%22%20Then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Print%20%231%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Print%20%231%2C%20Space%24(INDENT_SIZE)%20%26%20%22)%22%20%26%20QUERY_SEPARATOR%0A%20%20%20%20%20%20%20%20%20%20%20%20End%20If%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20’%20print%20any%20warnings%20bellow%20it%0A%20%20%20%20%20%20%20%20%20%20%20%20If%20COMMENT_PREFIX%20%3C%3E%20%22%22%20And%20warnings%20%3C%3E%20%22%22%20Then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20If%20DB_ENGINE%20%3D%20%22M2%22%20Then%20Print%20%231%2C%20COMMENT_PREFIX%20%26%20%22%20%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Print%20%231%2C%20warnings%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20warnings%20%3D%20%22%22%0A%20%20%20%20%20%20%20%20%20%20%20%20End%20If%0A%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20Print%20%231%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20’%20INSERT%20clause%0A%20%20%20%20%20%20%20%20%20%20%20%20Set%20crs%20%3D%20cdb.OpenRecordset(cdb.TableDefs(ctableix).Name)%0A%20%20%20%20%20%20%20%20%20%20%20%20If%20crs.RecordCount%20%3C%3E%200%20Then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20’%20loop%20thorugh%20each%20record%20in%20the%20table%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20crs.MoveFirst%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Do%20Until%20crs.EOF%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20’%20start%20paragraphing%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20sqlcode%20%3D%20%22INSERT%20INTO%20%22%20%26%20ctablename%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20If%20crs.Fields.Count%20%3E%20PARA_INSERT_AFTER%20Then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Print%20%231%2C%20sqlcode%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20If%20DB_ENGINE%20%3D%20%22M1%22%20Then%20Print%20%231%2C%20Space%24(INDENT_SIZE)%20%26%20%22(%22%20%26%20fieldlst%20%26%20%22)%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Print%20%231%2C%20%22VALUES%20(%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20sqlcode%20%3D%20Space%24(INDENT_SIZE)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Else%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20If%20DB_ENGINE%20%3D%20%22M1%22%20Then%20sqlcode%20%3D%20sqlcode%20%26%20%22%20(%22%20%26%20fieldlst%20%26%20%22)%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20sqlcode%20%3D%20sqlcode%20%26%20%22%20VALUES%20(%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20End%20If%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20’%20loop%20through%20each%20field%20in%20each%20record%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20For%20cfieldix%20%3D%200%20To%20crs.Fields.Count%20-%201%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20’%20based%20on%20type%2C%20prepare%20the%20field%20value%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20If%20IsNull(crs.Fields(cfieldix).Value)%20Then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20sqlcode%20%3D%20sqlcode%20%26%20%22NULL%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Else%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Select%20Case%20crs.Fields(cfieldix).Type%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Case%20dbBoolean%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20sqlcode%20%3D%20sqlcode%20%26%20IIf(crs.Fields(cfieldix).Value%20%3D%20True%2C%20%221%22%2C%20%220%22)%0A%23If%20OFFICE97%20Then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Case%20dbChar%2C%20dbText%2C%20dbMemo%0A%23Else%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Case%20dbText%2C%20dbMemo%0A%23End%20If%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20sqlcode%20%3D%20sqlcode%20%26%20%22’%22%20%26%20conv_str(crs.Fields(cfieldix).Value)%20%26%20%22’%22%0A%23If%20OFFICE97%20Then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Case%20dbDate%2C%20dbTimeStamp%0A%23Else%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Case%20dbDate%0A%23End%20If%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20If%20Left%24(DB_ENGINE%2C%202)%20%3D%20%22MY%22%20Or%20DATE_AS_STR%20Then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20sqlcode%20%3D%20sqlcode%20%26%20%22’%22%20%26%20Format(crs.Fields(cfieldix).Value%2C%20%22YYYY-MM-DD%20HH%3AMM%3ASS%22)%20%26%20%22’%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Else%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20’print%20in%20Access%20internal%20format%3A%20IEEE%2064-bit%20(8-byte)%20FP%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20sqlcode%20%3D%20sqlcode%20%26%20%22’%22%20%26%20Format(crs.Fields(cfieldix).Value%2C%20%22%23.%23%23%23%23%23%23%23%23%23%22)%20%26%20%22’%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20End%20If%0A%23If%20OFFICE97%20Then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Case%20dbTime%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20If%20Left%24(DB_ENGINE%2C%202)%20%3D%20%22MY%22%20Or%20DATE_AS_STR%20Then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20sqlcode%20%3D%20sqlcode%20%26%20%22’%22%20%26%20Format(crs.Fields(cfieldix).Value%2C%20%22HH%3AMM%3ASS%22)%20%26%20%22’%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Else%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20’print%20in%20Access%20internal%20format%3A%20IEEE%2064-bit%20(8-byte)%20FP%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20sqlcode%20%3D%20sqlcode%20%26%20%22’%22%20%26%20Format(crs.Fields(cfieldix).Value%2C%20%22%23.%23%23%23%23%23%23%23%23%23%22)%20%26%20%22’%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20End%20If%0A%23End%20If%0A%23If%20OFFICE97%20Then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Case%20dbBinary%2C%20dbLongBinary%2C%20dbVarBinary%0A%23Else%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Case%20dbLongBinary%0A%23End%20If%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20sqlcode%20%3D%20sqlcode%20%26%20%22’%22%20%26%20conv_bin(crs.Fields(cfieldix).Value)%20%26%20%22’%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Case%20Else%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20sqlcode%20%3D%20sqlcode%20%26%20conv_str(crs.Fields(cfieldix).Value)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20End%20Select%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20End%20If%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20’%20paragraph%20separators%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20If%20cfieldix%20%3C%20crs.Fields.Count%20-%201%20Then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20sqlcode%20%3D%20sqlcode%20%26%20%22%2C%20%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20If%20crs.Fields.Count%20%3E%20PARA_INSERT_AFTER%20Then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Print%20%231%2C%20sqlcode%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20sqlcode%20%3D%20Space%24(INDENT_SIZE)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20End%20If%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20End%20If%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Next%20cfieldix%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20’%20print%20out%20result%20and%20any%20warnings%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20sqlcode%20%3D%20sqlcode%20%26%20IIf(crs.Fields.Count%20%3E%20PARA_INSERT_AFTER%2C%20%22%20)%22%2C%20%22)%22)%20%26%20QUERY_SEPARATOR%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Print%20%231%2C%20sqlcode%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20If%20COMMENT_PREFIX%20%3C%3E%20%22%22%20And%20warnings%20%3C%3E%20%22%22%20Then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Print%20%231%2C%20warnings%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20warnings%20%3D%20%22%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20End%20If%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20If%20crs.Fields.Count%20%3E%20PARA_INSERT_AFTER%20Then%20Print%20%231%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20crs.MoveNext%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Loop%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20Else%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20’%20if%20there%20is%20no%20data%20on%20the%20table%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20If%20COMMENT_PREFIX%20%3C%3E%20%22%22%20Then%20Print%20%231%2C%20COMMENT_PREFIX%20%26%20%22%20This%20table%20has%20no%20data%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20End%20If%0A%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20crs.Close%0A%20%20%20%20%20%20%20%20%20%20%20%20Set%20crs%20%3D%20Nothing%0A%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20End%20If%20%20’print%20only%20unhidden%20tables%0A%20%20%20%20%0A%20%20%20%20Next%20ctableix%0A%20%20%20%20%0AexportSQL_exit%3A%0A%20%20%20%20Close%20%232%0A%20%20%20%20Close%20%231%0A%20%20%20%20%0A%20%20%20%20cdb.Close%0A%20%20%20%20Set%20cdb%20%3D%20Nothing%0A%0A%20%20%20%20DoCmd.Hourglass%20False%0A%20%20%20%20%0A%20%20%20%20Call%20MsgBox(%22OK%22%2C%200%2C%20%22OK%22)%0A%0A%20%20%20%20Exit%20Function%0A%0AexportSQL_error%3A%0A%20%20%20%20MsgBox%20Err.Description%0A%20%20%20%20Resume%20exportSQL_exit%0A%0AEnd%20Function%0A%0A%0APrivate%20Function%20conv_name(strname%20As%20String)%20As%20String%0A%20%20%20%20Dim%20i%20As%20Integer%2C%20str%20As%20String%0A%0A%20%20%20%20’%20replace%20inner%20spaces%20with%20WS_REPLACEMENT%0A%20%20%20%20str%20%3D%20strname%0A%20%20%20%20i%20%3D%201%0A%20%20%20%20While%20i%20%3C%3D%20Len(str)%0A%20%20%20%20%20%20%20%20Select%20Case%20Mid%24(str%2C%20i%2C%201)%0A%20%20%20%20%20%20%20%20%20%20%20%20Case%20%22%20%22%2C%20Chr%24(9)%2C%20Chr%24(10)%2C%20Chr%24(13)%20%20’%20space%2C%20tab%2C%20newline%2C%20carriage%20return%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20str%20%3D%20Left%24(str%2C%20i%20-%201)%20%26%20WS_REPLACEMENT%20%26%20Right%24(str%2C%20Len(str)%20-%20i)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20i%20%3D%20i%20%2B%20Len(WS_REPLACEMENT)%0A%20%20%20%20%20%20%20%20%20%20%20%20Case%20Else%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20i%20%3D%20i%20%2B%201%0A%20%20%20%20%20%20%20%20End%20Select%0A%20%20%20%20Wend%0A%20%20%20%20’%20restrict%20tablename%20to%20IDENT_MAX_SIZE%20chars%2C%20*after*%20eating%20spaces%0A%20%20%20%20str%20%3D%20Left%24(str%2C%20IDENT_MAX_SIZE)%0A%20%20%20%20’%20check%20for%20reserved%20words%0A%20%20%20%20conv_name%20%3D%20str%0A%20%20%20%20If%20Left%24(DB_ENGINE%2C%202)%20%3D%20%22MY%22%20Then%0A%20%20%20%20%20%20%20%20Select%20Case%20LCase%24(str)%0A%20%20%20%20%20%20%20%20%20%20%20%20Case%20%22add%22%2C%20%22all%22%2C%20%22alter%22%2C%20%22and%22%2C%20%22as%22%2C%20%22asc%22%2C%20%22auto_increment%22%2C%20%22between%22%2C%20%22bigint%22%2C%20%22binary%22%2C%20%22blob%22%2C%20%22both%22%2C%20%22by%22%2C%20%22cascade%22%2C%20%22char%22%2C%20%22character%22%2C%20%22change%22%2C%20%22check%22%2C%20%22column%22%2C%20%22columns%22%2C%20%22create%22%2C%20%22data%22%2C%20%22datetime%22%2C%20%22dec%22%2C%20_%0A%20%20%20%20%20%20%20%20%20%20%20%20%22decimal%22%2C%20%22default%22%2C%20%22delete%22%2C%20%22desc%22%2C%20%22describe%22%2C%20%22distinct%22%2C%20%22double%22%2C%20%22drop%22%2C%20%22escaped%22%2C%20%22enclosed%22%2C%20%22explain%22%2C%20%22fields%22%2C%20%22float%22%2C%20%22float4%22%2C%20%22float8%22%2C%20%22foreign%22%2C%20%22from%22%2C%20%22for%22%2C%20%22full%22%2C%20%22grant%22%2C%20%22group%22%2C%20%22having%22%2C%20_%0A%20%20%20%20%20%20%20%20%20%20%20%20%22ignore%22%2C%20%22in%22%2C%20%22index%22%2C%20%22infile%22%2C%20%22insert%22%2C%20%22int%22%2C%20%22integer%22%2C%20%22interval%22%2C%20%22int1%22%2C%20%22int2%22%2C%20%22int3%22%2C%20%22int4%22%2C%20%22int8%22%2C%20%22into%22%2C%20%22is%22%2C%20%22key%22%2C%20%22keys%22%2C%20%22leading%22%2C%20%22like%22%2C%20%22lines%22%2C%20%22limit%22%2C%20%22lock%22%2C%20%22load%22%2C%20%22long%22%2C%20%22longblob%22%2C%20_%0A%20%20%20%20%20%20%20%20%20%20%20%20%22longtext%22%2C%20%22match%22%2C%20%22mediumblob%22%2C%20%22mediumtext%22%2C%20%22mediumint%22%2C%20%22middleint%22%2C%20%22numeric%22%2C%20%22not%22%2C%20%22null%22%2C%20%22on%22%2C%20%22option%22%2C%20%22optionally%22%2C%20%22or%22%2C%20%22order%22%2C%20%22outfile%22%2C%20%22partial%22%2C%20%22precision%22%2C%20%22primary%22%2C%20%22procedure%22%2C%20%22privileges%22%2C%20_%0A%20%20%20%20%20%20%20%20%20%20%20%20%22read%22%2C%20%22real%22%2C%20%22references%22%2C%20%22regexp%22%2C%20%22repeat%22%2C%20%22replace%22%2C%20%22restrict%22%2C%20%22rlike%22%2C%20%22select%22%2C%20%22set%22%2C%20%22show%22%2C%20%22smallint%22%2C%20%22sql_big_tables%22%2C%20%22sql_big_selects%22%2C%20%22sql_select_limit%22%2C%20%22straight_join%22%2C%20%22table%22%2C%20%22tables%22%2C%20_%0A%20%20%20%20%20%20%20%20%20%20%20%20%22terminated%22%2C%20%22tinyblob%22%2C%20%22tinytext%22%2C%20%22tinyint%22%2C%20%22trailing%22%2C%20%22to%22%2C%20%22unique%22%2C%20%22unlock%22%2C%20%22unsigned%22%2C%20%22update%22%2C%20%22usage%22%2C%20%22values%22%2C%20%22varchar%22%2C%20%22varying%22%2C%20%22with%22%2C%20%22write%22%2C%20%22where%22%2C%20%22zerofill%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20conv_name%20%3D%20Left%24(PREFIX_ON_KEYWORD%20%26%20str%20%26%20SUFFIX_ON_KEYWORD%2C%20IDENT_MAX_SIZE)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20If%20(str%20%3D%20conv_name)%20Then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20warn%20%22In%20identifier%20’%22%20%26%20strname%20%26%20%22’%2C%20the%20new%20form%20’%22%20%26%20strname%20%26%20_%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22’%20is%20a%20reserved%20word%2C%20and%20PREFIX_ON_KEYWORD%20(‘%22%20%26%20_%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20PREFIX_ON_KEYWORD%20%26%20%22’)%20and%20SUFFIX_ON_KEYWORD%20(‘%22%20%26%20SUFFIX_ON_KEYWORD%20%26%20_%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22’)%20make%20it%20larger%20than%20IDENT_MAX_SIZE%2C%20and%20after%20cut%20it%20is%20the%20same%20as%20the%20original!%20%22%20%26%20_%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22This%20is%20usually%20caused%20by%20a%20void%20or%20empty%20PREFIX_ON_KEYWORD.%22%2C%20True%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Error%205%20%20’%20invalid%20Procedure%20Call%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20End%20If%0A%20%20%20%20%20%20%20%20End%20Select%0A%20%20%20%20End%20If%0AEnd%20Function%0A%0A%0APrivate%20Function%20conv_str(str%20As%20String)%20As%20String%0A%20%20%20%20Dim%20i%20As%20Integer%2C%20nlstr%20As%20String%2C%20rstr%20As%20Variant%0A%20%20%20%20%0A%20%20%20%20nlstr%20%3D%20%22%22%0A%20%20%20%20rstr%20%3D%20Null%0A%20%20%20%20i%20%3D%201%0A%20%20%20%20While%20i%20%3C%3D%20Len(str)%0A%20%20%20%20%20%20%20%20Select%20Case%20Mid%24(str%2C%20i%2C%201)%0A%20%20%20%20%20%20%20%20%20%20%20%20Case%20Chr%24(0)%20%20’%20ASCII%20NUL%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20nlstr%20%3D%20%22%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20rstr%20%3D%20%22%5C0%22%0A%20%20%20%20%20%20%20%20%20%20%20%20Case%20Chr%24(8)%20%20’%20backspace%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20nlstr%20%3D%20%22%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20rstr%20%3D%20%22%5Cb%22%0A%20%20%20%20%20%20%20%20%20%20%20%20Case%20Chr%24(9)%20%20’%20tab%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20nlstr%20%3D%20%22%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20rstr%20%3D%20%22%5Ct%22%0A%20%20%20%20%20%20%20%20%20%20%20%20Case%20%22’%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20nlstr%20%3D%20%22%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20rstr%20%3D%20%22%5C’%22%0A%20%20%20%20%20%20%20%20%20%20%20%20Case%20%22%22%22%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20nlstr%20%3D%20%22%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20rstr%20%3D%20%22%5C%22%22%22%0A%20%20%20%20%20%20%20%20%20%20%20%20Case%20%22%5C%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20nlstr%20%3D%20%22%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20rstr%20%3D%20%22%5C%5C%22%0A%20%20%20%20%20%20%20%20%20%20%20%20Case%20Chr%24(10)%2C%20Chr%24(13)%20%20’%20line%20feed%20and%20carriage%20return%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20If%20nlstr%20%3C%3E%20%22%22%20And%20nlstr%20%3C%3E%20Mid%24(str%2C%20i%2C%201)%20Then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20’%20there%20was%20a%20previous%20newline%20and%20this%20is%20its%20pair%3A%20eat%20it%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20rstr%20%3D%20%22%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20nlstr%20%3D%20%22%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Else%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20’%20this%20is%20a%20fresh%20newline%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20rstr%20%3D%20LINE_BREAK%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20nlstr%20%3D%20Mid%24(str%2C%20i%2C%201)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20End%20If%0A%20%20%20%20%20%20%20%20%20%20%20%20Case%20Else%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20nlstr%20%3D%20%22%22%0A%20%20%20%20%20%20%20%20End%20Select%0A%20%20%20%20%20%20%20%20If%20Not%20IsNull(rstr)%20Then%0A%20%20%20%20%20%20%20%20%20%20%20%20str%20%3D%20Left%24(str%2C%20i%20-%201)%20%26%20rstr%20%26%20Right%24(str%2C%20Len(str)%20-%20i)%0A%20%20%20%20%20%20%20%20%20%20%20%20i%20%3D%20i%20%2B%20Len(rstr)%0A%20%20%20%20%20%20%20%20%20%20%20%20rstr%20%3D%20Null%0A%20%20%20%20%20%20%20%20Else%0A%20%20%20%20%20%20%20%20%20%20%20%20i%20%3D%20i%20%2B%201%0A%20%20%20%20%20%20%20%20End%20If%0A%20%20%20%20Wend%0A%20%20%20%20conv_str%20%3D%20str%0AEnd%20Function%0A%0A%0APrivate%20Function%20conv_bin(str%20As%20String)%20As%20String%0A%20%20%20%20Dim%20i%20As%20Integer%2C%20rstr%20As%20String%0A%20%20%20%20%0A%20%20%20%20rstr%20%3D%20%22%22%0A%20%20%20%20i%20%3D%201%0A%20%20%20%20While%20i%20%3C%3D%20Len(str)%0A%20%20%20%20%20%20%20%20Select%20Case%20Mid%24(str%2C%20i%2C%201)%0A%20%20%20%20%20%20%20%20%20%20%20%20Case%20Chr%24(0)%20%20’%20ASCII%20NUL%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20rstr%20%3D%20%22%5C0%22%0A%20%20%20%20%20%20%20%20%20%20%20%20Case%20Chr%24(8)%20%20’%20backspace%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20rstr%20%3D%20%22%5Cb%22%0A%20%20%20%20%20%20%20%20%20%20%20%20Case%20Chr%24(9)%20%20’%20tab%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20rstr%20%3D%20%22%5Ct%22%0A%20%20%20%20%20%20%20%20%20%20%20%20Case%20%22’%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20rstr%20%3D%20%22%5C’%22%0A%20%20%20%20%20%20%20%20%20%20%20%20Case%20%22%22%22%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20rstr%20%3D%20%22%5C%22%22%22%0A%20%20%20%20%20%20%20%20%20%20%20%20Case%20%22%5C%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20rstr%20%3D%20%22%5C%5C%22%0A%20%20%20%20%20%20%20%20%20%20%20%20Case%20Chr%24(10)%20%20’%20line%20feed%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20rstr%20%3D%20%22%5Cn%22%0A%20%20%20%20%20%20%20%20%20%20%20%20Case%20Chr%24(13)%20%20’%20carriage%20return%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20rstr%20%3D%20%22%5Cr%22%0A%20%20%20%20%20%20%20%20End%20Select%0A%20%20%20%20%20%20%20%20If%20rstr%20%3C%3E%20%22%22%20Then%0A%20%20%20%20%20%20%20%20%20%20%20%20str%20%3D%20Left%24(str%2C%20i%20-%201)%20%26%20rstr%20%26%20Right%24(str%2C%20Len(str)%20-%20i)%0A%20%20%20%20%20%20%20%20%20%20%20%20i%20%3D%20i%20%2B%20Len(rstr)%0A%20%20%20%20%20%20%20%20%20%20%20%20rstr%20%3D%20%22%22%0A%20%20%20%20%20%20%20%20Else%0A%20%20%20%20%20%20%20%20%20%20%20%20i%20%3D%20i%20%2B%201%0A%20%20%20%20%20%20%20%20End%20If%0A%20%20%20%20Wend%0A%20%20%20%20conv_bin%20%3D%20str%0AEnd%20Function%0A%0A%0APrivate%20Sub%20warn(str%20As%20String%2C%20abortq%20As%20Boolean)%0A%20%20%20%20If%20DISPLAY_WARNINGS%20Then%20MsgBox%20str%2C%20vbOKOnly%20Or%20vbExclamation%2C%20%22Warning%22%0A%20%20%20%20warnings%20%3D%20warnings%20%26%20COMMENT_PREFIX%20%26%20%22%20Warning%3A%20%22%20%26%20str%20%26%20Chr%24(13)%20%26%20Chr%24(10)%0AEnd%20Sub%0A%0A%0A%0A%0A%0A%0A » message= »Script VBA import ACCESS in MYSQL » highlight= » » provider= »manual »/]