'------删除"表名"为空的行------------------------------
DataTables("表A").DeleteFor("表名 is null") '表名为空行
'------列出外部数据源ckgl中的所有表名------------------
Dim lst2 As new List(of String)
lst2 = Connections("ckgl").GetTableNames
'------定义一个集合,其值为表A中不重复的表名------------
Dim lst3 As new List(of String)
lst3 = DataTables("表A").GetValues("表名")
'------无创建表所需数据时,给出提示---------------------
Dim i As Integer
If lst2.Contains(lst3(i)) Then
MessageBox.show("表A中无创建表所需数据","提示")
End If
'------有创建表所需数据时创建表------------------------------------------
For Each nm3 As String In lst3 '将集合lst3中的每一个元素循环执行一次下述代码
If lst2.Contains(nm3) Then '集合lst2中包含lst3中的元素时
Dim Builder As New ADOXBuilder("ckgl") '定义一个动态创建表和列的变量,并指定数据源名称
Dim tbl As ADOXTable
Builder.Open() '打开ADOXBuilder
tbl = Builder.NewTable(nm3) '创建表
For Each dr As DataRow In DataTables("表A").Select("表名 = '" & nm3 & "'")
With tbl
Select Case dr("类型")
Case "String"
.AddColumn(dr("字段名") ,ADOXType.String ,dr("长度"))
Case "Integer"
.AddColumn(dr("字段名") ,ADOXType.Integer)
Case "double"
.AddColumn(dr("字段名") ,ADOXType.Double)
Case "datetime"
.AddColumn(dr("字段名") ,ADOXType.DateTime)
Case "text"
.AddColumn(dr("字段名") ,ADOXType.Text ,dr("长度"))
End Select
End With
Next
Builder.AddTable(tbl, True, True) '增加表
Builder.Close()
MessageBox.show("数据表创建成功","提示")
End If
Next