从Access到Asp.net(二)
【第二章:数据库的建立】
图片文件夹我也放在这里,分成了大图和小图 点击浏览该文件
根据数据结构图的要求建立一个数据表
建立tab_pkinds 表,在这里凡是表我们都以tab为开头,表里只有一个字段:pkinds,一个自动编号字段,大家在设计表的时候,自动编号字段无论有用与否,都应该保留。
建立tab_pinfo 表:该表的设计视图如下:这里比较特殊的是pkind字段,他的格式是数字,其实是和tab_pkinds 表的id做了绑定,用一个组合框来显示,这是罗斯文的典型示例。
建立以下几个表:
Tab_salerescord: 销售记录表,Tab_salelist: 订单表,
有两个用户表,一个是系统用户的,一个是顾客的
好了,全部表已经建立完成了,共六个,在tab_pkinds,tab_pinfo,tab_idmininfo,tab_userinfo这四个表中都手工输入3条以上的数据,整个数据库看起来就像这个样子:(你的跟我的一样吗?)
然后以独占方式打开数据库,设定数据库密码。我的密码为123
【链接数据建立后台】
建立一个叫 后台.mdb 的数据库,打开,从 文件----获取外部数据-----链接表----找到C:\mini_shop.mdb-----输入密码-----点击全选----点击确定
【商品类别管理的设计】
先看一下我们要达到的效果:这个效果应该是事先用一张草稿纸画出来的,然后再考虑怎样用设计实现
我们可以逐条的修改和删除,点击添加就添加一条记录。
这其实有一个经常被提及到的问题,如何实现点击某个按钮,来实现保存记录的的功能,否则视为放弃。这里引入了一个中间表的概念。就是看到的数据和操作的数据不是同一个表,这里绕过了access自动保存的功能。我们用ado操作数据表tab_pkinds 而显示时通过tmp_pkinds 来实现。
我们通过复制tab_pkinds ,然后粘贴得到本地表tmp_pkinds,
用向导生成chindfrm_pkinds_mat,如图所示:然后再主体添加两个按钮“修改”,“删除”,在窗体页脚添加文本框和一个按钮:
我们需要两个查询来操作中间表tmp_pkinds,一个查询用于清空中间表,一个查询用于加载中间表:分别是删除查询kinds:DELETE tmp_Pinfo.*FROM tmp_Pinfo;
追加查询:Qur_addpkinds:
INSERT INTO tmp_pkinds ( id, pkinds )
SELECT tab_pkinds.id, tab_pkinds.pkinds
FROM tab_pkinds
ORDER BY tab_pkinds.id;
在vba中我们建立 一个过程,用来连续执行这两个查询:
'生成显示数据
Private Sub Record_show()
DoCmd.OpenQuery "qur_delpkinds"
DoCmd.OpenQuery "qur_addpkinds"
End Sub
用dao对链接表进行操作:
Private Sub Command4_Click()
'保存修改信息
Dim d As Recordset
Dim sqlstr As String
sqlstr = "select * FROM tab_Pkinds WHERE id=" & Me![id]
Set d = CurrentDb.OpenRecordset(sqlstr)
d.Edit
d(1) = Me.pkinds
d.Update
End Sub
Private Sub Command5_Click()
'删除该条记录
Dim sqlstr As String
sqlstr = "DELETE * FROM tab_Pkinds WHERE id=" & Me![id]
DoCmd.RunSQL (sqlstr)
Record_show
Me.Requery
End Sub
Private Sub Command8_Click()
'添加商品类别
Dim d As Recordset
Set d = CurrentDb.OpenRecordset("tab_pkinds")
d.AddNew
d(1) = Text7
d.Update
Me.Text7 = Null
Record_show
Me.Requery
End Sub
【商品信息管理设计】
商品信息管理的设计原理和种类管理的一样,这里不再赘述。主要是编辑按钮的代码:
Private Sub editpinfo_Click()
'保存修改信息
Dim d As Recordset
Dim sqlstr As String
sqlstr = "select * FROM tab_Pinfo WHERE id=" & Me![id]
Set d = CurrentDb.OpenRecordset(sqlstr)
d.Edit
d(1) = Me.pname
d(2) = Me.pkind
d(3) = Me.price
d(4) = Me.lprice
d(5) = Me.pcount
d(6) = Me.pimg
d(7) = Me.pmsg
d.Update
End Sub
Private Sub Form_Load()
DoCmd.OpenQuery "qur_delpinfo"
DoCmd.OpenQuery "qur_addpinfo"
Me.Requery
End Sub
【添加新商品的设计】
代码:添加新商品
Private Sub Command17_Click()
If IsNull(Me.pname) Then
MsgBox "请填写商品名称"
Exit Sub
End If
If IsNull(Me.pkind) Then
MsgBox "请填写商品类别"
Exit Sub
End If
If IsNull(Me.price) Then
MsgBox "请填写商品价格"
Exit Sub
End If
DoCmd.GoToRecord , , acNewRec
End Sub
(责任编辑:admin)
- ·提高access的启动速度【译文技巧】
- ·浅谈断号重续的利弊和方法
- ·分析使用Len函数判断字符串为空的原理
- ·mdb快捷方式拖到桌面,打开会出现“不
- ·Access设计表字段是的注意事项
- ·学习别人示例的技巧方法
- ·SQL中获取两日期之间的值
- ·成为伟大开发者的“九步曲”
- ·面向初学者的窗体功能设计集成
- ·WINRAR打包视频演示全过程
- ·《VB函数参考手册》电子书
- ·ACCESS数据表中数据类型“是/否”转为S
- ·Application与Docmd对象Quit方法区别探
- ·获取ACCESS安装路径的二法(分享)
- ·JAVA+ACCESS编程体会
- ·Access 2003开发者扩展工具集概述