Access交流中心

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

[窗体] 求助!根据子窗体不同字段值打开不同的编辑窗体!

大树孔  发表于:2021-04-09 21:29:23  
复制

菜鸟求助大佬:
    现有三个表
    表1字段为:ID,Type,Name
    表2字段为:ID,Type,Name,Nation
    表3字段为:ID,Type,Name,Nation,Phone

    Type字段内容有:自有,派遣,其他
    根据三个表建了个联合查询Qry,并且以联合查询作为记录源建立窗体(平台生成):查询.Qry和查询.Edit
    并且三个表各自建立窗体:表1.Qry,表1.Edit,表2.Qry,表2.Edit,表3.Qry,表3.Edit

    目前通过"查询.Qry"窗体双击或点击编辑可以打开对应记录的编辑窗体,但因记录源是联合查询,无法直接编辑。

    现在需求:
    通过“查询.Qry”窗体
    1)如果当前记录中Type=自有,则打开“表1.Edit”对应ID的编辑窗体
    2)如果当前记录中Type=派遣,则打开“表2.Edit”对应ID的编辑窗体
    3)如果当前记录中Type=其他,则打开“表3.Edit”对应ID的编辑窗体

因为三个表的ID虽然字段名称相同,但是自动编号规则不一致。
麻烦高手给个代码或者思路,谢谢了!

 

Top
西出阳关无故人 发表于:2021-04-10 14:39:49

最简单的,三个表的id都查询出来,到时候根据type的不同,打开不同的窗体,并使用不同的id值去筛选/定位刚打开的窗体.

终极的办法是添加一个"编号"字段,并用他作为主键,其他表只有编号就够了,例如:

    表1字段为:ID,Type,编号,Name
    表2字段为:ID,编号,Nation,otherfield
    表3字段为:ID,编号,Phone,otherfield

自动编号ID也应该保留,另有他用.



大树孔 发表于:2021-04-12 15:31:40
感谢版主答复。是这样的
之所以建3张表,原因在于每张表的ID自动编号规则(表1编号,表2编号,表3编号)并不一致,而且3张表中除了有共同字段外,也有不同字段,每张表的编辑窗体是不一样的,字段1的下拉数据为A,B,C


能否帮忙改一下代码,现有表1、表2、表3


表1:ID,字段1,字段2,字段3
表2:ID,字段1,字段2,字段3,字段4,字段5
表3:ID,字段1,字段2,字段3,字段4,字段5,字段6,字段7
联合查询表1、表2和表3:ID,字段1,字段2,字段3


3张表和联合查询各自通过平台窗体生成主窗体(main)、列表窗体(list)和编辑窗体(edit)


因为联合查询打开的编辑窗体无法进行数据修改只能查看(而且根据联合查询,只查询3张表的共同字段),所以现在想实现的功能是:


在联合查询main窗体中点击编辑,如果选中行字段1的值为A,则打开表1edit,如果为B则打开表2edit,如果为C则打开表3edit


能否给一个根据字段1的值不同而打开不同编辑窗体的代码


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