试试
Dim cmb1 As WinForm.ComboBox = e.Form.Controls("ComboBox1")
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
If trv.SelectedNode IsNot Nothing AndAlso trv.SelectedNode.Level=1 Then
Dim tx As String = trv.SelectedNode.Text
Dim txt As String = cmb1.Value & tx
Dim n As String
If DataTables(txt).dataCols.Contains("应交金额") = False Then
n = "1"
End If
Dim Builder As New ADOXBuilder
Builder.Open() '打开ADOXBuilder
With Builder.Tables(txt)
Dim drs As List(of DataRow) = DataTables("收费表管理").Select( "[班级名称]= '" & cmb1.value & "'")
For Each dr As DataRow In drs
Dim s As String=dr("收费项目")
If Tables(txt).Cols.Contains(s)= False Then
.AddColumn(s ,ADOXType.Double) '增加双精度型列
End If
Next
If n = "1" Then
.AddColumn("应交金额" ,ADOXType.Double)
End If
End With
Builder.Close() '关闭ADOXBuilder
DataTables(txt).Save()
DataTables.Unload(txt)
DataTables.Load(txt)
'Forms("收费管理").Open()
Tables("收费管理_Table1").DataSource = DataTables(txt)
End If
如果还有问题,看看运行到那一句代码出错