Access交流中心

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

如何将另一表中的字段跟当前窗体字段作比较?

珲  发表于:2017-10-31 20:54:34  
复制

表1 :PID,OID  PID为主键 

表2:PID,OID  OID为主键

不是主键是都可为空  


我想实现的功能是,在窗体中将表1当前记录复制到表2(OID不为空时),当表2已存在OID,PID不为空且表2.PID≠表1.PID时提示已存在相同OID,并撤销输入。

附上示例文件,复制功能我已经做好了,就差怎么判断了。请各位老师指教。

点击下载此附件

 

Top
仙来 发表于:2017-11-01 11:47:39
'    Dim stLinkCriteria As String
'    Dim intCount As Integer
'
'    stLinkCriteria = "[OID]=" & "'" & Me![OID] & "'"
'    intCount = DCount("OID", "表2", stLinkCriteria)
    If DCount("OID", "表2", "OID='" & Me.OID & "'") > 1 Or IsNull(Me.PID) Or DCount("PID", "表2", "PID='" & Me.PID & "'") > 1 Then
    MsgBox "表2已存在该OID主键或PID为空或PID值有重复!"
    Me.PID = Null
    Me.PID.SetFocus
    Exit Sub
    Else
'    If Len(Me.OID) > 0 And intCount = 0 Then
     DoCmd.SetWarnings False
      DoCmd.RunSQL "INSERT INTO 表2(PID,OID) VALUES('" & Me.PID & "','" & Me.OID & "')"
       DoCmd.SetWarnings True
    End If
   Me.Requery

珲 发表于:2017-11-01 23:28:57
谢谢楼上,虽然没实现我要的功能,但提示思路了,解决了 

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