数据库名称:data.db
数据库里有两张表:tableA,tableB
tableA表,有三个字段,id,班级名称,学生人数
tableB表,有四个字段,id,班级名称,学生姓名,学生成绩
其中:tableA、tableB两表中的“班级名称”字段是一样的。
目的:求ASP代码,统计tableB表中每班的学生数,更新到tableA表对应班级的“学生人数”字段中。
tableA表样式:
id 班级名称 学生人数
1 A01班
2 A02班
3 A03班
... ....
tableB表样式:
id 班级名称 学生姓名 学生成绩
1 A01班 张冲 566
2 A01班 李晓建 512
3 A01班 许莎莎 523
... .... ... ...
56 A02班 刘欢庆 498
57 A02班 孙悦然 611
... ... ... ...
万分感谢!谢谢!
8 个解决方案
#1
UPDATE tableA a set 学生人数 = (select count(*) from tableB b where b.班级名称=a.班级名称 )
#2
<%
dim conn,sql
Set conn = Server.CreateObject("ADODB.Connection")
DBPath = Server.MapPath("/data/data.mdb")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath
sql="UPDATE tableA a set 学生人数 = (select count(*) from tableB b where b.班级名称=a.班级名称 ) "
conn.execute(sql)
set conn=nothing
%>
完整的写法是这样吗?
#3
是的,运行是否正确?
#4
错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][ODBC Microsoft Access Driver] 参数不足,期待是 1。
/bbbb.asp, 第 7 行
这一行:
conn.execute(sql)
参数不足,期待是1
应该如何修改啊?谢谢!
#5
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath
改成
conn.Open "provider=Microsoft.Jet.OLEDB.4.0;Data Source="&DBPath
改成
conn.Open "provider=Microsoft.Jet.OLEDB.4.0;Data Source="&DBPath
#6
代码如下:
<%
dim conn,sql
Set conn = Server.CreateObject("ADODB.Connection")
DBPath = Server.MapPath("/data/data.mdb")
conn.Open "provider=Microsoft.Jet.OLEDB.4.0;Data Source="&DBPath
'conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath
sql="UPDATE tableA a set 班级人数 = (select count(*) from tableB b where b.班级名称=a.班级名称 ) "
conn.execute(sql)
set conn=nothing
response.write("更新完成")
%>
老问题解决了,又出现新问题:
Microsoft JET Database Engine (0x80004005)
操作必须使用一个可更新的查询。
/bbbb.asp, 第 9 行
百度了一下,按照百度的方法,修改文件夹,为数据库文件夹“安全”添加everyone,并设置权限。问题依旧……
#7
怪事吧?
ASP操作一个工作表时,没有问题;
只有在这里,操作两个工作表时,出现这个问题:
Microsoft JET Database Engine (0x80004005)
操作必须使用一个可更新的查询。
ASP操作一个工作表时,没有问题;
只有在这里,操作两个工作表时,出现这个问题:
Microsoft JET Database Engine (0x80004005)
操作必须使用一个可更新的查询。
#8
这是个新新问题。另开贴求助吧。
感谢wangsdong 的帮助,谢谢!
感谢wangsdong 的帮助,谢谢!
#1
UPDATE tableA a set 学生人数 = (select count(*) from tableB b where b.班级名称=a.班级名称 )
#2
<%
dim conn,sql
Set conn = Server.CreateObject("ADODB.Connection")
DBPath = Server.MapPath("/data/data.mdb")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath
sql="UPDATE tableA a set 学生人数 = (select count(*) from tableB b where b.班级名称=a.班级名称 ) "
conn.execute(sql)
set conn=nothing
%>
完整的写法是这样吗?
#3
是的,运行是否正确?
#4
错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][ODBC Microsoft Access Driver] 参数不足,期待是 1。
/bbbb.asp, 第 7 行
这一行:
conn.execute(sql)
参数不足,期待是1
应该如何修改啊?谢谢!
#5
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath
改成
conn.Open "provider=Microsoft.Jet.OLEDB.4.0;Data Source="&DBPath
改成
conn.Open "provider=Microsoft.Jet.OLEDB.4.0;Data Source="&DBPath
#6
代码如下:
<%
dim conn,sql
Set conn = Server.CreateObject("ADODB.Connection")
DBPath = Server.MapPath("/data/data.mdb")
conn.Open "provider=Microsoft.Jet.OLEDB.4.0;Data Source="&DBPath
'conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath
sql="UPDATE tableA a set 班级人数 = (select count(*) from tableB b where b.班级名称=a.班级名称 ) "
conn.execute(sql)
set conn=nothing
response.write("更新完成")
%>
老问题解决了,又出现新问题:
Microsoft JET Database Engine (0x80004005)
操作必须使用一个可更新的查询。
/bbbb.asp, 第 9 行
百度了一下,按照百度的方法,修改文件夹,为数据库文件夹“安全”添加everyone,并设置权限。问题依旧……
#7
怪事吧?
ASP操作一个工作表时,没有问题;
只有在这里,操作两个工作表时,出现这个问题:
Microsoft JET Database Engine (0x80004005)
操作必须使用一个可更新的查询。
ASP操作一个工作表时,没有问题;
只有在这里,操作两个工作表时,出现这个问题:
Microsoft JET Database Engine (0x80004005)
操作必须使用一个可更新的查询。
#8
这是个新新问题。另开贴求助吧。
感谢wangsdong 的帮助,谢谢!
感谢wangsdong 的帮助,谢谢!