Access SQL查询语句是兼容的,有两种方式可以使用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只能借助编程手段了。