ACCESS+VC,涉及要访问两个表的问题??

longv6216 2009-04-15 10:20:25
有菜谱表:菜号,菜价。
有订单表:桌号,菜号,菜的数量。//(桌号,菜号)是主键,所以会出现一张桌对应很多道菜的记录。
问:如何求一张桌的所有菜的价???

CString dec;
os.m_strFilter="order.Desk_code='"+m_strDeskCode;//os是订单表的记录集对象,求出桌号为m_strDeskCode的记录。
os.m_strFilter+="'";
os.Requery();
struct temp //定义结构体变量,存储每一个桌号对应的很多个“菜号,菜数量”
{
CString dicode;
long dinum;
}middle[100]; //数组有待完善,暂时不管。
int i=0;
if(!os.IsEOF())
{
middle[i].dicode=os.m_Dish_code;
middle[i].dinum=os.m_Dish_num;
i++;
os.MoveNext();
}
double money=0.0;
for(int m=0;m<i;m++) //查询菜价
{
ds.m_strFilter="dish.Dish_Code='"+middle[m].dicode;//ds为菜谱表的记录集对象
ds.m_strFilter+="'";
ds.Requery();

float pr=ds.m_Dish_price;
money+=pr*middle[m].dinum; //money为结账金额
}
m_money=money;



请问各位大哥、大姐这代码怎么个错法??? 小弟急求
...全文
26 点赞 收藏 2
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
longv6216 2009-04-15
我改过之后,还是不行,并且说内存不能读之类,请问到底如何实现啊???
回复
lvbajiao 2009-04-15
if(!os.IsEOF())
{
middle[i].dicode=os.m_Dish_code;
middle[i].dinum=os.m_Dish_num;
i++;
os.MoveNext();
}
你这儿没有循环,所以改成:
while(!os.IsEOF())
{
middle[i].dicode=os.m_Dish_code;
middle[i].dinum=os.m_Dish_num;
i++;
os.MoveNext();
}
回复
发帖
数据库
创建于2007-09-28

3953

社区成员

VC/MFC 数据库
申请成为版主
帖子事件
创建了帖子
2009-04-15 10:20
社区公告
暂无公告