7,714
社区成员
发帖
与我相关
我的任务
分享
<%
dim strsql,conn,rs
dim connstring
connstring = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("db2.mdb")
set conn = server.createObject("ADODB.Connection")
conn.open connstring
Set rs = Server.CreateObject("ADODB.Recordset")
strsql = " TRANSFORM Sum(q1.CNT) AS CNTOfSum" _
& " SELECT q1.nameid, q1.name" _
& " FROM (" _
& " select a.nameid,a.name,a.questionid, Choose(选项,选项1,b.选项2,b.选项3,b.选项4) & '总数' as CATE,1 as CNT" _
& " from 表二 a inner join 表一 b on a.questionid=b.questionid" _
& " union all" _
& " select a.nameid,a.name,a.questionid,'总分数' as CATE ,dlookup('分数','表三','tool=""' & Choose(选项,选项1,b.选项2,b.选项3,b.选项4) & '""' )" _
& " from 表二 a inner join 表一 b on a.questionid=b.questionid" _
& " ) q1" _
& " GROUP BY q1.nameid, q1.name" _
& " PIVOT q1.CATE"
rs.Open strsql, conn
do while not rs.eof
response.write rs.fields(0).value
response.write "<br/>"
response.write rs.fields(1).value
response.write "<br/>"
response.write rs.fields(2).value
rs.MoveNext
loop
rs.close
conn.close
set rs = nothing
set conn = nothing
%>
Public Sub test()
Dim sConn As String
Dim sSQL As String
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
sConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\temp\access\db2.mdb;User Id=admin;Password=;"
conn.Open sConn
sSQL = " TRANSFORM Sum(q1.CNT) AS CNTOfSum" _
& " SELECT q1.nameid, q1.name" _
& " FROM (" _
& " select a.nameid,a.name,a.questionid, Choose(Ñ¡Ïî,Ñ¡Ïî1,b.Ñ¡Ïî2,b.Ñ¡Ïî3,b.Ñ¡Ïî4) & '×ÜÊý' as CATE,1 as CNT" _
& " from ±í¶þ a inner join ±íÒ» b on a.questionid=b.questionid" _
& " union all" _
& " select a.nameid,a.name,a.questionid,'×Ü·ÖÊý' as CATE ,dlookup('·ÖÊý','±íÈý','tool=""' & Choose(Ñ¡Ïî,Ñ¡Ïî1,b.Ñ¡Ïî2,b.Ñ¡Ïî3,b.Ñ¡Ïî4) & '"" )" _
& " from ±í¶þ a inner join ±íÒ» b on a.questionid=b.questionid" _
& " ) q1" _
& " GROUP BY q1.nameid, q1.name" _
& " PIVOT q1.CATE"
rs.Open "query1", conn
Do While Not rs.EOF
Debug.Print rs.Fields(0).Value, rs.Fields(1).Value
rs.MoveNext
Loop
rs.Close
conn.Close
create table 表一
(
questionid integer,
选项1 char,
选项2 char,
选项3 char,
选项4 char
)
create table 表二
(
nameid varchar(4),
name varchar(20),
questionid integer,
选项 integer
)
create table 表三
(
tool char,
分数 integer
)
TRANSFORM Sum(q1.CNT) AS CNTOfSum
SELECT q1.nameid, q1.name
FROM (
select a.nameid,a.name,a.questionid, Choose(选项,选项1,b.选项2,b.选项3,b.选项4) & '总数' as CATE,1 as CNT
from 表二 a inner join 表一 b on a.questionid=b.questionid
union all
select a.nameid,a.name,a.questionid,'总分数' as CATE ,dlookup("分数","表三","tool='" & Choose(选项,选项1,b.选项2,b.选项3,b.选项4) & "'" )
from 表二 a inner join 表一 b on a.questionid=b.questionid
) q1
GROUP BY q1.nameid, q1.name
PIVOT q1.CATE ;
nameid name C D I S 总分数
001 小章 2 1 2 1 40