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

 
 
 
日一二三四五六
       
       
       
       
       
       

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

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

本吧签到人数:0

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

  • 图片

  • 吧主推荐

  • 游戏

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

求大神帮忙,这个CALL SHOWDATA为什么不能用

  • 只看楼主
  • 收藏

  • 回复
  • 今晚打老虎1
  • 啥也不懂
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
Option Explicit
Dim rs As ADODB.Recordset
Dim SQL As String
Dim msg As String
Dim Index As Integer
Dim flag As String
Private Sub CmdExit_Click()
If flag = "Modify" Then
If MsgBox("保存当前记录的变化吗? ", vbOKCancel + vbExclamation, "警告") = vbOK Then
Call CmdSave_Click
End If
End If
Unload Me
End Sub
Private Sub Form_Load()
CboQuery.Clear
SQL = " select * from 部门信息表"
Set rs = SelectSQL(SQL, msg)
If rs.RecordCount = 0 Then
MsgBox ("请先建立部门信息!")
Else
Do While Not rs.BOF And Not rs.EOF
Me.CboQuery.AddItem (rs.Fields("部门代码") & rs.Fields("部门名称"))
rs.MoveNext
Loop
Me.CboQuery.ListIndex = 0
rs.Close
End If
Call LoadData
Call ShowData
End Sub
Private Sub LoadData()
Dim colName As String
Dim strWhere As String
colName = Left(Trim(CboQuery.Text), 4)
strWhere = " where 部门代码='" & colName & "'"
Set rs = Nothing
SQL = "select * from 部门信息表 " & strWhere & " ORDER BY 部门代码 "
Set rs = SelectSQL(SQL, msg)
If rs.RecordCount = 0 Then
CmdAdd.Enabled = True: CmdModify.Enabled = False: CmdDelete.Enabled = False
CmdCancel.Enabled = False: CmdSave.Enabled = False
Else
CmdAdd.Enabled = True: CmdModify.Enabled = True: CmdDelete.Enabled = True
CmdCancel.Enabled = False: CmdSave.Enabled = False
End If
Call ControlEnable(False)
End Sub
Private Sub ControlEnable(flag As Boolean)
Me.textDeNo.Enabled = flag
Me.textDeName.Enabled = flag
Me.textLeName.Enabled = flag
Me.textAddress.Enabled = flag
Me.textPhone.Enabled = flag
Me.textJian.Enabled = flag
End Sub
Private Sub ShowData()
If rs.RecordCount <> 0 Then
Me.textDeNo.Text = rs.Fields("部门代码")
Me.textDeName.Text = rs.Fields("部门名称")
Me.textLeName.Text = rs.Fields("领导名称")
Me.textAddress.Text = rs.Fields("联系地址")
Me.textPhone.Text = rs.Fields("联系电话")
Me.textJian.Text = rs.Fields("简介")
End If
End Sub
Private Sub CmdAdd_Click()
Call ControlClear
Call ControlEnable(True)
flag = "Add"
CmdAdd.Enabled = False: CmdModify.Enabled = False: CmdDelete.Enabled = False
CmdCancel.Enabled = True: CmdSave.Enabled = True
End Sub
Private Sub ControlClear()
Me.textDeNo.Text = ""
Me.textDeName.Text = ""
Me.textLeName.Text = ""
Me.textAddress.Text = ""
Me.textPhone.Text = ""
Me.textJian.Text = ""
End Sub
Private Sub CmdCancel_Click()
Call ShowData
Call ControlEnable(False)
CmdAdd.Enabled = True: CmdModify.Enabled = True: CmdDelete.Enabled = True
CmdSave.Enabled = False: CmdCancel.Enabled = False
End Sub
Private Sub CmdModify_Click()
If rs.RecordCount > 0 Then
Me.textDeNo.Enabled = False
Call ControlEnable(True)
flag = "Modify"
CmdAdd.Enabled = False: CmdModify.Enabled = False: CmdDelete.Enabled = False
CmdCancel.Enabled = True: CmdSave.Enabled = True
Else
MsgBox ("没有可以修改的数据!")
End If
End Sub
Private Sub CmdDelete_Click()
On Error GoTo ErrMsg
If rs.RecordCount > 0 Then
msg = MsgBox("删除该条记录吗?", vbYesNo)
If msg = vbYes Then
rs.Delete
Call Form_Load
Call ControlClear
Call ControlEnable(False)
CmdAdd.Enabled = True: CmdModify.Enabled = False
CmdDelete.Enabled = True: CmdSave.Enabled = False
CmdCancel.Enabled = False
MsgBox ("成功删除数据!")
End If
Else
MsgBox ("没有可删除的数据!")
End If
Exit Sub
ErrMsg:
MsgBox Err.Description, vbExclamation, "出错"
End Sub
Private Sub CmdSave_Click()
On Error GoTo ErrMsg
If Not CheckData Then Exit Sub
If flag = "Modify" Then
msg = MsgBox("确定要修改该条数据吗?", vbYesNo)
If msg = vbYes Then
For Index = 0 To 2
Call setData
Next Index
Else
Exit Sub
End If
ElseIf flag = "Add" Then
rs.AddNew
Call setData
End If
rs.Update
CmdAdd.Enabled = True: CmdModify.Enabled = True: CmdDelete.Enabled = True
CmdCancel.Enabled = False: CmdSave.Enabled = False
If flag = "Add" Then
MsgBox ("成功添加数据!")
Else
MsgBox ("成功更新数据!")
End If
Call Form_Load
Exit Sub
ErrMsg:
MsgBox Err.Description, vbExclamation, "出错"
End Sub
Private Function CheckData() As Boolean
Dim rst As ADODB.Recordset
Dim msgt As String
msgt = ""
If Trim(textDeNo.Text) = "" Then
msgt = "部门代码为空; "
ElseIf Not Len(Trim(textDeNo.Text)) = 4 Then
msgt = "部门代码不是4位; "
ElseIf Trim(textDeName.Text) = "" Then
msgt = msgt & "部门名称为空; "
ElseIf Trim(textLeName.Text) = "" Then
msgt = msgt & "领导姓名为空; "
End If
If Not msgt = "" Then
MsgBox (msgt)
CheckData = False
Exit Function
End If
SQL = " select * from 部门信息表 where 部门代码='" & Trim(textDeNo.Text) & "'"
Set rst = SelectSQL(SQL, msg)
If flag = "Add" And rst.RecordCount > 0 Then
MsgBox ("该信息已经存在,重复添加!")
rst.Close
CheckData = False
Exit Function
End If
CheckData = True
End Function
Private Sub setData()
rs.Fields("部门代码") = Me.textDeNo.Text
rs.Fields("部门名称") = Me.textDeName.Text
rs.Fields("领导姓名") = Me.textLeName.Text
rs.Fields("联系地址") = Me.textAddress.Text
rs.Fields("联系电话") = Me.textPhone.Text
rs.Fields("简介") = Me.textJian.Text
End Sub


  • 今晚打老虎1
  • 啥也不懂
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
一运行就这样,求大神指点


2025-09-16 10:12:34
广告
不感兴趣
开通SVIP免广告
  • Luosen56
  • 小吧主
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
If rs.RecordCount <> 0 Then ' 这一句将遍历数据表,求得记录总数。
也就是说会影响当前记录指针的位置。
VB 对于记录指针的处理比较麻烦,应该在主调程序中判断,子程序负责赋值即可。
还有,那个【Form_Load】中主要放连接数据库的命令,也就是说把数据装进来就是。其他控制命令应该在其他位置去整,如【Form_Initialize】中。因为删除数据后将调用【Form_Load】重画操作界面。


  • Luosen56
  • 小吧主
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
Private Sub ShowData()
If rs.RecordCount <> 0 Then
Me.textDeNo.Text = rs.Fields("部门代码")
Me.textDeName.Text = rs.Fields("部门名称")
Me.textLeName.Text = rs.Fields("领导名称")
Me.textAddress.Text = rs.Fields("联系地址")
Me.textPhone.Text = rs.Fields("联系电话")
Me.textJian.Text = rs.Fields("简介")
End If
End Sub
这个子程序本来就是多余的。将文本框绑定字段名即可,无须编程。


  • Luosen56
  • 小吧主
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
  这个系统比较庞大,如果只是本单位用,不是商业软件的话,建议使用 VFP。VB 处理数据库的数据太麻烦了,和 VFP 不是一个档次。还有表格处理、记录指针、替换数据、复杂搜索,VB 动不动就要多次遍历数据表,而且可能还要做循环,VFP 就一条命令搞定。
  据说,年满30岁的未婚女员工,每月要多 4 天的谈朋友假期。你看 VB 要过滤出来这些人其程序有多麻烦。
  据说有害工种,男员工年满55岁或者30年工龄以上的、女职工年满50岁30年工龄以上的,可以提前退休……


登录百度账号

扫二维码下载贴吧客户端

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