首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

求救~该如何解决

2012-02-12 
求救~~~编程新手.正在用VB+Access做一个小的练习.我在第一个页面做条件查询.将查询结果在第二个页面用Data

求救~~~
编程新手.正在用VB+Access做一个小的练习.我在第一个页面做条件查询.将查询结果在第二个页面用DataGrid显示出来.请问该怎么办?如何用DataGrid显示ADODB.Recordset?请问第二个页面代码该怎么写?

这是我第一个页面写的代码:
Private   Sub   Command1_Click()
Dim   sql   As   String
Dim   Rs   As   ADODB.Recordset

sql   =   "select   *   from   Student   where   "
If   Trim(Text1.Text)   =   " "   And   Trim(Text2.Text)   =   " "   And   Trim(Text3.Text)   =   " "   And   Trim(Text4.Text)   =   " "   And   Trim(Text4.Text)   =   " "   And   Trim(Text5.Text)   =   " "   And   Trim(Text6.Text)   =   " "   And   Trim(Text7.Text)   =   " "   And   Trim(Text8.Text)   =   " "   Then
MsgBox   "请选择查询条件并输入查询内容. ",   vbOKOnly   +   vbExclamation,   "警告 "

Else
    If   Trim(Text1.Text)   <>   " "   Then
      sql   =   sql   &   "Sno= ' "   &   Trim(Text1.Text)   &   " ' "
     
    ElseIf   Trim(Text2.Text)   <>   " "   Then
      If   Trim(Text1.Text)   =   " "   Then
      sql   =   sql   &   "Sname= ' "   &   Trim(Text2.Text)   &   " ' "
      Else
      sql   =   sql   &   "and   Sname= ' "   &   Trim(Text2.Text)   &   " ' "
      End   If
     
    ElseIf   Trim(Text3.Text)   <>   " "   Then
      If   Trim(Text1.Text)   =   " "   And   Trim(Text2.Text)   =   " "   Then
      sql   =   sql   &   "Ssex= ' "   &   Trim(Text3.Text)   &   " ' "
      Else
      sql   =   sql   &   "and   Ssex= ' "   &   Trim(Text3.Text)   &   " ' "
      End   If
     
    ElseIf   Trim(Text4.Text)   <>   " "   Then
      If   Trim(Text1.Text)   =   " "   And   Trim(Text2.Text)   =   " "   And   Trim(Text3.Text)   =   " "   Then
      sql   =   sql   &   "Sage=   "   &   Trim(Text4.Text)   &   "   "
      Else
      sql   =   sql   &   "and   Sage=   "   &   Trim(Text4.Text)   &   "   "
      End   If
     
    ElseIf   Trim(Text5.Text)   <>   " "   Then
      If   Trim(Text1.Text)   =   " "   And   Trim(Text2.Text)   =   " "   And   Trim(Text3.Text)   =   " "   And   Trim(Text4.Text)   =   " "   Then


      sql   =   sql   &   "Splace= ' "   &   Trim(Text5.Text)   &   " ' "
      Else
      sql   =   sql   &   "and   Splace= ' "   &   Trim(Text5.Text)   &   " ' "
      End   If
     
    ElseIf   Trim(Text6.Text)   <>   " "   Then
    If   Trim(Text1.Text)   =   " "   And   Trim(Text2.Text)   =   " "   And   Trim(Text3.Text)   =   " "   And   Trim(Text4.Text)   =   " "   And   Trim(Text5.Text)   =   " "   Then
      sql   =   sql   &   "Spolity= ' "   &   Trim(Text6.Text)   &   " ' "
      Else
      sql   =   sql   &   "and   Spolity= ' "   &   Trim(Text6.Text)   &   " ' "
      End   If
     
    ElseIf   Trim(Text7.Text)   <>   " "   Then
    If   Trim(Text1.Text)   =   " "   And   Trim(Text2.Text)   =   " "   And   Trim(Text3.Text)   =   " "   And   Trim(Text4.Text)   =   " "   And   Trim(Text5.Text)   =   " "   And   Trim(Text6.Text)   =   " "   Then
      sql   =   sql   &   "Stime= ' "   &   Trim(Text7.Text)   &   " ' "
      Else
      sql   =   sql   &   "and   Stime= ' "   &   Trim(Text7.Text)   &   " ' "
      End   If
     
    ElseIf   Trim(Text8.Text)   <>   " "   Then
    If   Trim(Text1.Text)   =   " "   And   Trim(Text2.Text)   =   " "   And   Trim(Text3.Text)   =   " "   And   Trim(Text4.Text)   =   " "   And   Trim(Text5.Text)   =   " "   And   Trim(Text6.Text)   =   " "   And   Trim(Text7.Text)   =   " "   Then
      sql   =   sql   &   "Steleph= ' "   &   Trim(Text8.Text)   &   " ' "
      Else
      sql   =   sql   &   "and   Steleph= ' "   &   Trim(Text8.Text)   &   " ' "
      End   If
     
    End   If
   
    Set   Rs   =   TransactSQL(sql)
    If   Rs.EOF   Then
    MsgBox   "Sorry.不存在符合条件的信息. ",   vbOKOnly   +   vbInformation,   "查询失败. "
    Else
    FormAddStuDetResult.Show         //不知道该如何写下去了.
    End   If
End   If
End   Sub

------解决方案--------------------


建议你定义一个全局变量,数据类型为String,名称为sql
将第一窗体组成的SQL查询语句赋值给该全局变量
在FormAddStuDetResult窗体的Form_Load事件代码中使用全局变量sql,请将下列代码中db.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & App.Path & "\hxrkgl.mdb;Persist Security Info=False "
的数据库名和路径改为你的数据库名和路径:

Private Sub Form_Load()
Set db = New adodb.Connection
Set rs = New adodb.Recordset
db.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & App.Path & "\hxrkgl.mdb;Persist Security Info=False "
db.Open
rs.CursorLocation = adUseClient
rs.Open sql, db, adOpenStatic, adLockReadOnly
Set DataGrid1.DataSource = rs
End Sub

热点排行