Office中国论坛/Access中国论坛

标题: 用选项组打开窗体时无法显示记录?(新问题) [打印本页]

作者: bonbonkiss    时间: 2005-12-26 20:30
标题: 用选项组打开窗体时无法显示记录?(新问题)
在“窗体1”中的查询,要输入姓名或者编号,然后选择查询哪张表,结果总是出现第一个人的记录。一点通老师,您给我的代码分开都是可以执行的,但我拼在一起就不行了

Private Sub 命令25_Click()
On Error GoTo Err_命令25_Click

Dim stDocName As String
Dim stLinkCriteria As String


If IsNull(DLookup("[memberno]", "member", "[memberno]=" & "'" & 文本22 & "'")) Then '试查找有没有这个编号
    If IsNull(DLookup("[memberno]", "member", "[membername]=" & "'" & 文本22 & "'")) Then '再查找有没有这个姓名
        MsgBox "编号及姓名都不存在", , "提示"
    Else '如果有,更改姓名为编号
        Me.文本22 = DLookup("[memberno]", "member", "[membername]=" & "'" & 文本22 & "'")
        stLinkCriteria = "[memberno]=" & "'" & Me![文本22] & "'"
        
        If Me.框架23 = 1 Then
        stDocName = "member1"
        DoCmd.OpenForm stDocName, , , stLinkCriteria
        Else
        If Me.框架23 = 2 Then
           stDocName = "member2"
           
           DoCmd.OpenForm stDocName, , , stLinkCriteria
        Else
           stDocName = "member3"
         
           DoCmd.OpenForm stDocName, , , stLinkCriteria
        End If
        End If

    End If
Else
    If Me.框架23 = 1 Then
      stDocName = "member1"
      DoCmd.OpenForm stDocName, , , stLinkCriteria
    Else
    If Me.框架23 = 2 Then
       stDocName = "member2"
       DoCmd.OpenForm stDocName, , , stLinkCriteria
    Else
       stDocName = "member3"
       DoCmd.OpenForm stDocName, , , stLinkCriteria
    End If
   End If
End If


Exit_命令25_Click:
    Exit Sub

Err_命令25_Click:
    MsgBox Err.Description
    Resume Exit_命令25_Click
End Sub

[attach]14949[/attach]


[此贴子已经被作者于2005-12-26 18:11:53编辑过]


作者: 静儿    时间: 2005-12-26 21:42
窗体member1--3的数据源中要有筛选条件啊。

   If Me.框架23 = 1 Then
      stDocName = "member1"
      DoCmd.OpenForm stDocName, , , stLinkCriteria
    Else
    If Me.框架23 = 2 Then
       stDocName = "member2"
       DoCmd.OpenForm stDocName, , , stLinkCriteria
    Else
       stDocName = "member3"
       DoCmd.OpenForm stDocName, , , stLinkCriteria
    End If
   End If
可以更改为:

   If Me.框架23 = 1 Then stDocName = "member1"

   If Me.框架23 = 2 Then stDocName = "member2"

   If Me.框架23 = 3 then stDocName = "member3"
   DoCmd.OpenForm stDocName, , , stLinkCriteria
作者: bonbonkiss    时间: 2005-12-26 22:10
还是不行啊?我的查询无论用编号或用姓名打进去都只出现第一个记录
作者: 一点通    时间: 2005-12-26 22:27
[attach]14950[/attach]

作者: bonbonkiss    时间: 2005-12-26 23:07
谢谢!你辛苦了
作者: bonbonkiss    时间: 2005-12-27 01:48
一点通老师,查询成功了但是同一窗体左边的选项组就发生了奇怪的问题,打开了窗体之后,所有的记录都没显示?

本来应该是直接显示第一条记录的呀,是否有冲突啊?请赐教

[此贴子已经被作者于2005-12-26 18:31:43编辑过]


作者: bonbonkiss    时间: 2005-12-27 02:31
就是同一个文件,在上面!一点通老师在不在啊
作者: wu8313    时间: 2005-12-27 04:29
选项组控件有返回值,我建议使用select...case...语句来执行条件转向,决定谁被选中就执行什么代码比较好一些,代码会显得简洁和清爽一些。

如果使用if...then...来执行判断,代码要繁杂一些。换言之,这样很容易丢失end if 和else 而出现语法错误而不便调试。






欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3