以文本方式查看主题 - Foxtable(狐表) (http://www.foxtable.com/bbs/index.asp) -- 专家坐堂 (http://www.foxtable.com/bbs/list.asp?boardid=2) ---- [求助]动态修改表结构问题 (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=154170) |
-- 作者:薛翁 -- 发布时间:2020/9/6 22:24:00 -- [求助]动态修改表结构问题 我在做工资程序时碰到一个头疼的问题 恳请赐教!谢谢! 在工资系统中用户自定义了“工资结构”表 有列名、类型和宽度(如:姓名,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!") [此贴子已经被作者于2021/4/20 2:31:19编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/9/6 22:29:00 -- 1、所有开发功能在编译后都无法使用 2、如果是外部表,可以使用sql更改:https://www.baidu.com/baidu?word=SQL+更改列,内部表没有办法 建议在开发阶段就设置足够大的列长度
|