Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

请问各位老师,这段代码怎么不起作用呀?

impower  发表于:2013-07-05 00:10:59  
复制

初学ACCESS,刚做的新增窗体,在判断有重复输入项时弹出警告窗口却没弹出,不知错在哪?请各位老师帮忙解答下,谢谢!

Option Compare Database


Private Sub cmd_Save()
Dim rst As DAO.Recordset
If IsNull(Me.bmmc) Then
MsgBox "请输部门名称!", vbCritical, "提示:"
    Me.bmmc.SetFocus
    Exit Sub
End If
Me.Refresh
If IsNull(Me.bmbh) Then
MsgBox "请输部门编号!", vbCritical, "提示:"
    Me.bmbh.SetFocus
    Exit Sub
End If
Me.Refresh
If Acchelp_StrDataIsExist("sbglbmxx_child", "部门名称", Me.bmmc) = True Then
    MsgBox "你输入的部门已经存在,请重新输入", vbCritical, "警告"
    Me.bmmc.SetFocus
    Exit Sub
End If
Me.Refresh
If Acchelp_StrDataIsExist("sbglbmxx_child", "部门编号", Me.bmbh) = True Then
    MsgBox "你输入的部门编号已经存在,请重新输入", vbCritical, "警告"
    Me.bmmc.SetFocus
    Exit Sub
End If
Me.Refresh
If MsgBox("您确认要保存吗?", vbOKCancel + vbInformation, "提示") = vbOK Then
Set rst = CurrentDb.OpenRecordset("sbglbmxx_child", dbOpenDynaset)
rst.AddNew
rst("部门名称") = Me.bmmc
rst("部门编号") = Me.bmbh
rst.Update
rst.Close
Set rst = Nothing
'刷新数据
If IsLoaded("usysfrmMain") Then
     DoCmd.Echo False
     Forms!usysfrmMain!frmChild.SourceObject = "frmsbglbmxx_child"
     DoCmd.Echo True
End If
    MsgBox "保存成功!", vbInformation, "提示"
    Me.bmmc = Null
    Me.bmbh = Null
End If
End Sub


Private Sub cmdCancel_Click()
DoCmd.Close acForm, Me.Name
End Sub


Private Sub cmdOK_Click()
 cmd_Save
End Sub


而不是出现

 

Top
落尘_小新 发表于:2013-07-05 16:05:39
你的窗体是不是绑定了数据源。试试改成非绑定。

impower 发表于:2013-07-05 18:29:18

谢谢,我的窗体没绑定的



impower 发表于:2013-07-05 18:30:47

我想要这样的效果



麥田 发表于:2013-07-05 20:05:45
    If DCount("ygxm", "tblCodeyg", "ygxm='" & Me.ygxm & "'") > 0 Then
        MsgBox "你输入的数据已经存在,请重新输入", vbCritical, "警告"
        Me.ygxm.SetFocus
        Exit Sub
    End If


麥田 发表于:2013-07-05 20:06:30
Access运行时错误'3022':由于将在索引、主关键字、或关系中创建重复的值,请求对表的改变没有成功。改变该字段中或包含重复数据的字段中的数据,删除索引或重新定义索引以允许重复的值并再试一次。的解决方法[Access软件网]
http://www.accessoft.com/article-show.asp?id=7686

麥田 发表于:2013-07-06 14:27:33
这段代码是umv开发平方的  在平台内置函数 在平台内用可以 脱离平台用acces自带的命令才行

impower 发表于:2013-07-06 22:09:39

谢谢麦田老师!我将代码改成如下:

If DCount("部门名称", "sbglbmxx_child", "部门名称='" & Me.bmmc & "'") > 0 Then
        MsgBox "你输入的部门已经存在,请重新输入", vbCritical, "警告"
        Me.bmmc.SetFocus
        Exit Sub
    End If
Me.Refresh
If DCount("部门编号", "sbglbmxx_child", "部门编号='" & Me.bmbh & "'") > 0 Then
        MsgBox "你输入的编号已经存在,请重新输入", vbCritical, "警告"
        Me.bmbh.SetFocus
        Exit Sub
    End If
成功出现




impower 发表于:2013-07-06 22:19:37

麦田老师:你好!这段代码是我将部门编号由数字改为文本后,部门编码才成功,请问老师如果部门编码段数据类型为数字格式该怎么写代码呢?谢谢!




殷小宝 发表于:2013-07-06 23:31:43
如果部门编码段数据类型为数字格式该怎么写代码,这样写就行了:if dcount("*",sbglbmxx_child","部门编号="& me.bmbh)>0

impower 发表于:2013-07-08 22:32:35
谢谢小宝老师

总记录:10篇  页次:1/1 9 1 :