Access交流中心

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

ACCESS查询转换成SQL语句

chinasa  发表于:2016-09-29 10:36:27  
复制

各位老师,

    请问怎样把通过向导创建的查询换成SQL语句?

    自己平时用向导创建查询用习惯了,SQL语句都不怎么会写了,有个查询想在VB里通过RUN SQL执行,但直接复制SQL语句是无法执行的,请问有什么办法吗?

 

Top
zhaoyoulong 发表于:2016-09-29 11:19:44

 dim Str as string 

Str = CurrentDb.QueryDefs("查询").SQL

docmd.runsql str



chinasa 发表于:2016-09-29 12:10:53
感谢楼上的老师,我现在不想保留“查询”,也就是通过查询复制完SQL语句后,我需要把查询删除掉。因为我需要把链接表也删除,一旦链接表删除,查询就算不删除也没什么用了,我不想保留链接表的原因就是担心安全问题。所以我删除链接表后通过语句来读数据库表。

仙来 发表于:2016-09-29 14:54:53

发示例



西出阳关无故人 发表于:2016-09-29 15:04:27
查询的设计视图的sql视图不管用吗?你是用什么(非access)数据库?

zhaoyoulong 发表于:2016-09-29 16:02:34

你获取查询的SQL后删除查询

也可以通过改变查询的SQL来规避重要内容

如:执行完查询后把查询的SQL设置成

"select * from 表 where 1=2“

即:CurrentDb.QueryDefs("查询").SQL="select * from 表 where 1=2"



chinasa 发表于:2016-10-12 10:24:06

strSQL = "SELECT tb1.toDATE, [a] & " - " & [b] & " - " & [c] & " - " & [d] AS abcd, tb1.ttdd AS td INTO tbl_test_aa" _
& " FROM tb1 WHERE (((tb1.toDATE)=#10/10/2016#) AND (([a] & " - " & [b] & " - " & [c] & " - " & [d])='x-y-z-a') AND ((tb1.pr)='xx'))"

 

上述是我根据查询生成的SQL语句,部分内容已经做了修改,比如[d])='x-y-z-a',在查询视图中是用双引号,而SQL中用单引号。

现在日期格式又有问题,我估计是##的问题,请指点下应该用什么符号?

如果我要查询时间段,用BETWEEN又怎么写?



chinasa 发表于:2016-10-12 11:03:29

strSQL = "SELECT tb1.to_DATE INTO testaa FROM tb1 WHERE to_DATE Between #" & Date_str & "# AND #" & Date_end & "#"

上面这个语句提示ORA-00911



zhaoyoulong 发表于:2016-10-12 17:05:24

"SELECT tb1.to_DATE INTO testaa FROM tb1 WHERE to_DATE Between DateValue('" & Date_str  & "') and DateValue('" & Date_end & "')"

试试



chinasa 发表于:2016-10-18 15:42:03

提示错误ORA-00904

DateValue



西出阳关无故人 发表于:2016-10-18 17:13:42

试一下:

"SELECT tb1.to_DATE INTO testaa FROM tb1 WHERE to_DATE Between  '" & DateValue( Date_str) & "' and '" & DateValue( Date_end ) & "'"



zhaoyoulong 发表于:2016-10-19 07:49:55

上传附件比较好

要不你可以把 Date_str 和 Date_end 换成具体的日期试试 看看有没有问题

比如:

"SELECT tb1.to_DATE INTO testaa FROM tb1 WHERE to_DATE Between DateValue( '2009-01-01') and DateValue('2015-01-01')"

如果没问题说明 Date_str 或 Date_end 的值可能存在问题 



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