根据Word表格自动生成SQL数据库脚本的VBScript代码
生活随笔
收集整理的這篇文章主要介紹了
根据Word表格自动生成SQL数据库脚本的VBScript代码
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
這是幾年前寫的根據(jù)Word表格自動生成SQL數(shù)據(jù)庫腳本的VBScript代碼,最近修改了下(原來只支持單個Word表格)使其支持一個Word文檔中的多個表格,生成的SQL文件名以Word文件名+.SQL,并和Word文檔存放在同一目錄下(如果需要更改文件名或目錄請修改sSQLFileName 變量),另外表格需要使用規(guī)定的格式(見附件),如果更換表格格式當(dāng)然也同時修改代碼了。 Sub CreateSQLFile()
'
' CreateSQLFile Macro
' 宏在 2005-4-15 由 czl 創(chuàng)建
'
????????'數(shù)組聲明
????????'有缺省值有字段數(shù)組
????????Dim DefaultFieldArr(35, 1) As String
????????'主鍵字段數(shù)組
????????Dim PKFieldArr(10) As String
????????'缺省數(shù)組長度
????????Dim DefaultArrLen As Integer
????????'主鍵數(shù)組長度
????????Dim PKArrLen As Integer
????????'上一行
????????Dim sPreLine As String
????????'是否有文本圖像字段
????????Dim bHasTextImageField As Boolean
????????'循環(huán)變量
????????Dim i As Integer
????????'最大字段描述行
????????Dim iMaxLine As Integer
????????'文檔表總數(shù)
????????Dim iTableCount As Integer
????????
????????'腳本文件保存路徑
????????'sSQLFileSavePath = "E:\Hugesoft\表設(shè)計\Scripts\"
????????'腳本文件名
????????sSQLFileName = ActiveDocument.FullName + ".SQL"
????????'創(chuàng)建文件
????????Set fs = CreateObject("Scripting.FileSystemObject")
????????Set a = fs.CreateTextFile(sSQLFileName, True)
????????
????????iTableCount = ActiveDocument.Tables.Count
????????For iIndex = 1 To iTableCount
????????
????????????????'取得表名
????????????????Set oTable = ActiveDocument.Tables(iIndex)
????????????????Set aCell = oTable.Rows(4).Cells(2)
????????????????Set myRange = ActiveDocument.Range(Start:=aCell.Range.Start, _
????????????????????????End:=aCell.Range.End - 1)
????????????????sTableName = myRange.Text
????????????????
????????????????'取表格的總行數(shù)
????????????????iRowCount = oTable.Rows.Count
????????????????
????????????????DefaultArrLen = 0
????????????????PKArrLen = 0
????????????????sPreLine = ""
????????????????bHasTextImageField = False
????????????????
????????????????'寫入腳本文件
????????????????a.WriteLine ("if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[" + sTableName + "]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)")
????????????????a.WriteLine ("drop table [dbo].[" + sTableName + "]")
????????????????a.WriteLine ("GO")
????????????????a.WriteLine ("")
????????????????a.WriteLine ("CREATE TABLE [dbo].[" + sTableName + "] (")
????????????????
????????????????For i = 9 To iRowCount
????????????????????????sLine = ""
????????????????????????'取得字段名
????????????????????????Set myRange = ActiveDocument.Range(Start:=oTable.Rows(i).Cells(2).Range.Start, _
????????????????????????????????End:=oTable.Rows(i).Cells(2).Range.End - 1)
????????????????????????sFieldName = myRange.Text
????????????????????????If sFieldName = "" Then
????????????????????????????????Exit For
????????????????????????End If
????????????????????????'取得數(shù)據(jù)類型
????????????????????????Set myRange = ActiveDocument.Range(Start:=oTable.Rows(i).Cells(4).Range.Start, _
????????????????????????????????End:=oTable.Rows(i).Cells(4).Range.End - 1)
????????????????????????sFieldType = myRange.Text
????????????????????????sFieldType = StrConv(sFieldType, vbLowerCase)
????????????????????????
????????????????????????'取得字段長度
????????????????????????Set myRange = ActiveDocument.Range(Start:=oTable.Rows(i).Cells(5).Range.Start, _
????????????????????????????????End:=oTable.Rows(i).Cells(5).Range.End - 1)
????????????????????????sFieldLen = myRange.Text
????????????????????????'取得小數(shù)位數(shù)
????????????????????????Set myRange = ActiveDocument.Range(Start:=oTable.Rows(i).Cells(6).Range.Start, _
????????????????????????????????End:=oTable.Rows(i).Cells(6).Range.End - 1)
????????????????????????sFieldDigLen = myRange.Text
????????????????????????'取得缺省值
????????????????????????Set myRange = ActiveDocument.Range(Start:=oTable.Rows(i).Cells(7).Range.Start, _
????????????????????????????????End:=oTable.Rows(i).Cells(7).Range.End - 1)
????????????????????????sFieldDefaultValue = myRange.Text
????????????????????????'取得允許空值
????????????????????????Set myRange = ActiveDocument.Range(Start:=oTable.Rows(i).Cells(8).Range.Start, _
????????????????????????????????End:=oTable.Rows(i).Cells(8).Range.End - 1)
????????????????????????sFieldAllowNull = myRange.Text
????????????????????????'取得是否主鍵
????????????????????????Set myRange = ActiveDocument.Range(Start:=oTable.Rows(i).Cells(9).Range.Start, _
????????????????????????????????End:=oTable.Rows(i).Cells(9).Range.End - 1)
????????????????????????sFieldIsPKey = myRange.Text
????????????????????????
????????????????????????'是否有文本圖像字段
????????????????????????If sFieldType = "text" Or sFieldType = "ntext" Or sFieldType = "image" Then
????????????????????????????????bHasTextImageField = True
????????????????????????End If
????????????????????????
????????????????????????'是否主鍵字段
????????????????????????If sFieldIsPKey = "√" Then
????????????????????????????????PKFieldArr(PKArrLen) = sFieldName
????????????????????????????????PKArrLen = PKArrLen + 1
????????????????????????End If
????????????????????????
????????????????????????'是否有缺省值
????????????????????????If sFieldDefaultValue <> "" Then
????????????????????????????????'處理全角字符
????????????????????????????????iLen = Len(sFieldDefaultValue)
????????????????????????????????If iLen >= 2 Then
????????????????????????????????????????If Left(sFieldDefaultValue, 1) = "‘" Then
????????????????????????????????????????????????sFieldDefaultValue = Chr(39) + Mid(sFieldDefaultValue, 2, iLen - 2) + Chr(39)
????????????????????????????????????????End If
????????????????????????????????End If
????????????????????????????????
????????????????????????????????DefaultFieldArr(DefaultArrLen, 0) = sFieldName
????????????????????????????????DefaultFieldArr(DefaultArrLen, 1) = sFieldDefaultValue
????????????????????????????????DefaultArrLen = DefaultArrLen + 1
????????????????????????End If
????????????????????????
????????????????????????'生成行
????????????????????????sLine = Chr(9) + "[" + sFieldName + "] [" + sFieldType + "] "
????????????????????????
????????????????????????If sFieldType = "varchar" Or sFieldType = "nvarchar" Then
????????????????????????????????sLine = sLine + "(" + sFieldLen + ") "
????????????????????????End If
????????????????????????
????????????????????????If sFieldType = "numeric" Then
????????????????????????????????sLine = sLine + "(" + sFieldLen + ", " + sFieldDigLen + ") "
????????????????????????End If
????????????????????????
????????????????????????If sFieldDigLen = "*" Then
????????????????????????????????'表示該列自動增長,一般作主鍵用
????????????????????????????????sLine = sLine + "IDENTITY (1, 1) "
????????????????????????End If
????????????????????????
????????????????????????If (sFieldType = "varchar") Or (sFieldType = "nvarchar") Or (sFieldType = "text") Or ((sFieldType = "ntext")) Then
????????????????????????????????sLine = sLine + "COLLATE Chinese_PRC_CI_AS "
????????????????????????End If
????????????????????????
????????????????????????If sFieldAllowNull = "√" Then
????????????????????????????????sLine = sLine + "NULL "
????????????????????????Else
????????????????????????????????sLine = sLine + "NOT NULL "
????????????????????????End If
????????????????????????
????????????????????????If sPreLine <> "" Then
????????????????????????????????a.WriteLine (sPreLine + ",")
????????????????????????End If
????????????????????????
????????????????????????sPreLine = sLine
????????????????Next i
????????????????
????????????????iMaxLine = i
????????????????
????????????????If sPreLine <> "" Then
????????????????????????a.WriteLine (sPreLine)
????????????????End If
????????????????
????????????????If bHasTextImageField Then
????????????????????????a.WriteLine (") ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]")
????????????????Else
????????????????????????a.WriteLine (") ON [PRIMARY]")
????????????????End If
????????????????a.WriteLine ("GO")
????????????????a.WriteLine ("")
????????????????
????????????????'生成主鍵描述
????????????????a.WriteLine ("ALTER TABLE [dbo].[" + sTableName + "] WITH NOCHECK ADD")
????????????????a.WriteLine (Chr(9) + "CONSTRAINT [PK_" + sTableName + "] PRIMARY KEY CLUSTERED")
????????????????a.WriteLine (Chr(9) + "(")
????????????????
????????????????sPreLine = ""
????????????????For i = 0 To PKArrLen - 1
????????????????????????sLine = Chr(9) + Chr(9) + "[" + PKFieldArr(i) + "]"
????????????????????????If sPreLine <> "" Then
????????????????????????????????a.WriteLine (sPreLine + ",")
????????????????????????End If
????????????????????????sPreLine = sLine
????????????????Next i
????????????????If sPreLine <> "" Then
????????????????????????a.WriteLine (sPreLine)
????????????????End If
????????????????a.WriteLine (Chr(9) + ") ON [PRIMARY]")
????????????????a.WriteLine ("GO")
????????????????a.WriteLine ("")
????????????????
????????????????'生成缺省值描述
????????????????If DefaultArrLen > 0 Then
????????????????????????a.WriteLine ("ALTER TABLE [dbo].[" + sTableName + "] WITH NOCHECK ADD")
????????????????????????sPreLine = ""
????????????????????????For i = 0 To DefaultArrLen - 1
????????????????????????????????sLine = Chr(9) + "CONSTRAINT [DF_" + sTableName + "_" + DefaultFieldArr(i, 0) + "] DEFAULT (" + DefaultFieldArr(i, 1) + ") FOR [" + DefaultFieldArr(i, 0) + "]"
????????????????????????????????If sPreLine <> "" Then
????????????????????????????????????????a.WriteLine (sPreLine + ",")
????????????????????????????????End If
????????????????????????????????sPreLine = sLine
????????????????????????Next i
????????????????????????If sPreLine <> "" Then
????????????????????????????????a.WriteLine (sPreLine)
????????????????????????End If
????????????????????????a.WriteLine ("GO")
????????????????????????a.WriteLine ("")
????????????????End If
????????????????
????????????????'生成索引描述
????????????????'查找索引描述開始行
????????????????iIndexStartLine = 0
????????????????
????????????????For i = iMaxLine To iRowCount
????????????????????????Set myRange = ActiveDocument.Range(Start:=oTable.Rows(i).Cells(1).Range.Start, _
????????????????????????????????End:=oTable.Rows(i).Cells(1).Range.End - 1)
????????????????????????sTmp = myRange.Text
????????????????????????If sTmp = "索引組成:" Then
????????????????????????????????iIndexStartLine = i
????????????????????????????????Exit For
????????????????????????End If
????????????????Next i
????????????????
????????????????'生成索引描述
????????????????If iIndexStartLine > 0 Then
????????????????????????For i = iIndexStartLine + 2 To iRowCount
????????????????????????????????'取得索引名稱
????????????????????????????????Set myRange = ActiveDocument.Range(Start:=oTable.Rows(i).Cells(2).Range.Start, _
????????????????????????????????????????End:=oTable.Rows(i).Cells(2).Range.End - 1)
????????????????????????????????sIndexName = myRange.Text
????????????????????????????????If sIndexName = "" Then
????????????????????????????????????????Exit For
????????????????????????????????End If
????????????????????????????????'取得索引列序列
????????????????????????????????Set myRange = ActiveDocument.Range(Start:=oTable.Rows(i).Cells(3).Range.Start, _
????????????????????????????????????????End:=oTable.Rows(i).Cells(3).Range.End - 1)
????????????????????????????????sIndexFieldList = myRange.Text
????????????????????????????????'寫入文件
????????????????????????????????a.WriteLine (" CREATE UNIQUE INDEX [" + sIndexName + "] ON [dbo].[" + sTableName + "](" + sIndexFieldList + ") ON [PRIMARY]")
????????????????????????????????a.WriteLine ("GO")
????????????????????????Next i
????????????????End If
????????Next iIndex
????????
????????a.Close
????????
????????MsgBox "成功生成腳本文件:" + Chr(13) + Chr(9) + sSQLFileName + "。"
End Sub
'
' CreateSQLFile Macro
' 宏在 2005-4-15 由 czl 創(chuàng)建
'
????????'數(shù)組聲明
????????'有缺省值有字段數(shù)組
????????Dim DefaultFieldArr(35, 1) As String
????????'主鍵字段數(shù)組
????????Dim PKFieldArr(10) As String
????????'缺省數(shù)組長度
????????Dim DefaultArrLen As Integer
????????'主鍵數(shù)組長度
????????Dim PKArrLen As Integer
????????'上一行
????????Dim sPreLine As String
????????'是否有文本圖像字段
????????Dim bHasTextImageField As Boolean
????????'循環(huán)變量
????????Dim i As Integer
????????'最大字段描述行
????????Dim iMaxLine As Integer
????????'文檔表總數(shù)
????????Dim iTableCount As Integer
????????
????????'腳本文件保存路徑
????????'sSQLFileSavePath = "E:\Hugesoft\表設(shè)計\Scripts\"
????????'腳本文件名
????????sSQLFileName = ActiveDocument.FullName + ".SQL"
????????'創(chuàng)建文件
????????Set fs = CreateObject("Scripting.FileSystemObject")
????????Set a = fs.CreateTextFile(sSQLFileName, True)
????????
????????iTableCount = ActiveDocument.Tables.Count
????????For iIndex = 1 To iTableCount
????????
????????????????'取得表名
????????????????Set oTable = ActiveDocument.Tables(iIndex)
????????????????Set aCell = oTable.Rows(4).Cells(2)
????????????????Set myRange = ActiveDocument.Range(Start:=aCell.Range.Start, _
????????????????????????End:=aCell.Range.End - 1)
????????????????sTableName = myRange.Text
????????????????
????????????????'取表格的總行數(shù)
????????????????iRowCount = oTable.Rows.Count
????????????????
????????????????DefaultArrLen = 0
????????????????PKArrLen = 0
????????????????sPreLine = ""
????????????????bHasTextImageField = False
????????????????
????????????????'寫入腳本文件
????????????????a.WriteLine ("if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[" + sTableName + "]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)")
????????????????a.WriteLine ("drop table [dbo].[" + sTableName + "]")
????????????????a.WriteLine ("GO")
????????????????a.WriteLine ("")
????????????????a.WriteLine ("CREATE TABLE [dbo].[" + sTableName + "] (")
????????????????
????????????????For i = 9 To iRowCount
????????????????????????sLine = ""
????????????????????????'取得字段名
????????????????????????Set myRange = ActiveDocument.Range(Start:=oTable.Rows(i).Cells(2).Range.Start, _
????????????????????????????????End:=oTable.Rows(i).Cells(2).Range.End - 1)
????????????????????????sFieldName = myRange.Text
????????????????????????If sFieldName = "" Then
????????????????????????????????Exit For
????????????????????????End If
????????????????????????'取得數(shù)據(jù)類型
????????????????????????Set myRange = ActiveDocument.Range(Start:=oTable.Rows(i).Cells(4).Range.Start, _
????????????????????????????????End:=oTable.Rows(i).Cells(4).Range.End - 1)
????????????????????????sFieldType = myRange.Text
????????????????????????sFieldType = StrConv(sFieldType, vbLowerCase)
????????????????????????
????????????????????????'取得字段長度
????????????????????????Set myRange = ActiveDocument.Range(Start:=oTable.Rows(i).Cells(5).Range.Start, _
????????????????????????????????End:=oTable.Rows(i).Cells(5).Range.End - 1)
????????????????????????sFieldLen = myRange.Text
????????????????????????'取得小數(shù)位數(shù)
????????????????????????Set myRange = ActiveDocument.Range(Start:=oTable.Rows(i).Cells(6).Range.Start, _
????????????????????????????????End:=oTable.Rows(i).Cells(6).Range.End - 1)
????????????????????????sFieldDigLen = myRange.Text
????????????????????????'取得缺省值
????????????????????????Set myRange = ActiveDocument.Range(Start:=oTable.Rows(i).Cells(7).Range.Start, _
????????????????????????????????End:=oTable.Rows(i).Cells(7).Range.End - 1)
????????????????????????sFieldDefaultValue = myRange.Text
????????????????????????'取得允許空值
????????????????????????Set myRange = ActiveDocument.Range(Start:=oTable.Rows(i).Cells(8).Range.Start, _
????????????????????????????????End:=oTable.Rows(i).Cells(8).Range.End - 1)
????????????????????????sFieldAllowNull = myRange.Text
????????????????????????'取得是否主鍵
????????????????????????Set myRange = ActiveDocument.Range(Start:=oTable.Rows(i).Cells(9).Range.Start, _
????????????????????????????????End:=oTable.Rows(i).Cells(9).Range.End - 1)
????????????????????????sFieldIsPKey = myRange.Text
????????????????????????
????????????????????????'是否有文本圖像字段
????????????????????????If sFieldType = "text" Or sFieldType = "ntext" Or sFieldType = "image" Then
????????????????????????????????bHasTextImageField = True
????????????????????????End If
????????????????????????
????????????????????????'是否主鍵字段
????????????????????????If sFieldIsPKey = "√" Then
????????????????????????????????PKFieldArr(PKArrLen) = sFieldName
????????????????????????????????PKArrLen = PKArrLen + 1
????????????????????????End If
????????????????????????
????????????????????????'是否有缺省值
????????????????????????If sFieldDefaultValue <> "" Then
????????????????????????????????'處理全角字符
????????????????????????????????iLen = Len(sFieldDefaultValue)
????????????????????????????????If iLen >= 2 Then
????????????????????????????????????????If Left(sFieldDefaultValue, 1) = "‘" Then
????????????????????????????????????????????????sFieldDefaultValue = Chr(39) + Mid(sFieldDefaultValue, 2, iLen - 2) + Chr(39)
????????????????????????????????????????End If
????????????????????????????????End If
????????????????????????????????
????????????????????????????????DefaultFieldArr(DefaultArrLen, 0) = sFieldName
????????????????????????????????DefaultFieldArr(DefaultArrLen, 1) = sFieldDefaultValue
????????????????????????????????DefaultArrLen = DefaultArrLen + 1
????????????????????????End If
????????????????????????
????????????????????????'生成行
????????????????????????sLine = Chr(9) + "[" + sFieldName + "] [" + sFieldType + "] "
????????????????????????
????????????????????????If sFieldType = "varchar" Or sFieldType = "nvarchar" Then
????????????????????????????????sLine = sLine + "(" + sFieldLen + ") "
????????????????????????End If
????????????????????????
????????????????????????If sFieldType = "numeric" Then
????????????????????????????????sLine = sLine + "(" + sFieldLen + ", " + sFieldDigLen + ") "
????????????????????????End If
????????????????????????
????????????????????????If sFieldDigLen = "*" Then
????????????????????????????????'表示該列自動增長,一般作主鍵用
????????????????????????????????sLine = sLine + "IDENTITY (1, 1) "
????????????????????????End If
????????????????????????
????????????????????????If (sFieldType = "varchar") Or (sFieldType = "nvarchar") Or (sFieldType = "text") Or ((sFieldType = "ntext")) Then
????????????????????????????????sLine = sLine + "COLLATE Chinese_PRC_CI_AS "
????????????????????????End If
????????????????????????
????????????????????????If sFieldAllowNull = "√" Then
????????????????????????????????sLine = sLine + "NULL "
????????????????????????Else
????????????????????????????????sLine = sLine + "NOT NULL "
????????????????????????End If
????????????????????????
????????????????????????If sPreLine <> "" Then
????????????????????????????????a.WriteLine (sPreLine + ",")
????????????????????????End If
????????????????????????
????????????????????????sPreLine = sLine
????????????????Next i
????????????????
????????????????iMaxLine = i
????????????????
????????????????If sPreLine <> "" Then
????????????????????????a.WriteLine (sPreLine)
????????????????End If
????????????????
????????????????If bHasTextImageField Then
????????????????????????a.WriteLine (") ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]")
????????????????Else
????????????????????????a.WriteLine (") ON [PRIMARY]")
????????????????End If
????????????????a.WriteLine ("GO")
????????????????a.WriteLine ("")
????????????????
????????????????'生成主鍵描述
????????????????a.WriteLine ("ALTER TABLE [dbo].[" + sTableName + "] WITH NOCHECK ADD")
????????????????a.WriteLine (Chr(9) + "CONSTRAINT [PK_" + sTableName + "] PRIMARY KEY CLUSTERED")
????????????????a.WriteLine (Chr(9) + "(")
????????????????
????????????????sPreLine = ""
????????????????For i = 0 To PKArrLen - 1
????????????????????????sLine = Chr(9) + Chr(9) + "[" + PKFieldArr(i) + "]"
????????????????????????If sPreLine <> "" Then
????????????????????????????????a.WriteLine (sPreLine + ",")
????????????????????????End If
????????????????????????sPreLine = sLine
????????????????Next i
????????????????If sPreLine <> "" Then
????????????????????????a.WriteLine (sPreLine)
????????????????End If
????????????????a.WriteLine (Chr(9) + ") ON [PRIMARY]")
????????????????a.WriteLine ("GO")
????????????????a.WriteLine ("")
????????????????
????????????????'生成缺省值描述
????????????????If DefaultArrLen > 0 Then
????????????????????????a.WriteLine ("ALTER TABLE [dbo].[" + sTableName + "] WITH NOCHECK ADD")
????????????????????????sPreLine = ""
????????????????????????For i = 0 To DefaultArrLen - 1
????????????????????????????????sLine = Chr(9) + "CONSTRAINT [DF_" + sTableName + "_" + DefaultFieldArr(i, 0) + "] DEFAULT (" + DefaultFieldArr(i, 1) + ") FOR [" + DefaultFieldArr(i, 0) + "]"
????????????????????????????????If sPreLine <> "" Then
????????????????????????????????????????a.WriteLine (sPreLine + ",")
????????????????????????????????End If
????????????????????????????????sPreLine = sLine
????????????????????????Next i
????????????????????????If sPreLine <> "" Then
????????????????????????????????a.WriteLine (sPreLine)
????????????????????????End If
????????????????????????a.WriteLine ("GO")
????????????????????????a.WriteLine ("")
????????????????End If
????????????????
????????????????'生成索引描述
????????????????'查找索引描述開始行
????????????????iIndexStartLine = 0
????????????????
????????????????For i = iMaxLine To iRowCount
????????????????????????Set myRange = ActiveDocument.Range(Start:=oTable.Rows(i).Cells(1).Range.Start, _
????????????????????????????????End:=oTable.Rows(i).Cells(1).Range.End - 1)
????????????????????????sTmp = myRange.Text
????????????????????????If sTmp = "索引組成:" Then
????????????????????????????????iIndexStartLine = i
????????????????????????????????Exit For
????????????????????????End If
????????????????Next i
????????????????
????????????????'生成索引描述
????????????????If iIndexStartLine > 0 Then
????????????????????????For i = iIndexStartLine + 2 To iRowCount
????????????????????????????????'取得索引名稱
????????????????????????????????Set myRange = ActiveDocument.Range(Start:=oTable.Rows(i).Cells(2).Range.Start, _
????????????????????????????????????????End:=oTable.Rows(i).Cells(2).Range.End - 1)
????????????????????????????????sIndexName = myRange.Text
????????????????????????????????If sIndexName = "" Then
????????????????????????????????????????Exit For
????????????????????????????????End If
????????????????????????????????'取得索引列序列
????????????????????????????????Set myRange = ActiveDocument.Range(Start:=oTable.Rows(i).Cells(3).Range.Start, _
????????????????????????????????????????End:=oTable.Rows(i).Cells(3).Range.End - 1)
????????????????????????????????sIndexFieldList = myRange.Text
????????????????????????????????'寫入文件
????????????????????????????????a.WriteLine (" CREATE UNIQUE INDEX [" + sIndexName + "] ON [dbo].[" + sTableName + "](" + sIndexFieldList + ") ON [PRIMARY]")
????????????????????????????????a.WriteLine ("GO")
????????????????????????Next i
????????????????End If
????????Next iIndex
????????
????????a.Close
????????
????????MsgBox "成功生成腳本文件:" + Chr(13) + Chr(9) + sSQLFileName + "。"
End Sub
?????? 使用方法:點Word菜單“工具→宏→宏”,單擊彈出對話框中右側(cè)的“創(chuàng)建”,進(jìn)入編輯器后把下面的代碼復(fù)制粘貼覆蓋缺省生成的代碼,完成后可以通過Word工具欄的自定義功能把宏放在工具欄,方便使用。
?????? 文中所用World表格參考格式請到下面的地址下載。??????
?????? 本文歡迎轉(zhuǎn)載,轉(zhuǎn)載地址:http://www.hugesoft.net/ContentPage.aspx?p1=010001&p2=85
轉(zhuǎn)載于:https://www.cnblogs.com/zhilunchen/archive/2008/09/19/1294505.html
總結(jié)
以上是生活随笔為你收集整理的根据Word表格自动生成SQL数据库脚本的VBScript代码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华夏银行信用卡年费多少
- 下一篇: ASP.NET中使用Global.asa