一个自动生成db2SQL的宏!【分享给大家】解决思路

一个自动生成db2SQL的宏!【分享给大家】
由于以前没有用过VB,这两天花了点时间学习了一下VB,然后写一个用Excel自动生成db2SQL的宏!这样生成后建就方便多了。程序可能有好多Bug,请多多指教。
下面是表格中的数据:


ACGDM-股东移植表
序号 字段英文名 字段中文名 数据类型 键值 空值 备注
1 GDBRNO 联社号 CHAR(2) y NOT NULL
2 GDSBNO 网点号 CHAR(3)
3 GDCUNM 股东姓名 CHAR(10)
4 GDSEXX 股东性别 CHAR(1) NOT NULL
5 GDADDR 股东地址 CHAR(42)

AEADA-代收电费地区对照表
序号 字段英文名 字段中文名 数据类型 键值 空值 备注
1 ADLETT 地区字母代码 CHAR(2)
2 ADNUMB 地区数字代码 CHAR(2) NOT NULL
3 ADSTCD 记录状态 CHAR(1)

AEDTA-代收明细表
序号 字段英文名 字段中文名 数据类型 键值 空值 备注
1 DTCUNO 户号 CHAR(10) NOT NULL
2 DTYEAR 年 CHAR(4) y NOT NULL
3 DTMONT 月 CHAR(2)


注:在excel表格中,每一行为空行,上面三个表的表与表之间的有一个空行。

下面是写在宏中的程序:
VB code
 
Private Sub test1()
   
  Dim fsA, fA, tsA
 
 
  '##################################
  '
  '  功能:自动生成SQL建表语句
  '  author:XXX
  '  date:20101021
  '
  '##################################
   
    Dim iFirstRow As Long
    iFirstRow = 1
   
  '##################################
    Dim iEndRow As Long
    iEndRow = 20    '末行行数,要准确填上
  '##################################
    Dim mode As String
    mode = "SDM" + "." + "S01" + "_"    '表的模式名
 
    '第一个文件
    Set fsA = CreateObject("Scripting.FileSystemObject")
    fsA.CreateTextFile "D:\VB\" + "CreateSDM" + ".sql"
    Set fA = fsA.GetFile("D:\VB\" + "CreateSDM" + ".sql")
    Set tsA = fA.OpenAsTextStream(2)
   
   
    '第二个文件
    Set fsB = CreateObject("Scripting.FileSystemObject")
    fsB.CreateTextFile "D:\VB\temp\" + "CreateSDM" + ".sql"
    Set fB = fsB.GetFile("D:\VB\temp\" + "CreateSDM" + ".sql")
    Set tsB = fB.OpenAsTextStream(2)
   
    '第三个文件
    Set fsC = CreateObject("Scripting.FileSystemObject")
    fsC.CreateTextFile "D:\VB\temp\" + "PK" + ".sql"
    Set fC = fsC.GetFile("D:\VB\temp\" + "PK" + ".sql")
    Set tsC = fC.OpenAsTextStream(2)
   
       
   
    While iFirstRow <= iEndRow
       
        Dim table As String
        Dim strLen As Long
        Dim subCol As Long
       
        Dim tableName As String    '表名
        Dim tableNameDemo As String  '表中文名
       
        Dim fieldName As String        '字段名
        Dim fieldNameDemo As String        '字段中文名
        Dim fieldType As String        '字段类型
        Dim fieldNull As String        '字段空值
        Dim fieldPK As String          '主键