ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 6464|回复: 15

[求助] Access VBA 從 子表單 尋找 主表單 資料

[复制链接]

TA的精华主题

TA的得分主题

发表于 2010-4-14 12:48 | 显示全部楼层 |阅读模式
Access 從子表單尋找主表單資料, 請看附件
主表單是 Staff , 子表單是 PC , Monitor, Printer 等等電腦資料

希望從主表單 staff 加入一個 Text , command button 可以尋找 PC , monitor 資料 , 例如
在 Staff 右上角 輸入 "DDD456" 然後 按 button, 就可以找到 staff No. 0001 有 2 台 Printer "DDD456" 及 'VV1234'

如果我只知道部分 Serial No 例如 "456", 都可以找到 主表單及子表單都出現 "456" 的資料

煩請 教導有關 code.
謝謝

Test SubForm 14.4.10.zip

103.21 KB, 下载次数: 31

TA的精华主题

TA的得分主题

发表于 2010-4-14 16:42 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
原帖由 shijidunan 于 2010-4-14 12:48 发表
Access 從子表單尋找主表單資料, 請看附件
主表單是 Staff , 子表單是 PC , Monitor, Printer 等等電腦資料

希望從主表單 staff 加入一個 Text , command button 可以尋找 PC , monitor 資料 , 例如
在 Staff 右 ...


你的附件中主窗体和子窗体已经绑定,下面的实例仅供参考.
Test SubForm 14.4.10.rar (60.94 KB, 下载次数: 37)

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-4-17 21:11 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
原帖由 sgrshh29 于 2010-4-14 16:42 发表


你的附件中主窗体和子窗体已经绑定,下面的实例仅供参考.
699113


謝謝你的設計...不過, 我仍然不能從子表單找出主表單資料. 例如, 我知道 Printer Serial No. 是 "ZZZ546", 我在 Text0 輸入了 "ZZZ546" 然後按 command, 出現了附件的信息. 請問出了甚麼問題呢 ? 是不是我用的是 繁體 Access 版本呢

煩請再次教導 謝謝,

[ 本帖最后由 shijidunan 于 2010-4-17 21:13 编辑 ]

Test SubForm 14.4.10.rar

15.5 KB, 下载次数: 7

TA的精华主题

TA的得分主题

发表于 2010-4-18 07:09 | 显示全部楼层
你在我给出的附件中的窗体1里面试过没有?我试了没有问题.如果还有问题,建议你新建一个空数据库,把这个数据库中的所有对象都导入到新的数据库中再试一次.

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-4-18 11:51 | 显示全部楼层
原帖由 sgrshh29 于 2010-4-18 07:09 发表
你在我给出的附件中的窗体1里面试过没有?我试了没有问题.如果还有问题,建议你新建一个空数据库,把这个数据库中的所有对象都导入到新的数据库中再试一次.


謝謝你回覆

1.  請問 如何產生 "資料表 PC"  ?  我只可以產生 "子表單 " 而已.
2.  我試過你的方法, 仍然不可以找出 serial no.  可否把你產生表單, 子表單的方法逐步寫出來, 我按著你方法做

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-4-18 22:01 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
原帖由 shijidunan 于 2010-4-18 11:51 发表


謝謝你回覆

1.  請問 如何產生 "資料表 PC"  ?  我只可以產生 "子表單 " 而已.
2.  我試過你的方法, 仍然不可以找出 serial no.  可否把你產生表單, 子表單的方法逐步寫出來, 我按著你方法做


can u help me ???

TA的精华主题

TA的得分主题

发表于 2010-4-19 09:45 | 显示全部楼层
原帖由 shijidunan 于 2010-4-18 11:51 发表


謝謝你回覆

1.  請問 如何產生 "資料表 PC"  ?  我只可以產生 "子表單 " 而已.
2.  我試過你的方法, 仍然不可以找出 serial no.  可否把你產生表單, 子表單的方法逐步寫出來, 我按著你方法做


把我的思路分步写下,不一定与你的思路一致,供你参考。
1、新建一个窗体,数据源为“Staff”表,添加一个文本框一个按钮。见下图。
01.JPG
2、添加三个子窗体控件,数据源分别为另外的三个表“pc”、“monitor”、“printer”。见下图。
02.JPG
3、在按钮的单击事件中写代码,红色的根据你的文本框名称定:
Dim strFilter As String
Dim strsql As String
Dim rs As Object
strsql = "SELECT Staff.[Staff No] FROM Printer INNER JOIN ((Staff INNER JOIN Monitor ON " _
    & "(Staff.[Staff No] = Monitor.[Staff No]) AND (Staff.[Staff No] = Monitor.[Staff No]) AND " _
    & "(Staff.[Staff No] = Monitor.[Staff No]) AND (Staff.[Staff No] = Monitor.[Staff No])) INNER JOIN " _
    & "PC ON (Staff.[Staff No] = PC.[Staff No]) AND (Staff.[Staff No] = PC.[Staff No])) ON " _
    & "Printer.[Staff No] = Staff.[Staff No] WHERE [Staff].[Post Title] & [Staff].[Name] & " _
    & "[Monitor].[Monitor Serial] & [Monitor].[Monitor Size] & [Monitor].[Monitor Brand] & " _
    & "[PC].[PC Models] & [PC].[Host Name] & [Printer].[Printer Brand] & [Printer].[Printer Serial No] " _
    & "Like '*" & Me.Text0 & "*' GROUP BY Staff.[Staff No]"
Set rs = CurrentDb.OpenRecordset(strsql)
Do Until rs.EOF
strFilter = strFilter & "[Staff No]='" & rs(0) & "' or "
rs.MoveNext
Loop
If strFilter = "" Then Exit Sub
strFilter = Left(strFilter, Len(strFilter) - 4)
Debug.Print strFilter
Set rs = Nothing
Me.Filter = strFilter
Me.FilterOn = True
4、测试效果。在文本框中输入“avc54”,见下图:
03.JPG
5、附件
Test SubForm 14.4.10.rar (62.25 KB, 下载次数: 16)

不知道如此解释可否?

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-4-20 17:26 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
原帖由 sgrshh29 于 2010-4-19 09:45 发表


把我的思路分步写下,不一定与你的思路一致,供你参考。
1、新建一个窗体,数据源为“Staff”表,添加一个文本框一个按钮。见下图。
701907
2、添加三个子窗体控件,数据源分别为另外的三个表“pc”、“monit ...



謝謝你, 我重新試過終於可以啦.. 煩請看看附件

另外, 我想有以下功能 :-

尋找 '2060'
希望找出答案

staff No 0001 Host name = 2060
staff No 0002 Monitor Serial = 206071M71M
staff No 0003 Monitor Serial = 206071M71M

好像 Excel Ctrl+F Find 功能一樣, 不斷按 Command button 就可以找出其他 value
可以麻 ?

如果我初學 Excel SQL  ( 你上面這些是不是 SQL ), 那裡可以找到學習網站呢 ?

Test SubForm 20.4.10.zip

110.35 KB, 下载次数: 10

TA的精华主题

TA的得分主题

发表于 2010-4-20 18:49 | 显示全部楼层
原帖由 shijidunan 于 2010-4-20 17:26 发表



謝謝你, 我重新試過終於可以啦.. 煩請看看附件

另外, 我想有以下功能 :-

尋找 '2060'
希望找出答案

staff No 0001 Host name = 2060
staff No 0002 Monitor Serial = 206071M71M
staff No 0003  ...


这个功能已经包含在上面的附件中了.你注意到主窗体的导航按钮没有?

[ 本帖最后由 sgrshh29 于 2010-4-20 18:51 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-4-23 16:26 | 显示全部楼层
原帖由 sgrshh29 于 2010-4-20 18:49 发表


这个功能已经包含在上面的附件中了.你注意到主窗体的导航按钮没有?

thank you ar ~~
這些 code 是甚麼 language ? VBA or SQL ?
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-12 21:06 , Processed in 0.030895 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表