Office中国论坛/Access中国论坛
标题: [緊急求助]這個按鈕的代碼該怎么寫? [打印本页]
作者: Airin 时间: 2003-7-31 01:38
标题: [緊急求助]這個按鈕的代碼該怎么寫?
現在傳上庫,麻煩各位大哥幫忙看看!謝謝!
作者: Airin 时间: 2003-7-31 01:52
[attach]1296[/attach]
剛才沒有傳上去,真對不起,現已傳上,煩請各位大哥賜教!謝謝!
作者: 阿罗 时间: 2003-7-31 10:31
提供一个思路吧。
例如有n层部门,表的结构是
t1: t1ID(int, PK), t1(varchar)
t2: t2ID(int, PK), t1ID(int, FK), t2(varchar)
t3: t3ID(int, PK), t2ID(int, FK), t3(varchar)
................
................
tn: tnID(int, PK), tn-1ID(int, FK), tn(varchar)
然后,由于每个员工都有可能直接挂在某个部门下面,那么,employee看上去只能酱紫:
employee: empID(int PK), t1ID(int FK), t2ID(FK), t3ID(FK), ... tnID(FK), empName, gender, birth...blah blah blah,我们现在计划在窗体上绑定数据源employee,然后用me.filter来得到结果集。
现在的问题是,要做一个comboBox,看起来要像下面这个样子(假定t1,t2,t3三个表)
绑定列看起来应该是三个id的某种数字或字母组合,例如t1ID+(t2ID*10)+(t3ID*100),或者例如t1ID & "_" & t2ID & "_" & t3ID (就暂时不考虑null和转换了),看起来是后面一种办法好一些。
例如:
SELECT Str(t1!t1ID) & "_" & Str(t2!t2ID) & "_" & Str(t3!t3ID) AS comboID, t1.t1 & "_" & t2.t2 & "_" & t3.t3 As comboContext
FROM (t1 LEFT JOIN t2 ON t1.t1ID=t2.t1ID) LEFT JOIN t3 ON t2.t2ID=t3.t2ID
然后是按下按钮了,要有一段程序,把t1ID & "_" & t2ID & "_" & t3ID这段中的每个id提取出来,假定说,你编了一个function extract(n as int, byVal comboID as string), 用法是extract(n, comboID)将第n个id抽出来。然后将filter组织成这样:
me.filter = "t1ID = " & extract(1, comboID) & " AND t2ID = " & extract(2, comboID) &..
当然需要判断抽出的id是否null或<=0
当然搞个循环看上去很专业。
[此贴子已经被作者于2003-7-31 2:35:46编辑过]
作者: Airin 时间: 2003-7-31 16:28
你好,謝謝你!
但我看不明白,由于我急用,能否請你代勞?本人將感激不盡,謝謝!
另我的職位表中的職位是就是那樣的,如果要分開,會對以后的工作造成很大的麻煩。
作者: Airin 时间: 2003-7-31 20:12
各位大哥,請抬尊手,幫幫忙!小弟在這里先謝謝了!
作者: 唐小小 时间: 2003-7-31 20:44
标题: 上传
[attach]1301[/attach]
我的机子出了点问题,可能是病毒,不能继续了,你的模块不错,我抄下来了,哈哈,谢!
[此贴子已经被作者于2003-7-31 12:50:09编辑过]
作者: 懒虫 时间: 2003-7-31 22:17
getnum([职务])诗什么函数,做什么用??请告知!!谢谢!!
[此贴子已经被作者于2003-7-31 14:17:53编辑过]
作者: lijiawy 时间: 2003-8-1 00:20
getnum的作用是将_划分开,如选1的话职务字段_只出现1次,依次类推
作者: Airin 时间: 2003-8-1 03:43
lijiawy兄說的沒錯,getnum是一個自定義函數,(在資料庫中的模組中可以看到),用來判斷下線的出現次數,也可以在程序中使用。自已摸索吧!
作者: 唐小小 时间: 2003-8-1 04:54
就是用了两个函数
UBound(Split(字段名或者文本框名, "你想查个数的字符"))
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) |
Powered by Discuz! X3.3 |