綜合知識

當前位置 /首頁/綜合知識 > /列表

access怎麼寫sql

1. ACCESS執行SQL語句,ACCESS怎麼寫SQL語句

Access SQL查詢語句是兼容的,有兩種方式可以使用SQL語句:

access怎麼寫sql

方式一:在“查詢”的試圖裏,可以使用Access的嚮導模式,也可以直接使用SQL語言模式,如下圖:

打開任何一個查詢,在標籤處選擇SQL視圖,就會變成以下SQL界面了:

ACCESS還有一種方式,就是在其自帶的VB裏面,但是不能直接運行SQL語句,需要按照以下格式:

DoCmd.RunSQL "SQL語句;" (注意:引號和分好不要落下)

DoCmd.RunSQL "UPDATE 複製薪酬 SET 複製薪酬.公司 = [Forms]![項目信息]![項目名稱];"

以下是一個集中使用SQL的案例:

2. 列出Access數據庫結構的SQL怎麼寫

能在SQLServer裏寫,你可以把access數據倒到SQLServer裏

説SQL不能寫出來的都過來學學。

---------------------------------------------------

SELECT

表名 = CASE WHEN A.COLORDER=1 THEN D.NAME ELSE ' ' END,

--字段序號 = A.COLORDER,

字段名稱 = A.NAME,

--標識 = CASE WHEN COLUMNPROPERTY( A.ID,A.NAME, 'ISIDENTITY ')=1 THEN '√ 'ELSE ' ' END,

/*主鍵 = CASE WHEN EXISTS(SELECT 1 FROM SYSOBJECTS WHERE XTYPE= 'PK ' AND PARENT_OBJ=A.ID AND NAME IN (

SELECT NAME FROM SYSINDEXES WHERE INDID IN(

SELECT INDID FROM SYSINDEXKEYS WHERE ID = A.ID AND COLID=A.COLID))) THEN '√ ' ELSE ' ' END,*/

類型 = B.NAME ,

佔用字節數 = A.LENGTH,

--長度 = COLUMNPROPERTY(A.ID,A.NAME, 'PRECISION '),

--小數位數 = ISNULL(COLUMNPROPERTY(A.ID,A.NAME, 'SCALE '),0),

能否為空 = CASE WHEN A.ISNULLABLE=1 THEN '能'ELSE '否' END,

默認值 = ISNULL(E.TEXT, ' '),

表説明 = CASE WHEN A.COLORDER=1 THEN ISNULL(F.VALUE, ' ') ELSE ' ' END

--欄位説明 = ISNULL(G.[VALUE], ' ')

FROM

SYSCOLUMNS A

LEFT JOIN

SYSTYPES B

ON

A.XUSERTYPE=B.XUSERTYPE

INNER JOIN

SYSOBJECTS D

ON

A.ID=D.ID AND D.XTYPE= 'U ' AND D.NAME <> 'DTPROPERTIES '

LEFT JOIN

SYSCOMMENTS E

ON

A.CDEFAULT=E.ID

LEFT JOIN

sys.extended_properties G

ON

A.ID=G.major_id AND A.COLID=G.minor_id

LEFT JOIN

sys.extended_properties F

ON

D.ID=F.major_id AND F.minor_id=0

ORDER BY

A.ID,A.COLORDER

3. 可以使用ACCESS或SQL的數據庫的程序該怎麼寫

我是利用VB

可以使用ACCESS數據庫的程序,通過VB鏈接access數據庫一般都是用ADO訪問技術,有ADO控件和代碼兩種形式,控件比較簡單些,代碼比較複雜些,但是通用性很強。我給你講下控件的吧

首先你要在工程裏引用這個控件ADODC

Dim qq As String

qq = "select * from 表1"

Adodc1.ConnectionString = "provider=microsoft.jet.oledb.4.0;data source=qq.mdb" '比較簡單的字符串鏈接,你的ACCESS要放到和這個程序相同的目錄下

Adodc1.CommandType = adCmdUnknown'這句話是鏈接你的ACCESS數據庫 (一)

Adodc1.RecordSource = qq '得到限定條件的數據

Adodc1.Refresh '刷新

Set Text1.DataSource = Adodc1 '將數據賦值給文本控件

Text1.DataField = "qq" '選擇要顯示的字段

我説的這些僅僅是簡單的數據訪問,其實數據庫訪問是一個很大的學問,程序的好壞直接影響你的程序速度

我講的已經很清楚了啊,難道你還不明白??你説的打印到底是什麼意思?是不是打印出紙質的,打印一般都是通過報表來實現的,如果你要想在VB窗體中打印只能打印顯示數據的控件或者打印窗體。

CommonDialog1.ShowPrinter '調用打印機對象

Me.PrintForm '打印窗體

如果你想把數據庫中查找到的記錄放到一個表格中,可以在“部件”中選擇DATAGRID控件,這個控件可以以表格的形式顯示你的數據

4. 在access中怎麼寫sql查詢語句,select查詢出一個有不同班級同學成績

由於SQL語言處理問題的方式是面向記錄"集合"的。解決排名這類問題對於SQL來説確實頭疼,分組排名就更不用説了! 為了解決排名問題大型數據庫系統為用户提供了RANK、ROWNUMBER等函數,但是ACCESS不支持排名、開窗等這類函數,一般建議用編程方式解決,例如VBA等。

這個問題確實不好回答。看到樓主就同一問題已經提問幾次了,今天嘗試用SQL解決如下,供參考

首先假設數據結構如下:

students(sid,name,class)

scores(sid,score)

學生表與分數表基於sid建立一對多參照完整性

檢索出所有班級與每個學生的學號、姓名、分數按班級、得分排序

select a.class,b.sid,a.name,b.score from

students a,scores b where a.sid=b.sid

order by a.class,b.score desc;

檢索出每個班級前三名的學生學號、姓名和得分,按班級升序、得分降序排名

實現SQL代碼

select a.class,a.sid,a.name,a.score from

(select a.class,a.name,b.sid,b.score from students a,scores b where a.sid=b.sid)a where a.score in(

select top 3 b.score from (select distinct class,score from scores)b

where b.class=a.class order by b.score desc

) order by a.class,a.score desc;運行結果

從上述代碼來看實現這樣的效果已經很麻煩,至於學生班名次,ACCESS只能藉助編程手段了。

TAG標籤:access SQL #