请问大虾们:
    我有一个数据库其中有两个字段名是:学号(字符串),成绩(浮点)
在窗体上还有一个文本框,我想让用户在文本框内输入学号或成绩,
然后按一个按钮,实现根据输入内容查询记录。并在窗体中已绑定的
文本框中显示。请问在查询按钮中怎么写这两种类型的?谢谢!

解决方案 »

  1.   

    这个已经测试过了,可以达到你的要求
    Private Sub Command2_Click()
    Dim rst As ADODB.Recordset
    Set rst = New ADODB.Recordset
    Dim strTemp, strTempq, strSql As String
    strTemp = Trim(txtField.Text)
    strTempq = Val(strTemp)
    strSql = "select * from tblconsultform where form_type = " & "'" & CStr(strTemp) & "'"
    If CStr(strTempq) = CStr(strTemp) Then
        strSql = strSql & " or series_id  = " & Val(strTemp)
    End If
    InputBox 1, 1, strSql
    rst.Open strSql, g_conn
    If Not rst.EOF Then
    txtField.Text = rst(0)
    End If
    End Sub
      

  2.   

    其中FORM_TYPE是字符串型的,series_id是int的。
    IF语句中的 OR SERIES_ID = "&VAL(STRTEMP)可以换成 OR SERIES_ID = " & CINT(STRTEMP)
      

  3.   

    To JoAiron(zozo):不用sql行不行?就像下面这样:
    Data1.Recordset.FindFirst "年龄=19" 这样写对不对?
    Data1.Recordset.FindFirst "学号=003" 这样写对不对?(学号是字符串型)
    如果=后面是一个文本框中的内容,以上的FindFirst条件应怎样写?
    Data1.refresh 
    执行以上语句后为什么窗体上文本框显示相关记录不刷新?
      

  4.   

    是字符串的话就不能不加''单引号
    如果你不知道text里的内容是数字还是字符的话,就必须先判断好类型才能写sql语句
    我也没有什么好的方法来判断文本框里
    的内容,不知道其他人有什么好的方法没有
    不过下面这个方法倒是可以实现dim str1,str2 as string
    str1 = text1.textstr2 =  val(str1)if cstr(str1)=cstr(str2) then
        msgbox "文本框内容是个数字"
    else
        msgbox "文本框内容包含字符"
    end if
      

  5.   

    你可以加个Combo控件,里面放上可供选择的字段名作为查询类型选项,由此在运行时根据Combo中的选项来判断文本框的内容和类型
      

  6.   

    数字型
    Data1.Recordset.FindFirst "年龄=19"
    字符串型
    Data1.Recordset.FindFirst "学号='19'"后接变量数字型
    Data1.Recordset.FindFirst "年龄="& intAge &""
    字符串型
    Data1.Recordset.FindFirst "学号='"& text1.text &"'"