以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  如何修改MDB文件的结构  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=51759)

--  作者:zhangchi96
--  发布时间:2014/6/2 23:32:00
--  如何修改MDB文件的结构

在狐表运行中,因为内部数据库的需要,要将外部数据mdb文件的结构改变一下,但文件中已经有了好多历史数据,现想改动一个列名,把 “xy” 改为 “需要”,并将宽度 2 改为 3 ,由于用户很多,每个电脑里都有改动前的数据库,因此在修改前 还要判断一下 数据库里列 “XY”是否存在。恳请专家帮助指教! 


--  作者:zhangchi96
--  发布时间:2014/6/3 11:42:00
--  

请专家帮忙指导一下!谢谢!


--  作者:有点甜
--  发布时间:2014/6/3 12:50:00
--  

 每个电脑都带一个数据库?都是自己的数据?如果是,建议不要改列名了。

 

 动态修改表列名,参考这里 http://www.foxtable.com/help/topics/2122.htm

 

 


--  作者:zhangchi96
--  发布时间:2014/6/3 23:05:00
--  

如果我有一个Access数据源,名称为 “单位信息.mdb”  内有表“职工”和“单位”,想把职工表中的列“XY” ,改为“需要”

 

Dim Builder As New ADOXBuilder(单位信息.mdb)
Builder.Open()

With
Builder.Tables("职工")
    .
RenameColumn("XY","需要")
End With

Builder
.Close()

 

上面写法中 单位信息.mdb 前要加上路径吗?修改该列的长度添加到哪里地方?可能我代码也写的不对,请多多指教!


--  作者:有点甜
--  发布时间:2014/6/3 23:31:00
--  

 看了一下,用下面的代码

 

Dim cmd As new SQLCommand

cmd.ConnectionName = "xxx"
cmd.CommandText = "alter table {表A} add 第100列 varchar(10);"
cmd.ExecuteNonQuery
cmd.CommandText = "update {表A} set 第100列=第一列;"
cmd.ExecuteNonQuery
cmd.CommandText = "alter Table {表A} drop Column 第一列;"
cmd.ExecuteNonQuery

[此贴子已经被作者于2014-6-3 23:31:49编辑过]

--  作者:zhangchi96
--  发布时间:2014/6/9 23:19:00
--  

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.rar

敬请版主帮我解决一下。想了好久都没有解决成功,上了实例,修改一下窗体中的红色按钮就行了,本来还想问一下如果修改字段类型的,如果方便,也请指导一下。衷心感谢“有点甜”的悉心指导,谢谢!


--  作者:Bin
--  发布时间:2014/6/10 8:38:00
--  
建议你直接更改标题更为妥当
--  作者:有点甜
--  发布时间:2014/6/10 9:31:00
--  

 代码大致这样。

 

Connections.Add("test", "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & ProjectPath & "data\\信息数据库.mdb;Persist Security Info=False;Jet OLEDB:Database Password=123456")
Dim cmd As new SQLCommand
cmd.C
cmd.CommandText = "alter table {教职工信息表} add 检测 varchar(10);"
cmd.ExecuteNonQuery
cmd.CommandText = "update {教职工信息表} set 检测=jc;"
cmd.ExecuteNonQuery
cmd.CommandText = "alter Table {教职工信息表} drop Column jc;"
cmd.ExecuteNonQuery
cmd.CommandText = "alter table {教职工信息表} add 级别 varchar(10);"
cmd.ExecuteNonQuery
cmd.CommandText = "update {教职工信息表} set 级别=jb;"
cmd.ExecuteNonQuery
cmd.CommandText = "alter Table {教职工信息表} drop Column jb;"
cmd.ExecuteNonQuery
Connections.Delete("test")


--  作者:zhangchi96
--  发布时间:2014/6/10 17:09:00
--  

我的软件发布后给若干个用户使用,各用户的电脑里都建立了有记录的数据库,现在因系统升级,需要统一更改数据库的列名称,因此只能在升级的程序里把修改的代码写到控件里,在用户执行的时候更改自己的数据库结构。直接改标题没用的。


--  作者:zhangchi96
--  发布时间:2014/6/10 17:31:00
--  

第二行的代码好像是误写的吧,去掉“cmd.C”后执行控件 ,结果是:

 

“找不到表或约束条件。”

 

然后就是:

Microsoft Jet 数据库引擎找不到输入表或查询 \'~TMPCLP教职工信息表\'。 确定它是否存在,以及它的名称的拼写是否正确。”

 

然后就是循环出现上述现象。

 

请版主从百忙中抽点时间帮我把实例修改一下。不甚感谢!