将ado控件放在form2中,form1根据用户输入组合sql语句字符串,并将该字符串传递给form2作为sql查询使用,并将查询结果用datagride控件显示。
假设form1中文本框text1是日期,text2是舱位,text3是目的地,一个命令按钮command1是查询确认,而access数据库已经连接好,里面有一个“航班信息”表,form2里一个ado控件adodc1(不要用data控件),一个datagride控件dg1,我们首先在form2中写个接受sql参数的sub.
public sub inSql(Sql as string)
'本过程在form2中,主要接受sql参数
Adodc1.RecordSource=Sql
Adodc1.Refresh
Set Dg1.DataSource = Adodc1.Recordset
Me.Show
end sub
下面编写form1中command1的代码,主要根据text1、text2、text3中填写情况拼写sql语句,并调用form2中的inSql过程,显示查询结果
Private Sub Command1_Click()
Dim a As String
'拼接sql语句放在变量a中
a = ""
If Trim(Text1) <> "" Then a = "航班日期=#" & Text1 & "# and "
If Trim(Text2) <> "" Then a = a & "舱位='" & Text2 & "' and "
If Trim(Text3) <> "" Then a = a & "目的地 like '%" & Text3 & "%' "
If a <> "" Then
If Trim(UCase(Right(a, 4))) = "AND" Then a = Left(a, Len(a) - 4) '去掉最后面可能存在的and字符
a = " where " & a
End If
a = "select * from 航班信息 " & a
Form2.inSql a '调用form2的inSql过程,传递sql参数并在form2中显示查询结果
End Sub
[
本帖最后由 lowxiong 于 2011-6-11 08:10 编辑 ]