Access交流中心

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

[5分]如何设置记录地条件增加?

白桦林  发表于:2011-09-21 22:26:55  
复制

在表1中有A1(文本字段)、A2、A3字段

表2中也有A1字段

表1是空表

表2有数条记录,其中的A1字段是有值的

 

我想实现的是,当给表1增加记录时

给A1字段所输入的值必须=表2中A1字段的值中的一个时才能有效地给表1增加记录

否则不能给表1增加记录。

 

应该怎么设置?

 

 

附件如下:

点击下载此附件

 

Top
细水长流 发表于:2011-09-21 23:14:05
是你要的结果吗?点击下载此附件

细水长流 发表于:2011-09-22 00:00:29
具体设置

白桦林 发表于:2011-09-27 11:12:06

1、2楼的做法是能实现,但不是输入”的值=表2.A1的值

而是直接把表2.A1的值提供给了记录增加者!

这不是我想要的结果!

表2.A1要作为注册码的话,必须是在表1.A1输入的值和表2.A1系统的值相同!



dbaseIIIer 发表于:2011-09-28 00:39:34

在表2 A1 字段  若表内的唯一值,  请在索引内内建一个唯一索引

 

然后在菜单上 工具->关系

 

使 表2 的A1 和 表1 的 A1 发生 性关系,

 

这个性关系叫  "实施参照完整性" 关系, 是否级联更新, 级联删除 就 看你怎应用了!

 

 

若表2的A1字段并没有唯一性的话, 是建立不了这个性关系的,

只能在窗体的 "更新前" 代码中 编写dlookup等代码 检测是否 cancel=false来允许更新!



符鸿敏 发表于:2011-10-03 08:56:34

点击下载此附件

 

这样可以吗?



乔峰 发表于:2011-10-08 23:18:16

总版主的答案不能满足  


给A1字段所输入的值必须=表2中A1字段的值中的一个时才能有效地给表1增加记录


否则不能给表1增加记录。

乔峰 发表于:2011-10-08 23:33:54



总版主的是对的,限于列表  那里改成 即可



乔峰 发表于:2011-10-08 23:35:16
总版主的是对的,限于列表 那里改成 是 即可

西出阳关无故人 发表于:2011-10-09 20:12:16

楼主是想不用下拉列表选择,直接键盘输入吧?

 



白桦林 发表于:2011-10-10 19:58:14

五楼做的示例实现不了我要的结果

以五楼给的示例,我仍然可以在表1中随便输入任何数据

请看附件:

点击下载此附件

符鸿敏 发表于:2011-10-10 20:49:15

点击下载此附件

 

正如8楼所说,限于列表 那里改成 是 即可 。



白桦林 发表于:2011-10-11 00:33:03

11楼的示例直接可以在表1中可以看到A1的可输入值!

我不想把可输入值直观的提供给输入者!

例如可输入值是注册码,是需要购买的!

呵呵



符鸿敏 发表于:2011-10-11 08:45:14
表是用来存储数据的,哪有直接让用户自行打开填数据的呀。正规方法应该是做一个数据添加窗体用来输入数据,并通过设置追加查询规则,或者设置一些表存储规则,可以使数据的添加能符合要求,而不符合要求的数字则不允许添加。

西出阳关无故人 发表于:2011-10-11 22:40:11
白桦林 发表于:2011-10-12 22:15:18

14楼的示例很接近我要的结果了

但把表1和表2搞混了,我要检测的是输入的值在表2的A1字段中是否存在,呵呵

还有一个问题: 没有在检测通过时把text5的值输给表1.



西出阳关无故人 发表于:2011-10-13 23:40:03

我只是告诉你实现的方法!



乔峰 发表于:2011-10-19 15:25:42
Option Compare Database

Private Sub Command4_Click()
Dim A, rs As New ADODB.Recordset
A = DCount("*", "表2", "A1='" & Me.Text5 & "'")

If A >= 1 Then

rs.Open "表1", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
rs.AddNew
rs.Fields("A1") = Me.Text5
rs.Update
rs.Close
Set rs = Nothing

'MsgBox "录入正确(表2中存在文本框的数据)!"
Else
MsgBox "录入错误(表2中不存在文本框的数据)!"
End If
End Sub


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