VB对Access的查询的问题亟待解决~(用SQL语句)

来源:百度知道 编辑:UC知道 时间:2024/06/22 22:03:44
Private Sub Command2_Click()
Select Case A
Case 1
P.Open "SELECT * FORM 中国国家队02版 WHERE 球员名 like'X'", CVSB, adOpenStatic, adLockOptimistic
Case 2
P.Open "SELECT * FORM 中国国家队02版 WHERE 球衣号码='Y'", CVSB, adOpenStatic, adLockOptimistic
End Select
End Sub
Private Sub Form_Load()
Dim P As ADODB.Recordset
Set P = New ADODB.Recordset
Select Case A
Case 1
Text1.Visible = True
Text1.Enabled = True
Text1.Text = ""
X = Text1.Text
Case 2
Text6.Visible = True
Text6.Enabled = True
Text6.Text = ""
Y = Text6.Text
End Select
End Sub
我在模块里声明了public X as string*9
public Y as integer
ADO的connectstring和recordsource都设置好了,可运行时用球员名查询,输入球员名电机确定(command2)后出现——错误“424” 要求对象——的提示,调试错误的语句为P.Open "SELECT * FORM 中国国家队02版 WHERE 球员名 like'X'&quo

将Dim P As ADODB.Recordset 语句放到模块中并定义为Public类型。
P.Open "SELECT * FORM 中国国家队02版 WHERE 球员名 like'X'", CVSB, adOpenStatic, adLockOptimistic
上面这个语句中写成如下:
P.Open "SELECT * FORM 中国国家队02版 WHERE 球员名 LIKE '" & X & "'", CVSB, adOpenStatic, adLockOptimistic

P.Open "SELECT * FORM 中国国家队02版 WHERE 球衣号码='Y'", CVSB, adOpenStatic, adLockOptimistic
上面这个语锯中写成如下:
P.Open "SELECT * FORM 中国国家队02版 WHERE 球衣号码='" & Y & "'", CVSB, adOpenStatic, adLockOptimistic

第一个问题,你把form load中的DIM P…这句移到外面使它成为一个全局变量就行了。
第二个问题,integer是不可以等于空值的,可以写成Y=val(text6)。但是,你刚刚令text6.text=""了,然后又马上Y=text6.text有何用?应该把Y=text6.text放在command2的点击事件中。

补充一下,你的:WHERE 球员名 like'X'", WHERE 球衣号码='Y'",这两句也不对,前一个改成…WHERE 球员名 like '%"&X&"%'",后一个改成 …WHERE 球衣号码="&Y,