热情软件屋

 

如何显示查询结果


编号:QA001840
建立日期: 1999年10月9日 最后修改日期:1999年10月9日
所属类别:

庄严:
    vb6
    windows95
    1.我在c:\vbzy目录下建立了一个名为 zdrk.mdb 的数据库文件,该文件里建了一个表:家庭成员,里面包含两个字段:姓名,出生年月
    2、我用VB6建了个窗体里面有两个TEXTBOX 分别用来显示姓名和出生年月还有个查询按纽
    3、我点击查询后
     dim db as database
     dim re as recordset
     set db=dbengine.workspaces(0).opendatabase("c:\vbzy\zdrk.mdb")
     set re=db.openrecordset("重点人口",dbopentable)
     if re.recordcount>0 then
     re.movefirst
     do until re.eof
     if re("姓名")="庄严" then
    把查到的记录的相关字段如何显示到我那两个文本框中?就是每一个字段的内容如何赋值给TEXTBOX中,前题有两个
    1、所有记录中只有一条符合条件 2、有两条以上符合条件
    如果有两条以上那么在查询按纽边上动态显示下一个按纽并且在我按了下一个按纽后又把下一条符合的记录的字段内容显示在相应的TEXTBOX中,结束后又动态的显示上一个按纽,按上一个按纽又回到刚才显示的符合条件的记录?
    end if
    以上IF里面的程序希望主持人能帮忙写出来,本人表示万分感谢!

回答:

    在窗体上添加两个按钮分别是“上一条”和“下一条”,两个按钮的Visible属性设置为False。
    把db和re的定义写到窗体的声明部分。
     Dim db As database
     Dim re As recordset
    查询过程这样写:
     Set db = DBEngine.WorkSpaces(0).OpenDatabase("c:\vbzy\zdrk.mdb")
     ' 采用dbOpenDynaset方式,而不是使用dbOpenTable方式,
     ' 除非你建立的索引
     Set re = db.OpenRecordset( _
     "SELECT * FROM 重点人口 WHERE 姓名='庄严'", dbOpenDynaset)
     If re.RecordCount > 0 Then
     re.MoveLast
     ' 如果有超过两条符合条件的记录
     btnNext.Visible = re.RecordCount > 1
     re.MoveFirst
     ' 显示结果
     Text1.Text = re("姓名")
     Text2.Text = re("出生年月")
     End If
    
    ' 上一条记录
    Private Sub btnPrevious_Click()
     re.MovePrevious
     Text1.Text = re("姓名")
     Text2.Text = re("出生年月")
     btnNext.Visible = True
     re.MovePrevious
     btnLast.Visible = Not re.BOF
     re.MoveNext
    End Sub
    
    ' 下一条记录
    Private Sub btnNext_Click()
     re.MoveNext
     Text1.Text = re("姓名")
     Text2.Text = re("出生年月")
     btnLast.Visible = True
     re.MoveNext
     btnNext.Visible = Not re.EOF
     re.MovePrevious
    End Sub

此问题由李海回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio