Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

能不能用命令直接搜索数据库内的表名,然后顺序循环执行sql命令?

冷书生  发表于:2016-03-30 09:49:19  
复制

Private Sub Command2_Click()
Dim strSql As String
strSql = "update DS_POINT SET 管点编号 =left([管点编号],2)&0320&right([管点编号],len([管点编号])-2)"
DoCmd.RunSQL strSql  '运行第1个更新语句
strSql = "update DS_LINE SET 起点点号 =left([起点点号],2)&0320&right([起点点号],len([起点点号])-2))"
DoCmd.RunSQL strSql  '运行第2个更新语句
strSql = "update DS_LINE SET 终点点号 =left([终点点号],2)&0320&right([终点点号],len([终点点号])-2))"
DoCmd.RunSQL strSql  '运行第3个更新语句
strSql = "update DX_POINT SET 管点编号 =left([管点编号],2)&0320&right([管点编号],len([管点编号])-2)"
DoCmd.RunSQL strSql
strSql = "update DX_LINE SET 起点点号 =left([起点点号],2)&0320&right([起点点号],len([起点点号])-2))"
DoCmd.RunSQL strSql
strSql = "update DX_LINE SET 终点点号 =left([终点点号],2)&0320&right([终点点号],len([终点点号])-2))"
DoCmd.RunSQL strSql
strSql = "update DT_POINT SET 管点编号 =left([管点编号],2)&0320&right([管点编号],len([管点编号])-2)"
DoCmd.RunSQL strSql
strSql = "update DT_LINE SET 起点点号 =left([起点点号],2)&0320&right([起点点号],len([起点点号])-2))"
DoCmd.RunSQL strSql
strSql = "update DT_LINE SET 终点点号 =left([终点点号],2)&0320&right([终点点号],len([终点点号])-2))"
DoCmd.RunSQL strSql
......
End Sub
***********************************************************
问题1:  我的数据库有甚多类似DS_POINT   DS_LINE     DX_POINT  DX_LINE    DT_POINT  DT_LINE .....这样的表,如果每个表名都列出来的话会浪费很多时间,而且还不确定表名(但后缀都是一样的*_POINT;*_LINE),能不能用命令直接搜索数据库内的表名,然后顺序循环执行sql命令?
问题2:每执行一个命令都会提示一个对话框让修改,我想请教一下能不能不让显示对话框,而是直接执行sql,也就是让程序默认点确定?
 
谢谢,谢谢,谢谢!重要的事情要说3次...

 

Top
朱先生 发表于:2016-03-30 20:17:03

表的命名有没有规律,如问题描述DS、DX、DT........,第一个字母都是D吗?

第二个字母是否有顺序,如A.B.C........或A、C、E.......间隔距离相等,可以用返回    ASC   字符试一下循环

如是A、B、C........可以用65,66,67.......循环

如是A、C、E......可以用65,67,69......... 循环

如题所示S、T、X 是83、84、88无法利用循环

以上是思路,能否成功还要待试

只要执行正确,对话框可以关闭的



朱先生 发表于:2016-04-01 14:45:36

只要表的命名有规律,可以利用循环,已测试完毕

用DA、DB、DC开头,后面是_POINT、_LINE,循环变量用65、66、67进行测试的

看来这个问题要流失啦!哈哈.........

 



冷书生 发表于:2016-04-21 00:49:01

表的开头是没有规律的,这个问题我已经解决了   可以遍历数据库中的所有表  然后 for   next   循环执行。。。


谢谢朱先生的多次指导



总记录:3篇  页次:1/1 9 1 :