我在做工资程序时碰到一个头疼的问题 恳请赐教!谢谢!
在工资系统中用户自定义了“工资结构”表
有列名、类型和宽度(如:姓名,C,4)
外表数据源的"当前工资表"中除第一个列外,其他列均删除
执行下面的程序后达到预期效果。
Dim Names As New List(Of String)
For Each cn As Col In Tables("当前工资表").Cols
names.Add(cn.name)
Next
Dim Builder As New ADOXBuilder("CAIWU")
Builder.Open() '打开ADOXBuilder
With Builder.Tables("当前工资表")
For i As Integer = 1 To Names.Count -1
.DeleteColumn(names(i))
Next
End With
Builder.Close()
下面这段增加列的程序无法运行,提示错误:
对 COM 组件的调用返回了错误 HRESULT E_FAIL。
(我按帮助所示,创建外部数据源的表没有问题,是增加列的问题)
请老师看一下这段程序有什么错误。
Dim jg As Table = Tables("工资结构")
Dim Builder As New ADOXBuilder("CAIWU") '要指定数据源名称
Builder.Open()
With Builder.Tables("当前工资表")
For Each r As Row In jg.Rows
Dim zdm As String = r("列名")
Dim lx As String = r("类型")
Dim kd As Integer = r("宽度")
If lx = "C" Then
.AddColumn( zdm ,ADOXType.String, kd )
ElseIf lx = "N" Then
.AddColumn( zdm ,ADOXType.Double )
End If
Next
End With
Builder.Close()
MessageBox.Show("OK!")