网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
02月12日漏签0天
vb吧 关注:156,053贴子:1,166,295
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 2回复贴,共1页
<<返回vb吧
>0< 加载中...

cbm666大哥再劳烦你一下

  • 只看楼主
  • 收藏

  • 回复
  • yangshouxin
  • 啥也不懂
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
Select Case cmdedit.Caption    '修改按钮的代码
     Case "修改"
       Text1.SetFocus
       SendKeys "{home}+{end}"
       Data1.Recordset.Edit
       cmdedit.Caption = "确定"
       cmdadd.Enabled = False
       cmddel.Enabled = False
       cmdfirst.Enabled = False
       cmdprev.Enabled = False
       cmdnext.Enabled = False
       cmdlast.Enabled = False
     Case "确定"
       Dim xh As String
       xh = Text1.Text  'text1里面输入的是学号
        Data1.Recordset.MoveFirst
        Data1.Recordset.FindFirst "学号=" & Chr(39) & xh & Chr(39)
     If Not Data1.Recordset.NoMatch Then
        MsgBox "此学号已经存在"
       Else
       Data1.UpdateRecord
       cmdedit.Caption = "修改"
       cmdadd.Enabled = True
       cmddel.Enabled = True
       cmdfirst.Enabled = True
       cmdprev.Enabled = True
       cmdnext.Enabled = True
       cmdlast.Enabled = True
      End If
End Select
为什么无论表中存在不存在所输入的学号都显示“这个学号已存在”,是哪里错了,帮忙改一下吧,谢谢了


  • cbm666
  • 子类化
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
1.看你的代码, 既然你是在 "修改", 那么这个学号当然是存在的, 你又不是新
增.

2.在"修改保存"时,如果你要确定所修改的 "新学号" 是否已存在还有判断的道理.

3.你的Data1.Recordset.Edit 与 Data1.UpdateRecord 做法与我完全不同.

我的做法会如下:

'oldxh是旧学号, oldpos是要修改的这笔的记录号

1.在最上面宣告
Public xh as string, oldxh as string,oldpos as integer, contstop as boolean

2.在 "显示" 这笔资料时,你应该是 Text1.text=data1.recordset.fields(0) '学号

3.在点击 "修改" 时, 加上
oldxh = Text1.Text
oldpos=Data1.Recordset.AbsolutePosition

4.在点击 "确定保存" 时加上

contstop=true
if text1.text<>oldxh then
'新修改的学号如果有变动, 这时才要判断是否已存在, 学号没更动,就没必要做判断

'如果所修改的 "新学号" 已存在,则 contstop会等於 False
end if

if contstop then '如果学号没更动或新学号也不存在,才能更新...
 data1.recordset.MoveFirst
 data1.recordset.Move(oldpos)
 data1.recordset.edit
 data1.recordset.fields(0)=text1.text
 data1.recordset.fields(1)=text2.text
 data1.recordset.fields(2)=text3.text
 '......................................
 '.......................................
 data1.recordset.update
end if

还有看你那么多个 Command, 你应该用数组 cmd(0) cmd(1) cmd(2)...


2026-02-12 03:13:30
广告
不感兴趣
开通SVIP免广告
  • yangshouxin
  • 啥也不懂
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
谢谢cbm666大哥不吝赐教!!


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 2回复贴,共1页
<<返回vb吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示