# 当然不可以!!!

Posted by 纪文和 on May 15, 1999 at 13:37:04:

In Reply to: 这样的SQL可以这样写吗? posted by jeff on May 15, 1999 at 09:46:32:

: 这样的SQL可以这样写吗?
: Set trade = dbs.OpenRecordset("select * from 班级资料 where '" & Text2.Text & "' <> '0' ")

其实您一直在问这样可以吗? 那样可以吗? 是因为您问问题的角度错了. 每一次您 SQL 的字串拼不出来, 您上来问, 虽然可能人家也告诉了您正确的 SQL 字串, 但是其实根本问题都没有解决. (只给您鱼吃, 却没教如何钓鱼)

您的问题点是 : 您不知道您想要执行的 SQL 叙述, 该如何用字串和输入的资料去拼凑出来, 这只是一点点小诀窍, 是可以自行练习的,

1.先写出正确的 SQL 叙述, 例如 :
Select * from aTable Where a1Field = "aa"
(假设 "aa" 是由 Text1 得到)

2.将 SQL 叙述转成字串.
以上一个例子来说, 先宣告一个变数 wsql
wsql = "Select * from aTable Where a1Field = 'aa'"
有没有注意到 'aa' 由双引号变成单引号, 那是因为字串 wsql 的前后已经用掉双引号了, 为了区别而已.

3.拆字串, 分出那些是固定字串,那些是要由变数或栏位传入的.
以上一个例子来说, 可以拆成三部份, 如下 :
第一部份:"Select * from aTable Where a1Field = '"
第二部份:"aa"
第三部份:"'"
其中第一三部份是固定的, 而第二部份可能是由变数传入, 或由某一栏位得到, 或来自其他的 Recordset..

4.将非固定字串转成真正之来源,
以上一个例子来说,第二部份:"aa" 其实就是 Text1.text
第一部份:"Select * from aTable Where a1Field = '"
第二部份:Text1.text
第三部份:"'"

5.将非固定字串真正之来源 带入完整的 SQL 叙述中,以上一个例子来说,
完整: 第一部份 & 第二部份 & 第三部份
"Select * from aTable Where a1Field = '" & Text1.text & "'"

这是简单的, 但是再复杂的情形, 只要按照这步骤一定可以导得出来, 自己多练习看看,

Follow Ups: