Office中国论坛/Access中国论坛
标题: 两个问题 [打印本页]
作者: zxh 时间: 2005-9-28 18:25
标题: 两个问题
1
有一个表是入库价格,字段有:id,有效期, 商品编号,入库价格
1 2004-1-1 001 2.25
2 2004-1-2 001 2.24
3 2004-1-2 002 3.15
4 2004-1-3 002 3.16
5 2004-1-3 001 2.26
......
我现在要计算入库成本,但是入库单明细里没有入库价格的,只能从入库价格表里循环查找最新的价格(即找入库明细日期前最近的入库价格),在Access里有没有快速高效的办法?我用的是在代码里边循环的代码即for i=1 to rs.count ...next的方法,但是计算非常的慢.
2
在Access里用Ado的方法(数据库是SQL Server,ADO做客户端),在做交叉查询和报表时会不会很麻烦,且有可能不能实现?
[此贴子已经被作者于2005-9-28 10:32:40编辑过]
作者: LucasLynn 时间: 2005-9-28 19:29
以下是引用zxh在2005-9-28 10:25:00的发言:
1
有一个表是入库价格,字段有:id,有效期, 商品编号,入库价格
1 2004-1-1 001 2.25
2 2004-1-2 001 2.24
3 2004-1-2 002 3.15
4 2004-1-3 002 3.16
5 2004-1-3 001 2.26
......
我现在要计算入库成本,但是入库单明细里没有入库价格的,只能从入库价格表里循环查找最新的价格(即找入库明细日期前最近的入库价格),在Access里有没有快速高效的办法?我用的是在代码里边循环的代码即for i=1 to rs.count ...next的方法,但是计算非常的慢.
2
在Access里用Ado的方法(数据库是SQL Server,ADO做客户端),在做交叉查询和报表时会不会很麻烦,且有可能不能实现?
1、SQL:条件、排序、最后一条记录。
2、应该不会
作者: zxh 时间: 2005-9-28 19:39
能否说详细一点啊?小弟不太明白,第二个问题的方法是不是用sql的视图实现交叉查询?报表的数据源怎样取?用recordset?
作者: LucasLynn 时间: 2005-9-28 19:40
以下是引用zxh在2005-9-28 11:39:00的发言:
能否说详细一点啊?小弟不太明白,第二个问题的方法是不是用sql的视图实现交叉查询?报表的数据源怎样取?用recordset?
1、在Access帮助中,选择Jet SQL部分,SELECT语句的帮助内容中有你要找的答案。只要一行SQL代码即可完成。
2、你只要会在MDB中写交叉查询,然后把SQL视图中的命令复制到你的代码中,更改数据源为SQL Server,然后用Recordset打开即可。
[此贴子已经被作者于2005-9-28 11:46:40编辑过]
作者: zxh 时间: 2005-9-28 23:49
报表的数据源我用recordset打开后还是不会绑定到控件里,在报表里显示不出来数据,请明示?
作者: LucasLynn 时间: 2005-9-28 23:55
以下是引用zxh在2005-9-28 15:49:00的发言:
报表的数据源我用recordset打开后还是不会绑定到控件里,在报表里显示不出来数据,请明示?
绑定数据源到控件请参考Access的范例,罗斯文数据库。
作者: zxh 时间: 2005-9-29 00:01
strConnect = "rovider=MSDataShape;Data Provider=SQLOLEDB;" _
& "Integrated Security=SSPI;Data Source=" & Server & ";" _
& "Initial Catalog=" & Catalog & ";user id=" & userid & ";password=" & PassWord & ""
conn.Open strConnect
Dim sql As String
'Dim rs As New ADODB.Recordset
sql = "select * from tb_loginrecord"
Set rs = New ADODB.Recordset
rs.Open sql, conn, adOpenStatic, adLockReadOnly我是用这个方法打开的,但不会绑啊,不像平常的数据源直接来源于表或查询的,是用ADO取的数据
作者: LucasLynn 时间: 2005-9-29 00:31
Set Me.Recordset = rs
作者: zxh 时间: 2005-9-29 00:39
大哥,不行啊!显示不出来
[此贴子已经被作者于2005-9-28 16:39:18编辑过]
作者: LucasLynn 时间: 2005-9-29 00:41
以下是引用zxh在2005-9-28 16:39:00的发言:
大哥,不行啊!显示不出来
没注意你是SQL Server,改用ADP吧。MDB的窗体Recordset是DAO类型的,ADP的是ADO的。
作者: zxh 时间: 2005-9-29 00:52
ADP做的客户端能否屏蔽掉shift键的?方法是不是跟MDB一样屏蔽?不是的话请明示?还有连接数据库时的密码如何解决才比较安全?
作者: LucasLynn 时间: 2005-9-29 00:56
以下是引用zxh在2005-9-28 16:52:00的发言:
ADP做的客户端能否屏蔽掉shift键的?方法是不是跟MDB一样屏蔽?不是的话请明示?还有连接数据库时的密码如何解决才比较安全?
你去ADP版问问吧,我没用过ADP。
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) |
Powered by Discuz! X3.3 |