Access交流中心

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

shell的问题

王同  发表于:2009-02-06 17:09:44  
复制

shell "sqlplus uid/pswd@tnsname my.sql"

能否将where参数传递至my.sql里?

 

Top
ACMAIN.CHM 发表于:2009-02-06 21:03:17

当然可以。你可以通过程序改这个my.sql, 这是个文本文件。

有得这样,你还不如直接操作oracle,对初学者简单点的做法是建个ODBC的链接表。 通用一点的做法直接用ADO。

 



王同 发表于:2009-02-07 16:13:20

"你可以通过程序改这个my.sql",提供个思路,如何能做到?

比如my.sql里是这个sql代码:

select * from abc where a='123';

我想把123通过变量来取代(例如通过组合框的控件)。

然后运行shell。

 

我的目的就是让用户直接通过窗口输入,输入结果传递到后台的脚本,用户看不到sql脚本,只需等着结果就行了。



ACMAIN.CHM 发表于:2009-02-07 18:15:34

 

VBA中操作文本文件。但如果你只想执行一段SQL,不让用户看到,建议你直接用ADO的connection.execute sql
 
Open 语句
     
能够对文件输入/输出 (I/O)。
语法
Open pathname For mode [Access access] [lock] As [#]filenumber [Len=reclength]
 
Print # 语句
     
将格式化显示的数据写入顺序文件中。
语法
Print #filenumber, [outputlist]
 
Close 语句
     
关闭 Open 语句所打开的输入/输出 (I/O) 文件。
 
Print # 语句示例
本示例使用 Print # 语句将数据写入一个文件。
Open "TESTFILE" For Output As #1    ' 打开输出文件。
Print #1, "This is a test"    ' 将文本数据写入文件。
Print #1,    ' 将空白行写入文件。
Print #1, "Zone 1"; Tab ; "Zone 2"    ' 数据写入两个区(print zones)。
Print #1, "Hello" ; " " ; "World"    ' 以空格隔开两个字符串。
Print #1, Spc(5) ; "5 leading spaces "    ' 在字符串之前写入五个空格。
Print #1, Tab(10) ; "Hello"    ' 将数据写在第十列。
' 赋值 Boolean、Date、Null 及 Error 等。
Dim MyBool, MyDate, MyNull, MyError
MyBool = False : MyDate = #February 12, 1969# : MyNull = Null
MyError = CVErr(32767)
' True、False、Null 及 Error 会根据系统的地区设置自动转换格式。
' 日期将以标准的短式日期的格式显示。
Print #1, MyBool ; " is a Boolean value"
Print #1, MyDate ; " is a date"
Print #1, MyNull ; " is a null value"
Print #1, MyError ; " is an error value"
Close #1    ' 关闭文件。
 
 


******************
*  一切皆有可能  *
******************



QQ群 48866293 / 12035577 / 7440532 / 13666209
http://forum.csdn.net/SList/Access
http://www.accessbbs.cn/bbs/index.php
http://www.accessoft.com/bbs/index.asp
http://www.office-cn.net/vvb/?fromuid=141646
http://www.access-programmers.co.uk/forums

http://www.office-cn.net/home/space.php?uid=141646


王同 发表于:2009-02-07 18:44:27

尊敬的楼上,我的问题基本都是你回答的,非常想交个朋友,拜师学艺。。。QQ:19109807



王同 发表于:2009-02-07 19:01:27

我倒有个思路,看看能不能这样:

1、我编写了一个sql代码,如下:

select * from a where id='123';

select * from b where name='xxx';

insert...

2、然后,用i/o的函数的替换函数(我猜的,不知道可有),将窗体输入的代码取代其中123和xxx

 

这样有一个好处,我只需把sql语句写好了(把需要替换的where参数写成指定的数,如123、xxx等),然后access打开my.sql后,利用i/o自动将窗体的123替换成窗口输入的值,这不是又容易实现又好懂的东西嘛。

 



韩志 发表于:2009-03-17 00:14:23

就是一个变量查询呀,干嘛非要这么麻烦呢。



韩志 发表于:2009-03-17 00:15:30

使用ADO的command试试,也许会有意外的收获。



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