先说下问题,用的是SQL数据库
有个表是房间表 ,有字段 rno(房间号), rname(入住人姓名),rsex(性别),rid(身份证),time(入住时间)窗口上有四个text框,text1,text2,text3,text4分别输入rno ,rname,rsex,rid一个按钮 command1(入住登记)最后的time 我定义today=now(取得系统时间)直接赋值给time字段Public rst As New ADODB.RecordsetPrivate Sub Command1_Click()Dim today
today = NowSet rst = Adodc1.Recordset
sql = "select rid from room where rid='" & Trim$(Text1.Text) & "'"
rst!rno = Text1.Text
rst!rname = Text2.Text
rst!rsex = Text3.Text
rst!rid = Text4.Text
rst!Time = today
rst.Update
MsgBox "登记成功!", vbOKOnly + vbInformation, "友情提示"
End Sub我这样写代码 无论text1里输入的房间号是多少,他都只更新第一条数据,
而且是连房间号都更新成text1里输入的内容我想知道根据我text1里输入的房间号来更新对应的数据库里的记录

解决方案 »

  1.   

    Public rst As New ADODB.Recordset Private Sub Command1_Click() Dim today 
    today = Now Adodc1.CommandType = adCmdUnknown
    Adodc1.RecordSource = "select rid from room where rid='" & Trim$(Text1.Text) & "'" 
    Adodc1.Refresh
    Set rst = Adodc1.Recordset rst!rno = Text1.Text 
    rst!rname = Text2.Text 
    rst!rsex = Text3.Text 
    rst!rid = Text4.Text 
    rst!Time = today 
    rst.Update 
    MsgBox "登记成功!", vbOKOnly + vbInformation, "友情提示" 
    End Sub 
      

  2.   

    sql = "select rid from room where rid='" & Trim$(Text1.Text) & "'" 
    你Text1中既然是房號,則條件不能用身份證號,應改為:
    sql = "select rid from room where rno='" & Trim$(Text1.Text) & "'" 
      

  3.   

    不可能出现的问题 主要是你的条件是身份证号  估计你每次输入房间号信息刚刚等于身份证号的信息  更改哪条记录是由于你的条件where子句决定的 肯定是这里的问题 再检查。