問題:在Access97 - access 2003 的時代,我們依靠掌握關(guān)系型數(shù)據(jù)庫的基本范式來完成多值數(shù)據(jù)庫的設(shè)計,但是為此我們不得不多寫很多代碼。
在access 97- access 2003 時代,為了完善數(shù)據(jù)結(jié)構(gòu),我們需要建立 2 張表來存儲以下結(jié)構(gòu):
dq xm
A 張三,李四
B 王五,王六,王七
C 王九
設(shè)計表結(jié)構(gòu)
表1:
dq(地區(qū)) ms(描述)
A 沿海城市,人口發(fā)達(dá)
B 內(nèi)陸城市,人口疏松
C 邊疆城市,外國人多
表2:
dq(地區(qū)) xm(姓名)
A 張三
A 李四
B 王五
B 王六
B 王七
C 王九
然后用VBA 代碼進(jìn)行合并。
回答:
而 access 2007 中我們完全可以使用多值。創(chuàng)建多值的步驟如下:
將表轉(zhuǎn)為設(shè)計視圖
選定字段
選定“參閱”選卡
更改“顯示控件”為組合框
更改“行來源類型”為“值列表”或者“表/查詢”
設(shè)定行來源,更改“允許多值”為“是”
圖片如下:
圖片如下:
圖片如下:
多了多值字段,SQL 語句也發(fā)生了相應(yīng)的變化,比如:普通字段[A]一旦有了多值屬性,那么它會增加一個子字段[A.VALUE]
查詢所有的記錄,并且每個值占一行:
select [id],[A],[A].[value] from [table name]
查詢所有記錄,但是多值都合并為一行顯示:
select [id],[A] from [table name]
刪除整行:
delete from [table name] where [A].[value] = 5
刪除多值字段的其中某個字段
delete [A].[value] from [table name] where [A].[value] = 5
新聞熱點
疑難解答
圖片精選