access怎么写sql

学智咖 人气:4.35K
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只能借助编程手段了。

TAGS:access SQL